3.3 KiB
3.3 KiB
⚙️ Rule Engine — Regras de Recomendação (MVP)
Propósito
Define as regras estáticas que o motor de recomendações segue para sugerir itens ao utilizador.
Regras Ativas (MVP)
R1 — Filtragem por Context Tags
IF item.contextTags contém pelo menos uma tag do contexto
THEN item é relevante
R2 — Ordenação por Prioridade de Categoria
Ordenar itens pela posição da categoria em context.priorityCategories
Categorias fora da lista → prioridade baixa (999)
R3 — Limite de Itens
Retornar no máximo context.maxItems itens
| Contexto | maxItems |
|---|---|
| travel_short | 20 |
| travel_long | 40 |
| work | 15 |
| casual | 10 |
| sport | 8 |
| outdoor | 12 |
R4 — Interpretação de Pedido (Parser)
Palavras-chave → contexto + duração + clima + formalidade
viagem/comboio/voo → travel_short + transit
trabalho/reunião → work + indoor
fim de semana/casual/lazer → casual
treino/desporto/gym → sport
exterior/caminhada → outdoor + outdoor
4+ dias/semana/longa → duration:long + upgrade para travel_long
4 horas/média → duration:medium
1-2 horas/curta → duration:short
frio/inverno → weather:cold
calor/verão/praia → weather:hot
chuva → weather:rainy
formal/cerimónia → formality:formal
casual/informal → formality:casual
Regras Pendentes (a implementar)
R5 — Filtro por Duração
IF duration == short → apenas essenciais (documents, cables, 1x clothing)
IF duration == medium → essenciais + entretenimento
IF duration == long → essenciais + entretenimento + conforto extra
Estado: Não implementado no MVP atual. Duração é detetada mas não filtra.
R6 — Filtro por Clima
IF weather == cold → priorizar outerwear, remover beach/hot items
IF weather == hot → priorizar roupa leve, remover cold items
IF weather == rainy → priorizar outerwear + accessories.impermeável
Estado: Clima é detetado mas não filtra itens no MVP.
R7 — Filtro por Formalidade
IF formality == formal → priorizar clothing.formal, footwear.formal
IF formality == casual → excluir clothing.formal
Estado: Formalidade é detetada mas não filtra itens no MVP.
Mapeamento de Context Tags (04_CATEGORIES_AND_TAGS.md)
| Categoria.Subcategoria | Context Tags |
|---|---|
| clothing.formal | work, formal |
| clothing.casual | casual, travel |
| clothing.sportswear | sport |
| clothing.outerwear | travel, cold, outdoor |
| electronics.computers | work, travel |
| electronics.phones | travel, work, casual |
| electronics.cables | travel |
| electronics.gaming | casual, travel |
| footwear.formal | work, formal |
| footwear.casual | casual, travel |
| footwear.sport | sport |
| footwear.outdoor | outdoor, travel |
| accessories.bags | travel, work, casual |
| documents.identity | travel |
| documents.travel | travel |
Notas para o Agente
- NÃO adicionar regras novas sem validar com o utilizador
- As regras R5-R7 estão identificadas como pendentes — implementar quando o MVP base estiver estável
- O parser de palavras-chave (R4) é temporário — Fase 2 substitui por OpenAI
- Sempre que uma regra pendente for implementada, atualizar este ficheiro e o AI_AGENTS_LOG.md