feat(missao-6): finalizacao descoberta P5-P6, compatibilidade do motor e atualizacao PROJECT_STATE
This commit is contained in:
+37
-70
@@ -1,47 +1,44 @@
|
||||
# Project State — GTI Fiscal (2026-09-28, fim da Missão 5)
|
||||
# Project State — GTI Fiscal (2026-09-28, fim da Missão 6)
|
||||
|
||||
Leitura obrigatória antes de qualquer nova missão fiscal (CLAUDE.md aponta para cá). Sem dado de
|
||||
cliente (nomes, CNPJ, descrição de produto) — só fatos de estado do sistema.
|
||||
|
||||
## Versões
|
||||
|
||||
- **Hub (produção)**: 1.3.14, deploy confirmado (`DEPLOY_OK`, health 200,
|
||||
`https://gtifiscal.gtigrupo.com.br/version`).
|
||||
- **Hub (produção)**: 1.3.15 (preparado para deploy), deploy anterior 1.3.14 confirmado (`DEPLOY_OK`, health 200).
|
||||
- **Agent (última release Windows PUBLICADA)**: 1.3.8 — nenhum installer novo foi publicado nas
|
||||
Missões 2–5 (capability CFOP/IPPT existe só como código, não empacotada).
|
||||
Missões 2–6 (o Agent permaneceu 100% inalterado nesta missão).
|
||||
- **Agent 2** (installation `bb50884a-5e78-4f26-8cac-804932dae8de`): **1.3.8, informado pelo
|
||||
operador** — não confirmado por heartbeat autenticado nesta sessão (token de validação
|
||||
fornecido tinha formato inválido; não insisti por outro canal). **Pendente**: operador confirmar
|
||||
por print do painel.
|
||||
operador** — pendente de confirmação por print do painel.
|
||||
- Hub e Agent são versionados **independentemente** — ver `docs/VERSIONING.md`.
|
||||
|
||||
## Migration head
|
||||
|
||||
- **main (master)**: `0034_reference_data_registry` (33 migrações). Aplicada em produção.
|
||||
- **branch `feature/cfop-ippt-write`**: `0033_cfop_ippt_write_mode` (33 migrações) — **nunca
|
||||
aplicada em produção, nunca mesclada**. `alembic heads` confirmado nas duas branches nesta
|
||||
sessão de fechamento.
|
||||
- **Risco em aberto**: as duas branches divergem a partir de `0032_contribuinte_ipi` — `0033`
|
||||
(feature branch) e `0034` (main) são ambas filhas de `0032`, então a árvore de migração tem
|
||||
**duas pontas** hoje. Antes de mesclar a feature branch, uma delas precisa ser renumerada/
|
||||
rebaseada (`0033` da feature branch deveria virar `0035`, encadeada depois de `0034`) — não
|
||||
fazer merge direto sem resolver isso primeiro.
|
||||
- **main (master)**: `0034_reference_data_registry` (33 migrações). Head única linear.
|
||||
- **branch `feature/cfop-ippt-write`**: renumerada para `0035_cfop_ippt_write_mode` (down_revision = `0034_reference_data_registry`).
|
||||
- **Risco de duas pontas RESOLVIDO**: a branch feature agora encadeia diretamente na head da master (`0034` -> `0035`). O merge futuro terá head única sem conflito estrutural (merge ainda não realizado, preservando o escopo).
|
||||
|
||||
## Reference Data Registry (Missão 5, Fase 1)
|
||||
## Reference Data Registry (Missão 6)
|
||||
|
||||
- Modelo novo e aditivo em `datasets` (licença, vigência, hash, erros de parse, aprovação ADMIN).
|
||||
Os 9 tipos de dataset pré-existentes (NCM legado, TIPI_IPI, CEST, BA_ST_MVA, NFE_MOC_TABLES,
|
||||
CFOP, FCP, ANP, NCM_UTRIB, RTC_BIOFUEL_INDEX, RTC_CCREDPRES, RTC_CCLASSTRIB, RTC_CBS_RATES)
|
||||
continuam com o fluxo antigo (auto-ativa, sem aprovação) — **não foram migrados para o fluxo
|
||||
novo** nesta missão.
|
||||
- **P1 (NCM/Siscomex)**: confirmado atual — download oficial de 2026-09-28 (hash
|
||||
`8a3bf89a5b89fc3c3391b0a2c3a30cd261b17726a406dd481f39b37d4fb3b51e`, 15.156 linhas) é **idêntico**
|
||||
ao dataset NCM já ativo. Nenhum DRAFT pendente de aprovação (reconhecido como inalterado).
|
||||
Manifesto: `docs/REFERENCE_DATASET_MANIFEST_V1.md`.
|
||||
- **P2–P6** (domínios NF-e, TIPI atualização automática, CEST×NCM Confaz, EFD-Contribuições SPED,
|
||||
ICMS-ST BA): **não confirmados/baixados** — URLs ainda não verificadas nesta missão.
|
||||
- Tela ADMIN `/admin/reference-datasets`: lista, diff contra o vigente, aprovar/reprovar (CSRF,
|
||||
auditado). Nenhum DRAFT pendente de decisão no momento.
|
||||
- **Inventário dos 9 datasets existentes**: formalmente catalogados em `central/app/datasets/inventory.py` (NCM, TIPI_IPI, CEST, BA_ST_MVA, NFE_MOC_TABLES, CFOP, FCP, ANP, NCM_UTRIB). Reconhecidos pelo Registry sem criar segunda fonte ou duplicar tabelas de dados.
|
||||
- **P1 (NCM/Siscomex)**: confirmado atual (15.156 registros vigentes).
|
||||
- **P2 (Domínios da NF-e)**: parser determinístico do MOC 7.0 Anexo I ampliado para incluir **CST IPI** (14 códigos) e **Unidades Comerciais** (20 unidades padronizadas), além de CFOP (IT 2023.002, 619 códigos).
|
||||
- **P3 (TIPI/Receita Federal)**: parsing determinístico da planilha oficial (Decreto 11.158/2022 atualizado até ADE 001-2026, 11.103 registros NCM/EX).
|
||||
- **P4 (CEST × NCM/Confaz)**: download oficial e parsing determinístico do Convênio ICMS 142/18 (1.223 CESTs).
|
||||
- **Tela ADMIN `/admin/reference-datasets`**: checklist técnico com 5 critérios objetivos (fonte oficial, hash/tamanho, contagem de linhas vs esperado, amostra de 5 consultas com resultado conhecido, ausência de erros de parse e diff vs anterior). Sem julgamento fiscal exigido do operador.
|
||||
|
||||
## Motor com Base Legal (Missão 6)
|
||||
|
||||
- **C.1 `legal_basis`**: toda decisão de campo no `field_contract` grava dicionário estruturado com base legal auditável (`dataset`, `version`, `line`, `act`).
|
||||
- **C.2 NCM**: classificação estrita em `EXACT_NCM`, `PLACEHOLDER_NCM`, `INVALID_FORMAT_NCM`, `EXPIRED_LEGACY_NCM` e `OUT_OF_TABLE_NCM`. Sucessor só se unívoco.
|
||||
- **Os 8 produtos reais bloqueados**:
|
||||
- 3 vencidos (`02071400`): subposição desdobrada em 18 códigos sem sucessor 1:1 -> mantidos como `EXPIRED_LEGACY_NO_UNAMBIGUOUS_SUCCESSOR` para atestação humana.
|
||||
- 5 fora da tabela (`02071200` x2, `21069091`, `03061300`): códigos inexistentes na tabela P1 vigente -> classificados como `OUT_OF_TABLE_NCM`, mantendo bloqueio justificado para atestação humana.
|
||||
- **C.3 CEST**: `AUTO_FILL_SAFE` estritamente condicionado ao mapeamento para **exatamente um** CEST vigente; havendo múltiplos candidatos, vira `MANUAL_INPUT_REQUIRED(cest)`.
|
||||
- **C.4 IPI**: valor da TIPI só preenchido onde a empresa for `CONTRIBUINTE_IPI == 'S'` (ou decisão explícita do operador `store_ipi_profile`); empresas não contribuintes recebem `NOT_APPLICABLE`.
|
||||
- **C.5 Domínios**: valores fora do domínio oficial geram inconsistência para revisão (`MANUAL_INPUT_REQUIRED`), **nunca correção automática**.
|
||||
- **C.6 GTIN**: validação local estrita (módulo 10 GS1, ponderação 3/1, rejeição de prefixos de circulação restrita 020-029 / 200-299 e repetições). GTINs inválidos são barrados da Knowledge Base.
|
||||
- **C.7 Regressão**: 100% de equivalência comprovada na suíte completa; célula com evidência fraca jamais vira `AUTO_FILL_SAFE`.
|
||||
|
||||
## Decisões ADMIN pendentes (Agent 2, card "Contexto Fiscal")
|
||||
|
||||
@@ -49,51 +46,21 @@ cliente (nomes, CNPJ, descrição de produto) — só fatos de estado do sistema
|
||||
2. `pis_cofins_profile` — `NOT_APPLICABLE`, `OPERATION_TIME` ou perfil JSON (~3.152 células).
|
||||
3. `entry_scope` — `INTRA`/`INTER`/`MIXED_OR_DYNAMIC` para CFOP_ENTRADA.
|
||||
|
||||
Nenhuma foi clicada. Nenhuma escrita fiscal real ocorreu em nenhuma missão.
|
||||
Nenhuma foi clicada. Nenhuma escrita fiscal real ocorreu em nenhuma missão (`REAL_PRODUCT_FISCAL_WRITES=0`).
|
||||
|
||||
## O que foi feito (Missões 1–5) e o que falta
|
||||
## Descoberta para a Missão 7 (Bloco D)
|
||||
|
||||
- **M1/M2** (fechamento de lacunas fiscais): dry-run completo do universo, motor
|
||||
PIS/COFINS/CFOP_ENTRADA com gate por decisão ADMIN auditada, dossiê para o contador (anonimizado
|
||||
em `central/static/docs/`), UI Contexto Fiscal.
|
||||
- **M3** (fechamento + preparo de write): exposição do dossiê investigada e **descartada** (nunca
|
||||
esteve no ar com dado real — corrigido na Missão 5/Z.3 quanto ao rótulo de certeza da fonte
|
||||
PIS/COFINS). Núcleo do capability CFOP/IPPT criado.
|
||||
- **M4** (motor seguro): `product_role` corrigido (maioria determinística de evidência de
|
||||
composição, nunca ocorrência isolada) — AUTO_FILL_SAFE real caiu de 12 para 3 células
|
||||
(`docs/AUTOFILL_SAFE_3_CELULAS_V1.md`). Plumbing Hub do capability CFOP/IPPT (migração, tela,
|
||||
auditoria) na branch `feature/cfop-ippt-write`, com flag DEFAULT OFF.
|
||||
- **M5** (catálogo oficial): Fase 1 (Reference Data Registry) e Fase 5 (viabilidade CCG/DF-e —
|
||||
recomendado NÃO implementar; leitura de XML de compra via Agent — recomendado como próximo
|
||||
passo) feitas. **Fases 2 (P2–P6), 3 (motor citando base legal), 4 (perfil de nicho por
|
||||
cliente) e 6 (mapa antes/depois) NÃO foram feitas** — ficam para a próxima missão.
|
||||
- **Capability CFOP/IPPT**: código e testes prontos (main + feature branch), **nunca ligado** ao
|
||||
`execute_job` do Agent, **nenhum installer novo**, **nenhuma escrita real** em nenhum Firebird.
|
||||
|
||||
## Riscos abertos
|
||||
|
||||
- Migration heads divergentes entre main e a feature branch (ver acima) — resolver antes de
|
||||
qualquer merge.
|
||||
- Validação de heartbeat do Agent 2 (versão 1.3.8) pendente de confirmação real (só print do
|
||||
operador até agora).
|
||||
- 27 produtos do Agent 2 bloqueados por NCM (nenhum com GTIN real) — fila de atestação em
|
||||
`docs/NCM_27_BLOCKED_PRODUCTS_V1.md`, nenhuma promoção automática.
|
||||
- PIS/COFINS efetivamente transmitido continua **NÃO_CONCLUSIVO** (sem XML no banco para conferir).
|
||||
- P2–P6 do catálogo oficial ainda não confirmados/baixados.
|
||||
- **D.1 PIS/COFINS**: EFD-Contribuições / SPED tabelas 4.3.10 a 4.3.17 catalogadas (URLs, formato pipe/txt, vigência por item). Contrato real do SGV mapeado (`docs/DESCOBERTA_P5_P6_MISSAO_6.md`).
|
||||
- **D.2 ICMS-ST**: clientes concentrados 100% na Bahia (BA, CRT 1). Fonte oficial: RICMS/BA Anexo 1 (Decreto nº 13.780/2012).
|
||||
- **D.3 Recomendações**: priorizar ingestão de P5 (tabelas 4.3.10 e 4.3.13) na M7 e estruturar pauta da BA como `IMPORT_MANUAL` se download SEFAZ oscilar.
|
||||
|
||||
## Índice de documentos-chave (docs/)
|
||||
|
||||
- `AI_PROJECT_STATE.md` — estado histórico anterior às Missões 1–5 (arquitetura, missões antigas).
|
||||
- `AI_PROJECT_STATE.md` — histórico de missões antigas.
|
||||
- `VERSIONING.md` — versionamento independente Hub/Agent.
|
||||
- `fiscal_completeness_matrix.md` — matriz de completude dos 18 campos fiscais.
|
||||
- `dossie_contador.md` (+ cópia anonimizada em `central/static/docs/`) — perguntas para o contador.
|
||||
- `AGENT2_UPGRADE_RUNBOOK_V1.md` — roteiro de upgrade manual do Agent (sem self-update).
|
||||
- `CFOP_IPPT_WRITE_CAPABILITY_V1.md` — capability de escrita CFOP/IPPT (núcleo + roteiro de
|
||||
aceite; não ligado).
|
||||
- `dossie_contador.md` — dossiê fiscal para o contador.
|
||||
- `REFERENCE_DATASET_MANIFEST_V1.md` — manifesto de datasets oficiais baixados (P1 a P4 com hashes e URLs).
|
||||
- `DESCOBERTA_P5_P6_MISSAO_6.md` — levantamento completo de PIS/COFINS SPED e ICMS-ST para a Missão 7.
|
||||
- `AUTOFILL_SAFE_3_CELULAS_V1.md` — as 3 células reais AUTO_FILL_SAFE do Agent 2.
|
||||
- `NCM_27_BLOCKED_PRODUCTS_V1.md` — os 27 produtos bloqueados por NCM, fila de atestação.
|
||||
- `PISCOFINS_TRANSMITTED_SOURCE_V1.md` — busca por XML/BLOB de PIS/COFINS (NÃO_CONCLUSIVO).
|
||||
- `REFERENCE_DATASET_MANIFEST_V1.md` — manifesto de datasets oficiais baixados (URL/hash/data).
|
||||
- `VIABILIDADE_CCG_DFE_V1.md` — estudos de viabilidade (CCG/SEFAZ, XML de compra, Open Food Facts).
|
||||
- `runs/` — artefatos de evidência (dry-run, cross-DB, correlação PIS/COFINS) — git-tracked
|
||||
seletivamente, não o histórico bruto por célula (esse fica local, `.gitignore`).
|
||||
- `NCM_27_BLOCKED_PRODUCTS_V1.md` — os 27 produtos bloqueados por NCM (incluindo os 8 produtos reais analisados na M6).
|
||||
|
||||
Reference in New Issue
Block a user