project_text.txt 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. Vision statement
  2. A local food AI that provides full nutritional value information on any food and can
  3. generate complete menu proposals based on the user's specification.
  4. The user can:
  5. * Create an account and log in.
  6. * Get complete nutritional value information on any food, including macro nutrients,
  7. minerals, vitamins, amino acids etc.
  8. * Get the full nutritional value information for a given food combination, i.e. the user can
  9. enter the quantities of several foods and get a full nutritional value overview.
  10. * Search for specific nutrient content and get a sortable list of all foods that contain
  11. this/these nutrient(s).
  12. * Store food combinations in named and editable lists.
  13. * Get menu proposals based on nutritional value and other food constraint input, e.g.
  14. allergies.
  15. * Freely chat about anything related to nutrition and get competent answers.
  16. * The AI must have a local web search tool that it will use to anonymously gather any
  17. info that it does not have in its local database.
  18. * No user data leaves the server.
  19. * The whole project must be in a public listed https://git.btshub.lu repo
  20. named LocalFoodAI_<your IAM> that is updated in real-time. Make sure to prevent
  21. confidential data from being uploaded. Add your teacher (id evegi144) as a collaborator.
  22. Anyone should be able to clone the repo and get his own local food AI running with
  23. ease.
  24. * The application must be designed to run entirely on your provided Ubuntu 24.04 VM (8
  25. vCPUs, 30 GB RAM, no dedicated GPU). You must evaluate and select appropriate
  26. lightweight, quantized local LLMs (via Ollama) and databases that fit securely within
  27. this hardware limit.
  28. Roles
  29. • You are the product owner and tech lead, whilst Antigravity is your development
  30. team. This means that you interview the customer to extract the vision, and then
  31. write the Taiga backlog.
  32. • Your teacher is the customer and Scrum master. Add your teacher
  33. (gilles.everling@education.lu) as a stakeholder to your Taiga project.
  34. Workflow
  35. • You follow the Scrum manual.
  36. • You agree on the meaning of "Done" with your teacher.
  37. • The sprint time box is one week.
  38. • All meetings are documented in the Wiki.
  39. • In the Daily Scrum meeting you answer and document in the Wiki the three
  40. questions:
  41. o What has been accomplished since the last meeting?
  42. o What will be done before the next meeting?
  43. o What obstacles are in the way?
  44. • Thursday:
  45. o Sprint Review meeting that lasts at most 15 minutes.
  46. o Sprint Retrospective meeting that lasts at most 15 minutes.
  47. o Sprint Planning meeting that lasts at most 30 minutes. You estimate the
  48. capacity of work, produce the Sprint Backlog and Sprint Goal.
  49. o Daily Scrum meeting that lasts at most 5 minutes.
  50. • Friday:
  51. o Daily Scrum meeting that lasts at most 5 minutes.
  52. • You perform continuous product backlog grooming.
  53. • During Sprint Planning, you create User Stories in Taiga and break them down
  54. into smaller technical Tasks. To execute the work, you feed the overarching User
  55. Story to the agent for context, but you assign it the specific Task for execution.
  56. • Before the agent writes the code, it generates an Implementation Plan (an
  57. Antigravity Artifact). You must set your Antigravity Review Policy to "Request
  58. Review" (rather than "Always Proceed"). You have to read, evaluate, and approve
  59. the AI's Python and database logic before it is committed, ensuring you actually
  60. understand the code being generated.
  61. • You can use the Gemini CLI to quickly test database queries or prompt logic in
  62. the terminal before having the Antigravity agent implement it into the main
  63. codebase.
  64. • All artifacts generated by Antigravity, e.g. task lists, implementation plans and
  65. browser recordings, must be attached to the corresponding task and/or user
  66. story in Taiga.
  67. • In a real-world Agile environment, code commits must be traceable back to the
  68. business requirements (User Stories). You must instruct your Antigravity
  69. agent(s): "When you commit this code, use the commit message: 'TG-<Taiga
  70. task id>: <Taiga task description>' . Do not attempt to push". If the AI reports a
  71. 'sandbox error' or 'permission denied' when trying to push, it is not a
  72. technical problem - it is a safety feature. Perform the push manually in the
  73. terminal, then tell the AI to proceed with the next step.
  74. • Daily Workflow with Antigravity
  75. You are the Tech Lead; Antigravity is your Development Team. You do not write
  76. code; you direct the Antigravity agent.
  77. o Planning (Thursday):
  78. • Create User Stories with clear story title and acceptance criteria in
  79. Taiga for your planned work. To do this you can provide Antigravity
  80. with the project vision statement and let it generate all the scrum
  81. artifacts for you and it can even feed them directly into Taiga via
  82. the Taiga API.
  83. • In Taiga, break the Story into specific tasks for Antigravity and note
  84. the task ids (e.g. #3).
  85. o Development (Thursday/Friday):
  86. • Orchestrate: Feed your Taiga Task to Antigravity’s Agent Manager.
  87. Here's an example prompt: "Work on Taiga Task #1. Write a Python
  88. script to initialize the SQLite database. Once complete, stage,
  89. commit, and push the files with the commit message: 'TG-1:
  90. Initialize SQLite DB'."
  91. Pro-Tip: Create a PROJECT_CONTEXT.md file in the root of your
  92. repository that outlines your tech stack (Ubuntu, Ollama, SearXNG,
  93. Database, ...) and the strict "No external APIs" rule. Instruct
  94. Antigravity to "Read PROJECT_CONTEXT.md before starting" so it
  95. never hallucinates cloud-based solutions.
  96. • Review: Set Review Policy to "Request Review." Evaluate the AI's
  97. Python/Database logic before approving. Before approving the
  98. commit, verify that:
  99. • The agent included the TG-<ID> prefix in the commit
  100. message.
  101. • The code is strictly local (no external API calls).
  102. • The logic is correct based on your technical research.
  103. • Attach: Download the AI's Implementation Plan and attach it to the
  104. Taiga ticket.
  105. o The Golden Rule of committing:
  106. Every time you push code, make sure Antigravity has linked it to a Taiga
  107. Task ID in the commit message so the webhook works. If that's the case,
  108. you only need to run git push if not:
  109. git add .
  110. git commit -m "TG-<ID>: [Your short description]"
  111. git push
  112. (Example: git commit -m "TG-1: Setup SQLite DB structure" )
  113. o Verification
  114. • Taiga: Open your User Story (e.g., #1) and check the History/Git
  115. tab. You should see your commit message appear there
  116. automatically.
  117. • Gogs: Check your Webhook "Recent Deliveries." You should see
  118. green checkmarks (204 No Content).
  119. Troubleshooting:
  120. • If you do not tell the AI to use the TG-<ID> format in the
  121. commit message, your Taiga board will not update.
  122. • If you see "Referenced element doesn't exist," verify your
  123. commit message has the correct TG-<ID> format matching
  124. an existing Story ID in Taiga.