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

94 lines
2.1 KiB
Markdown

# Regras do Sistema de Sugestão
## Estado atual
O DayMaker não usa atualmente um motor de regras local como fonte principal de recomendações.
A sugestão é gerada pela IA através de `AiRecommendationService`, usando o inventário real do utilizador como contexto.
---
## Regras ativas
### R1 — Usar apenas inventário do utilizador
A IA recebe apenas itens do utilizador autenticado.
```text
items.user_id == currentUser.id
```
### R2 — Contexto textual dos itens
Cada item é enviado com:
- nome
- categoria
- tags
- nota/notes, quando disponível
### R3 — Modo silencioso para sugestões
Quando a sugestão vem da Home, o serviço usa `silent: true` e instrui a IA a responder apenas com nomes exatos dos itens.
### R4 — Correspondência com itens reais
A app cruza as linhas devolvidas pela IA com os nomes dos itens carregados do Supabase.
Apenas itens correspondidos são mostrados com imagem e podem ser exportados.
### R5 — Exportação para semana
Ao exportar:
1. A app cria ou encontra um registo em `plans` para o dia escolhido.
2. Insere relações em `plan_items`.
3. Evita duplicados já existentes no plano.
---
## Limitações atuais
- A IA pode devolver nomes com pequenas diferenças.
- O matching é textual e pode falhar se o nome não coincidir.
- Não existe ranking local por categoria, clima ou duração.
- Não existe checklist de itens preparados.
---
## Regras futuras recomendadas
### RF1 — Resposta estruturada
Pedir à IA JSON com identificadores ou nomes normalizados.
### RF2 — Score local
Calcular pontuação por:
- categoria
- tags
- ocasião
- histórico do utilizador
- clima
### RF3 — Checklist
Guardar estado de cada item planeado:
- planeado
- preparado
- levado
### RF4 — Clima
Ajustar sugestões quando houver dados meteorológicos.
---
## Notas para manutenção
- Não mudar o comportamento do modo `silent` sem atualizar `05_RECOMMENDATION_ENGINE.md`.
- Se a app passar a usar IDs na resposta da IA, atualizar este ficheiro e o serviço.
- Manter a exportação compatível com `plans` e `plan_items`.