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

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:

  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.