fix(project-manager): remover Dify KB das descriptions, marcar nota TODO
Dify foi removido 06-03-2026. Skills brainstorm/discover ainda referenciam-no no corpo. Bump v1.2 + nota top-of-file. Reescrita workflow para próxima sessão. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
---
|
||||
name: auto-expense
|
||||
description: Criação automática de despesas a partir de facturas detectadas no IMAP e tickets. Extrai dados, verifica duplicados e cria despesas no Desk CRM com PDF anexo.
|
||||
description: Criação automática de despesas a partir de facturas detectadas no IMAP e tickets. Extrai dados, verifica duplicados por reference_no e cria despesas no Desk CRM com PDF anexo.
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
# /auto-expense v1.0
|
||||
# /auto-expense v1.1
|
||||
|
||||
Cria despesas automaticamente a partir de facturas detectadas pelo IMAP e tickets.
|
||||
|
||||
@@ -49,28 +49,57 @@ Para cada factura na lista:
|
||||
|
||||
3. EXTRAIR DO HTML:
|
||||
- Valor (padroes: $XX.XX, XX,XX EUR, USD XX.XX, Total: XX.XX)
|
||||
- Referencia/Invoice number
|
||||
- Referencia/Invoice number (OBRIGATORIO — guardar para dedup)
|
||||
- Data da factura
|
||||
|
||||
4. VERIFICAR DUPLICADO (2 camadas):
|
||||
Camada 1 - Desk CRM:
|
||||
Pesquisar: mesmo fornecedor + mesmo valor (±0.05) + mesma data (±3 dias)
|
||||
Se match → NAO criar, registar como duplicado
|
||||
|
||||
5. CRIAR DESPESA:
|
||||
mcp__desk-crm-v3__create_expense({
|
||||
category: [cat_id da tabela],
|
||||
amount: [valor],
|
||||
date: [data factura YYYY-MM-DD],
|
||||
expense_name: "[Fornecedor] - [Referencia]",
|
||||
note: "Auto-criado via /auto-expense",
|
||||
currency: [2=USD ou 3=EUR],
|
||||
tax: [0 ou 1],
|
||||
send_invoice_to_customer: 0
|
||||
})
|
||||
```
|
||||
|
||||
### Passo 3: PDF (se existir anexo)
|
||||
### Passo 3: Verificar duplicados (OBRIGATORIO — 3 camadas)
|
||||
|
||||
> **CRITICO: Este passo NUNCA pode ser saltado. Se saltado, causa duplicacao massiva de despesas.**
|
||||
|
||||
```
|
||||
Camada 0 — Referencia de factura (PRIMARIA, mais fiavel):
|
||||
get_expenses(search: "<reference_no>")
|
||||
Para cada resultado: comparar campo reference_no
|
||||
Se alguma despesa tem reference_no IGUAL → DUPLICADO CONFIRMADO
|
||||
→ NAO criar, registar como duplicado com ID existente
|
||||
|
||||
Camada 1 — Fornecedor + Valor + Data:
|
||||
get_expenses(search: "<fornecedor>")
|
||||
Filtrar: mesmo valor (±0.05) + mesma data (±3 dias)
|
||||
Se match → NAO criar, registar como duplicado
|
||||
|
||||
Camada 2 — Expense name pattern:
|
||||
get_expenses(search: "<fornecedor> - <reference_no>")
|
||||
Se match exacto no expense_name → NAO criar, registar como duplicado
|
||||
|
||||
REGRA: Se QUALQUER camada detecta duplicado → PARAR imediatamente.
|
||||
Nunca criar despesa sem passar as 3 camadas com sucesso.
|
||||
Registar cada duplicado detectado no output JSON (campo "duplicados").
|
||||
```
|
||||
|
||||
### Passo 4: Criar despesa
|
||||
|
||||
```
|
||||
APENAS se Passo 3 passou sem detectar duplicado:
|
||||
|
||||
mcp__desk-crm-v3__create_expense({
|
||||
category: [cat_id da tabela],
|
||||
amount: [valor],
|
||||
date: [data factura YYYY-MM-DD],
|
||||
expense_name: "[Fornecedor] - [Referencia]",
|
||||
reference_no: "[numero factura/referencia]",
|
||||
note: "Auto-criado via /auto-expense",
|
||||
currency: [2=USD ou 3=EUR],
|
||||
tax: [0 ou 1],
|
||||
send_invoice_to_customer: 0
|
||||
})
|
||||
|
||||
OBRIGATORIO: campo reference_no DEVE ser preenchido com o numero
|
||||
de factura extraido. Este campo e a chave primaria de deduplicacao.
|
||||
```
|
||||
|
||||
### Passo 5: PDF (se existir anexo)
|
||||
|
||||
```
|
||||
a. GUARDAR LOCAL:
|
||||
@@ -100,14 +129,14 @@ c. REGISTAR no Desk BD:
|
||||
d. LIMPAR temporarios
|
||||
```
|
||||
|
||||
### Passo 4: Actualizar CSV
|
||||
### Passo 6: Actualizar CSV
|
||||
|
||||
```
|
||||
CSV Path: /media/ealmeida/Dados/GDrive/Cloud/ADM_Descomplicar/Financeiro/Contabilidade/YYYY/MAPA-DESPESAS-YYYY.csv
|
||||
Formato linha: id_desk;data;categoria;fornecedor;descricao;valor;SIM;ficheiro;email;Auto /auto-expense
|
||||
```
|
||||
|
||||
### Passo 5: Escrever output JSON
|
||||
### Passo 7: Escrever output JSON
|
||||
|
||||
```
|
||||
Escrever em ~/.claude-work/today-expenses-{date}.json:
|
||||
@@ -115,12 +144,15 @@ Escrever em ~/.claude-work/today-expenses-{date}.json:
|
||||
"despesas_criadas": [
|
||||
{"id": 1180, "fornecedor": "MEO", "valor": 76.26, "moeda": "EUR", "referencia": "FT A/861215955"}
|
||||
],
|
||||
"duplicados": 0,
|
||||
"duplicados": [
|
||||
{"fornecedor": "MEO", "referencia": "FT A/861215955", "existente_id": 1175, "camada": 0}
|
||||
],
|
||||
"flagged": [
|
||||
{"fornecedor": "Desconhecido", "nota": "TOConline - emitente desconhecido: XPTO LDA"}
|
||||
],
|
||||
"erros": [],
|
||||
"total_processadas": 1
|
||||
"total_processadas": 1,
|
||||
"total_duplicados": 0
|
||||
}
|
||||
```
|
||||
|
||||
@@ -152,7 +184,7 @@ tax = 0 → Fornecedores estrangeiros
|
||||
|
||||
send_invoice_to_customer = 0 → OBRIGATORIO (sem default na BD)
|
||||
|
||||
reference_no → coluna correcta (NAO "reference")
|
||||
reference_no → coluna correcta (NAO "reference") — CHAVE DE DEDUPLICACAO
|
||||
```
|
||||
|
||||
---
|
||||
@@ -167,7 +199,8 @@ reference_no → coluna correcta (NAO "reference")
|
||||
|--------|-----------|-------|-------|-----|-----|
|
||||
|
||||
### Duplicados Detectados (Y)
|
||||
- [Fornecedor] [Valor] - ja existe como #ID
|
||||
| Fornecedor | Ref | ID Existente | Camada |
|
||||
|-----------|-----|-------------|--------|
|
||||
|
||||
### Pendentes Revisao (Z)
|
||||
- [Plataforma] - emitente desconhecido: [nome]
|
||||
@@ -179,11 +212,26 @@ reference_no → coluna correcta (NAO "reference")
|
||||
|
||||
- NUNCA usar currency=1 (nao existe)
|
||||
- NUNCA converter USD para EUR (manter original com currency=2)
|
||||
- NUNCA criar despesa sem verificar duplicado primeiro
|
||||
- NUNCA criar despesa sem verificar duplicado primeiro (3 camadas obrigatorias)
|
||||
- NUNCA omitir send_invoice_to_customer=0
|
||||
- NUNCA omitir reference_no ao criar despesa (chave primaria de dedup)
|
||||
- NUNCA saltar a Camada 0 (referencia de factura) — e a mais fiavel
|
||||
- SEMPRE ler o email/ticket HTML para extrair valor real (nunca assumir)
|
||||
- SEMPRE incluir reference_no quando disponivel
|
||||
- SEMPRE logar duplicados detectados no output JSON com camada e ID existente
|
||||
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 04-03-2026 | Descomplicar®*
|
||||
*Skill v1.1.0 | 30-03-2026 | Descomplicar | Fix: dedup por reference_no (DES-137)*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
Reference in New Issue
Block a user