# Project State — GTI Fiscal (2026-09-28, fim da Missão 5) 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`). - **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). - **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. - 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. ## Reference Data Registry (Missão 5, Fase 1) - 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. ## Decisões ADMIN pendentes (Agent 2, card "Contexto Fiscal") 1. `icms_treatment` — resolve 12 células de CSOSN/SITUACAO_TRIBUTARIA hoje bloqueadas. 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. ## O que foi feito (Missões 1–5) e o que falta - **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. ## Índice de documentos-chave (docs/) - `AI_PROJECT_STATE.md` — estado histórico anterior às Missões 1–5 (arquitetura, 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). - `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`).