KB-4B67

dot-iu-cutter v0.5 — Constitution Nuxt Cross-Interval B6 Ruling Request (recommend B6 CLOSED → return to source_document seed authoring)

6 min read Revision 1
dot-iu-cutterv0.5constitution-fixturenuxt-parser-checksumcross-interval-confirmationb6-closed-recommendruling-requestroute-gpt-userdieu442026-05-18

dot-iu-cutter v0.5 — Constitution Nuxt Cross-Interval B6 Ruling Request

Phase: v0_5_constitution_nuxt_checksum_cross_interval_confirmation · Nature: ruling_request__no_execution · Date: 2026-05-18 · doc 2 of 3

decision_authority: GPT / User ONLY. Agent recommends; decides nothing silently.
dml: none ; source_seed: none ; dry_run: none ; cut: none ; verify: none
self_advance: PROHIBITED

1. Operational question — answered with cross-interval evidence

When user says "Cắt Hiến pháp", does the system detect a REAL source change,
or only Nuxt render noise?
answer: The system reliably distinguishes the two.
  - raw Nuxt response drifted BOTH within this session AND across the ~15-min /
    separate-session interval (sizes + hashes all differed) — pure render noise.
  - the normalized authoritative-content checksum was IDENTICAL to the prior
    phase's candidate across the interval and all 3 fetches.
  => drift detection on the normalized content checksum sees through Nuxt noise
     (G1/G3 confirmed across time), and would flag only real content change (G2).

2. PASS / PARTIAL / BLOCKED analysis

GPT_required_confirmation (ruling 2026-05-18):
  - repeat read-only fetch after a time gap / separate session      -> DONE (separate session, ~15 min later)
  - apply the same extraction and normalization rules               -> DONE (prior pipeline reproduced verbatim, QG1)
  - normalized checksum must equal f9d22d0571fa…d1689                -> MET (3/3 fetches MATCH, len 17791)
  - marker counts must remain 19/1/1/1                              -> MET (3/3 fetches MATCH)
evaluation:
  candidate_B (authoritative span)  : f9d22d05…d1689  len 17791  -> MATCH prior
  candidate_A (inclusive)           : d94a977d…b231   len 18127  -> MATCH prior
  markers                           : 19/1/1/1                   -> MATCH prior
  raw drift                         : present (intra + cross interval) -> harmless, forensic-only
classification: PASS — normalized content stable across interval; only harmless raw
  Nuxt drift. NOT normalization instability. NOT a fetch/tool issue. NOT real content change.

3. Recommendation

recommended_ruling: B6 CLOSED
parser_profile: nuxt-incomex-portal-constitution-v1  (now confirmed deterministic
  across separate-session / cross-interval re-render)
canonical_normalized_content_checksum (candidate, for the FIRST Constitution source
  version — to be persisted ONLY in a future, separately-gated seed command-review):
    content_checksum = f9d22d0571fa296cbc8e308c46acde93804ffcfb4a19a2e7f55dabd8657d1689
    normalized_length = 17791
    marker_profile    = ✅19 / 📋1 / 📝1 / ⛔1
    span              = SSR <article> H1 "HIẾN PHÁP" .. end CHANGELOG (CHANGELOG included, R-CL1)
    raw_checksum       = NOT identity (volatile) — provenance/forensic only
NOT changed: canonical checksum is unchanged from the prior candidate (no real content
  change); this phase confirms, it does not redefine.

4. Rationale

why_CLOSED:
  - GPT's single remaining gate (one cross-interval/separate-session confirmation)
    is now satisfied with exact MATCH on checksum, length, and marker counts
  - mechanism proven across BOTH same-session (ratification phase, 3x) AND
    cross-interval/separate-session (this phase, 3x) -> 6 independent fetches,
    normalized identical every time while raw churned every time
  - status markers codepoint-exact and stable (G4) -> enacted_only classification safe
  - R-OD-SR2 span, R-CL1 CHANGELOG-include, R-PP1 storage already ruled by GPT;
    only R-B6 closure remained, and its evidence condition is now met
residual_notes (do not block closure):
  - stability still not observed across a Nuxt *deploy / version bump*; this is
    inherent to a living document and is correctly handled as FAIL_DRIFT (new
    version row + review), NOT as a determinism defect — the profile is sound
  - if GPT prefers maximum conservatism it MAY hold B6 PARTIAL for one post-deploy
    check, but Agent assesses the GPT-stated confirmation requirement as fully met

5. Impact on source_document / source_version seed (B5)

if_GPT_rules_B6_CLOSED:
  - B5 unblocks. Return to Constitution source_document/source_document_version
    seed authoring (restart the NO-DML-DRAFT package).
  - fill placeholders mechanically under nuxt-incomex-portal-constitution-v1:
      content_checksum      = f9d22d0571fa…d1689
      document_version_id   = "icxconst-" || left(sha256_hex(content_checksum || '|' || 'incomex-constitution'),32)
      source_format         = "html/nuxt"
      provenance jsonb      = { raw_checksum (per-fetch, forensic), parser_profile_ref:
                                "nuxt-incomex-portal-constitution-v1", normalize_profile,
                                observed_title, observed_version_label "v4.6.3 BAN HÀNH" }
  - constraints unchanged: source_document + source_document_version ATOMIC;
    enacted_only first dry-run; controlled-draft Điều 44 deferred; R-PP1 = profile
    recorded in version plan/report (NO new parser_profile table, NO schema change)
  - seed remains authoring→GPT command-review→separately-gated execution; this
    phase authorizes NONE of it.
if_GPT_holds_B6_PARTIAL:
  - one post-deploy re-confirmation, then close; B5 stays blocked until then.

6. Statement

  • Clear B6 recommendation made: CLOSED (QG6), grounded in cross-interval MATCH of normalized checksum + marker counts; raw drift classified harmless (QG5).
  • No source seed/DML/dry-run/CUT/VERIFY authorized or executed (QG7). doc 2 of 3; STOP after package → route GPT/User. Self-advance PROHIBITED.

Companion: cross-interval-fetch-and-normalization-result, cross-interval-confirmation-report.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-constitution-nuxt-checksum-cross-interval-confirmation/dot-iu-cutter-v0.5-constitution-nuxt-cross-interval-B6-ruling-request-2026-05-18.md