KB-1305

dot-iu-cutter v0.5 Constitution Checksum Drift Triage — GPT Ruling

6 min read Revision 1
dot-iu-cutterv0.5constitution-fixturechecksum-driftliving-document-driftgpt-rulingsnapshot-policysource-versiondieu442026-05-18

dot-iu-cutter v0.5 Constitution Checksum Drift Triage — GPT Ruling

Date: 2026-05-18 Reviewer / decision authority: GPT Reviewed package: knowledge/dev/laws/dieu44-trien-khai/v0.5-constitution-source-document-seed-checksum-drift-triage/

Reviewed file:

file:
  - dot-iu-cutter-v0.5-constitution-source-seed-checksum-drift-triage-2026-05-18.md

Verdict

checksum_drift_triage: PASS
agent_behavior: PASS_CORRECT
codex_block: VALID
production_mutation: none
DML_retry_authorized: false
canonical_checksum_update_authorized: false

The triage correctly explains the failed QG1 precheck: the Constitution source is a living Nuxt/Directus KB article and the authoritative body content changed after the prior checksum ratification. Codex was correct to block.


Accepted classification

classification: REAL_SOURCE_CHANGE
sub_type: living_document_KB_revision_drift
B6_invalidated: false
parser_profile_invalidated: false

B6 proved parser/checksum determinism for a fixed content revision. It did not prove that a live KB/Directus/Nuxt article is immutable. The current drift is a source-versioning problem, not a parser determinism failure.

Accepted facts:

accepted_facts:
  marker_counts_unchanged: "✅19 📋1 📝1 ⛔1"
  constitution_label_unchanged: "v4.6.3 BAN HÀNH"
  changelog_rows_unchanged: true
  normalized_content_changed: true
  normative_marker_structure_changed: false

Ruling

source_document_seed_retry_against_old_checksum: REJECTED
silent_checksum_update: REJECTED
seed_from_unpinned_live_page: REJECTED_FOR_PRODUCTION_VERSION_IDENTITY

Do not retry the approved seed using the old checksum f9d22d05...d1689. Do not silently replace it with the new checksum. Do not make the production version identity depend on an unpinned live Nuxt page that can be edited between ratification and seed.


Source-version policy ruling

GPT selects a combined policy from the Agent options:

selected_policy:
  primary: OPT_2_PIN_IMMUTABLE_SNAPSHOT
  secondary: OPT_3_DEFINE_VERSION_MODEL_POLICY
  use_OPT_1_re_ratify_new_checksum: only_after_snapshot_or_version_policy_is_defined

Meaning:

meaning:
  - source_document can point to the live source URL as discovery/current URL
  - source_document_version must be tied to a pinned source snapshot or immutable revision identity
  - if only live Nuxt URL is available, seed must remain blocked until a safe snapshot/version capture method is defined
  - KB-revision-only changes must not be ignored, because content_checksum is the version identity

Version model policy

For this pipeline:

version_model:
  constitution_label: semantic/human label, not sufficient identity
  KB_revision_or_snapshot: source capture identity
  normalized_content_checksum: persisted source_version identity
  content_change_with_same_constitution_label: creates_new_source_document_version_candidate
  marker_counts_unchanged: may lower review severity, but does not permit in-place checksum update
  old_source_version: may be superseded by new version; no hard overwrite

If a KB edit changes normalized content while the Constitution label remains v4.6.3 BAN HÀNH, it still requires a new version candidate or pinned snapshot decision. The system may classify it as non-marker prose drift, but it is still a source version event.


Required next phase

Open a narrow operations-first phase:

next_phase: v0_5_constitution_source_snapshot_and_version_policy_design
nature: read_only_design_authoring__no_seed_no_dml

Purpose:

purpose:
  - identify available immutable source options for the Constitution fixture
  - decide how to pin source_document_version to a stable source capture
  - define how live source drift is handled before seed/cut
  - author revised source seed strategy using snapshot/version identity
  - avoid repeating live-page checksum race

The phase must evaluate at least:

options_to_evaluate:
  A_KB_revision_snapshot:
    description: use internal KB revision/export if available as immutable source for source_document_version

  B_captured_snapshot_artifact:
    description: capture normalized authoritative content as a KB artifact/snapshot before seed; seed version points to snapshot artifact + checksum

  C_live_page_re_ratification_only:
    description: re-ratify current live page again; allowed only as temporary path, with known race risk

  D_source_api_raw_canonical_endpoint:
    description: create/use stable raw canonical endpoint instead of Nuxt-rendered page

Still forbidden

still_forbidden:
  - retry source_document seed against old checksum
  - update canonical checksum in-place
  - source_document INSERT
  - source_document_version INSERT
  - DML execution
  - Constitution dry-run
  - CUT
  - VERIFY
  - schema change
  - GRANT/REVOKE
  - Directus mutation unless a later phase explicitly authorizes it
  - deploy/restart
  - git commit
  - self-advance to seed execution

Final status

status: LIVE_SOURCE_DRIFT_CONFIRMED__SNAPSHOT_VERSION_POLICY_NEXT
next_action: open_constitution_source_snapshot_and_version_policy_design
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/dot-iu-cutter-v0.5-constitution-checksum-drift-triage-gpt-ruling-2026-05-18.md