KB-52F3

dot-iu-cutter v0.5 Constitution Source Snapshot & Version Policy — GPT Ruling

6 min read Revision 1
dot-iu-cutterv0.5constitution-fixturesource-snapshotversion-policygpt-rulingoption-bsnapshot-capture-nextdieu442026-05-18

dot-iu-cutter v0.5 Constitution Source Snapshot & Version Policy — GPT Ruling

Date: 2026-05-18 Reviewer / decision authority: GPT Reviewed package: knowledge/dev/laws/dieu44-trien-khai/v0.5-constitution-source-snapshot-version-policy/

Reviewed files:

files:
  - dot-iu-cutter-v0.5-constitution-source-snapshot-operations-framing-2026-05-18.md
  - dot-iu-cutter-v0.5-constitution-source-snapshot-options-analysis-2026-05-18.md
  - dot-iu-cutter-v0.5-constitution-source-version-policy-design-2026-05-18.md
  - dot-iu-cutter-v0.5-constitution-source-seed-strategy-update-2026-05-18.md
  - dot-iu-cutter-v0.5-constitution-source-snapshot-policy-report-2026-05-18.md

Verdict

source_snapshot_version_policy_package: PASS_WITH_RULINGS
agent_behavior: PASS_CORRECT
forbidden_respected: true
execution_performed: false
B5_status: OPEN_BUT_UNBLOCK_PATH_DEFINED

The package correctly converts the live-source drift problem into a snapshot/version-identity policy problem. The old live-page seed path remains rejected. The next path is snapshot capture authoring.


Accepted findings

accepted:
  AD_KB_source_exists: knowledge/dev/laws/constitution.md revision_44
  AD_is_upstream_SSOT: true
  Nuxt_page_is_rendered_view: true
  live_page_seed_identity_race: real
  source_version_must_bind_to_pinned_snapshot_or_revision: true

The system must not seed a production source_document_version directly from a mutable live Nuxt URL. The live URL remains useful for discovery/drift detection, not version identity.


Rulings Q1–Q6

Q1 — immediate option

ruling: APPROVE_OPTION_B_CAPTURED_SNAPSHOT_ARTIFACT_AS_IMMEDIATE_PATH

Use a captured snapshot artifact as the immediate path to unblock B5. This is the simplest operations-first route and avoids repeating the live-page checksum race.

Durable upgrade later:

later:
  Option_A_AD_revision_snapshot: keep_as_durable_upgrade_after_historical_revision_fetch_and_markdown_profile_are_ratified
  Option_D_raw_canonical_endpoint: keep_as_future_enabler_for_batch_factory
  Option_C_live_re_ratify_only: rejected_as_production_identity

Q2 — document_version_id rule

ruling: KEEP_DOCUMENT_VERSION_ID_RULE_UNCHANGED

Keep the deterministic rule:

icxconst- + left(sha256(content_checksum || '|' || source_document_ref), 32)

The checksum value may change when a new snapshot is captured, but the rule remains stable.

Q3 — parser profile

ruling: KEEP_PARSER_PROFILE_NUXT_INCOMEX_PORTAL_CONSTITUTION_V1_FOR_OPTION_B

For captured snapshot artifact from the current Nuxt-rendered source, keep nuxt-incomex-portal-constitution-v1. If the future path changes to AgentData raw markdown revision, a separate markdown parser profile must be ratified.

Q4 — version status lifecycle

ruling: USE_MINIMAL_LIFECYCLE_NOW__DETAILS_RECONFIRM_IN_CAPTURE_PHASE

Use the live schema's available version_status values if constrained. If unconstrained, the immediate seed may use fetched or snapshot_captured per live-schema compatibility. Detailed lifecycle (fetched -> ratified -> active, old -> superseded) is a future policy/implementation layer unless the current schema already supports it safely.

Q5 — supersede lineage

ruling: USE_PROVENANCE_JSONB_FOR_SUPERSEDE_LINEAGE_NOW

No schema amendment now. If a new source version supersedes a prior candidate, record lineage in provenance until a future schema cycle adds first-class lineage fields.

Q6 — write-once convention

ruling: APPROVE_CHECKSUM_ADDRESSED_WRITE_ONCE_CONVENTION_WITH_REHASH_GATE

Because KB docs are revisioned but not physically immutable in the same way as content-addressed object storage, the snapshot artifact must use a checksum-addressed path/name and must be treated as write-once by convention. Every seed/cut must rehash the artifact before use.

Required convention:

snapshot_artifact_convention:
  path_must_include: normalized_content_checksum_or_prefix
  artifact_must_include:
    - normalized authoritative content
    - source_url
    - captured_from
    - captured_at
    - parser_profile
    - checksum
    - length
    - marker_counts
  no_overwrite_policy: true
  if_existing_path_differs: STOP_AND_ESCALATE
  rehash_before_seed: required
  rehash_before_dryrun: required
  rehash_before_production_cut: required

Required next phase

Open the next authoring-only phase:

next_phase: v0_5_constitution_source_snapshot_capture_authoring
nature: authoring_only__no_execution

Purpose:

purpose:
  - author snapshot capture procedure
  - define checksum-addressed snapshot artifact path and content format
  - define write-once and rehash gates
  - author revised source_document/source_document_version seed strategy bound to the snapshot artifact
  - prepare execution/rollback/verification plan

This phase must not capture or write the snapshot yet unless separately authorized. It should author the capture package first.


Still forbidden

still_forbidden:
  - source_document INSERT
  - source_document_version INSERT
  - DML execution
  - snapshot artifact write unless a later command-review explicitly authorizes it
  - checksum persistence/update
  - Constitution dry-run
  - CUT
  - VERIFY
  - schema change
  - GRANT/REVOKE
  - Directus mutation
  - deploy/restart
  - git commit
  - self-advance to capture execution or seed execution

Final status

status: SNAPSHOT_VERSION_POLICY_PASS__OPTION_B_CAPTURE_AUTHORING_NEXT
next_action: open_constitution_source_snapshot_capture_authoring
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reviews/dot-iu-cutter-v0.5-constitution-source-snapshot-version-policy-gpt-ruling-2026-05-18.md