Files
dayMaker_lp/documentação/07_AGENT_BEHAVIOR.md
Carlos Correia fee538eebd MVP
2026-05-29 11:03:29 +01:00

105 lines
2.7 KiB
Markdown

# 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:
1. `00_PROJECT_OVERVIEW.md`
2. `01_MVP_DEFINITION.md`
3. `02_ARCHITECTURE.md`
4. `05_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_id` quando 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-pub` depois 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.dart` sem 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:
- `AppColors`
- `AppText`
- `AppRadius`
- `AppShadows`
- `AppDecorations`
- `AppButton`
- `AppChip`
- `AppSnack`
### 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:
1. Explicar que é funcionalidade futura.
2. Perguntar se deve implementar agora.
3. 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.