Files
GTI_GERENCIADOR_FISCAL/docs/superpowers/specs/2026-09-25-cclasstrib-applicability-design.md
T

3.3 KiB

cClassTrib applicability gate

Purpose

Stop treating an empty C000025.CCLASSTRIB as a fiscal defect solely because the global RTC feature is enabled. Keep the single existing fiscal-completeness result and continue evaluating every other fiscal field normally.

Evidence and selected applicability rule

The SGV database has PARAMETROS.USAR_REFORMA_TRIBUTARIA=1 and RTC-capable schema, but the inspected PARAMETROS and C000004 schemas have no separate cClassTrib enable flag. The SGV product screen exposes C000025.CCLASSTRIB as an editable catalog-backed field; available evidence does not mark it required for every product. The current code incorrectly promotes global RTC capability to universal per-product requiredness.

Use the live company regime (C000004.CRT) together with the documented effective-date gate:

  • RTC capability/USAR_REFORMA_TRIBUTARIA must still be enabled for RTC evaluation generally.
  • CRT 3: cClassTrib is applicable from 2026-08-03.
  • CRT 1, 2, or 4: cClassTrib is applicable from 2027-01-01.
  • Missing, conflicting, or unsupported CRT: cClassTrib is not applicable for completeness until the company context is resolved; never infer a regime.
  • Before the applicable date, ignore cClassTrib completely: no blocker, no candidate, no completeness penalty, and no write.
  • Once applicable, preserve the existing validation/resolution behavior, including a blocker for an empty value when no safe resolution is available.

This makes current Agent 2 (CRT=1, OPTANTE_SIMPLES=S) not applicable on 2026-09-25 even though USAR_REFORMA_TRIBUTARIA=1. Its current RTC write mode (DRY_RUN) is not changed.

Minimal implementation boundary

Add the gate to the existing shared fiscal evaluator/context using the already resolved live company CRT and current date. Do not add a new SGV flag, table, panel, or second coverage metric. Keep PIS/COFINS, NCM, resolver rules, RTC write authorization, and Agent write allowlist unchanged. Because the evaluator is executed by the Agent, this is an Agent code change. After test completion, the operator explicitly authorized release 1.2.5 through the official Hub/Agent deploy path and an in-place Agent 2 upgrade that preserves its identity.

The RTC page should present the existing single-panel status as “cClassTrib: Não utilizado neste cliente” while the gate is false.

Verification

Add the requested focused tests: not-applicable with empty cClassTrib (RTC off and on), unrelated fiscal fields still evaluated, applicable with empty cClassTrib still blocked, and zero write attempts. Then run a read-only REPROCESS_ALL against Agent 2 and compare its latest result/snapshot and blockers with the captured baseline. Preserve RTC_WRITE_MODE=DRY_RUN and verify Firebird write attempts/successes remain zero. Report NCM/PIS/COFINS blockers independently.

Baseline captured before implementation

Agent 2 latest Hub snapshot/job: total 521, complete 0, safe-blocked 521, failed 0, unclassified 0, coverage 0%; RTC blockers 521; PIS blocker products 1; COFINS blocker products 1; NCM blocker products 26 (29 open blocker rows). The offline read-only Firebird discovery saw USAR_REFORMA_TRIBUTARIA=1, SISTEMA_TODO_FISCAL=0, C000004.CRT=1, and C000004.OPTANTE_SIMPLES='S'; its guarded query recorded zero write attempts and zero successes.