2.7 KiB
2.7 KiB
Comportamento do Agente IA
Propósito deste ficheiro
Este ficheiro define como um agente IA de código deve comportar-se quando trabalha no projeto DayMaker.
Contexto do projeto
DayMaker é uma app Flutter com Supabase para inventário pessoal, planeamento semanal e sugestões por IA usando Ollama.
Antes de alterações grandes, consultar:
00_PROJECT_OVERVIEW.md01_MVP_DEFINITION.md02_ARCHITECTURE.md05_RECOMMENDATION_ENGINE.md
Regras de comportamento
Sempre fazer
- Respeitar a stack atual: Flutter, Dart, Supabase e Ollama API.
- Usar os componentes e tokens de
lib/theme/app_theme.dart. - Manter queries Supabase filtradas por
user_idquando os dados forem do utilizador. - Verificar o modelo de dados antes de alterar tabelas ou campos.
- Manter a UI consistente com a navegação atual: Início, Itens, Semana, IA e Perfil.
- Usar
flutter analyze --no-pubdepois de alterações relevantes. - Explicar ao utilizador quando uma funcionalidade exige alteração de base de dados.
Nunca fazer
- Reintroduzir Firebase, Firestore ou React Native.
- Assumir que Google Vision está implementado.
- Trocar o endpoint/modelo da IA sem testar ou explicar.
- Hardcodar API keys privadas.
- Enviar dados sensíveis desnecessários à IA.
- Criar categorias fora de
item_categories.dartsem atualizar a documentação.
Padrões de código
Flutter/Dart
- Widgets em
PascalCase. - Métodos privados com
_camelCase. - Serviços em
lib/services/. - Telas em
lib/Screens/ou pasta equivalente já existente. - Imports no topo do ficheiro.
UI
Usar preferencialmente:
AppColorsAppTextAppRadiusAppShadowsAppDecorationsAppButtonAppChipAppSnack
Supabase
- Ler utilizador com
Supabase.instance.client.auth.currentUser. - Não executar operações de dados se
user == null. - Usar
.eq('user_id', user.id)em tabelas por utilizador.
IA e sugestões
O fluxo atual usa AiRecommendationService.
- Chat livre:
sendMessage(text). - Sugestão estruturada:
sendMessage(text, silent: true). - Itens com imagem:
getItemsWithImages().
A IA deve receber contexto de inventário e responder em português.
Pedidos fora do produto atual
Se o utilizador pedir clima, notificações, visão por imagem ou calendário externo:
- Explicar que é funcionalidade futura.
- Perguntar se deve implementar agora.
- Avisar se exigir nova dependência, API key ou alteração de base de dados.
Checklist antes de terminar uma tarefa
- Código compila com
flutter analyze --no-pub. - Não há imports não usados.
- UI segue tema atual.
- Documentação atualizada quando a funcionalidade muda comportamento.
- Resumo final indica ficheiros alterados.