KB-6D63

dot-iu-cutter v0.5 — Constitution Source Seed Strategy Update (snapshot-pinned source_document_version; provenance fields; profile/version-id disposition)

6 min read Revision 1
dot-iu-cutterv0.5constitution-fixturesource-seedseed-strategy-updatesnapshot-pinnedprovenancedesign-onlyno-executiondieu442026-05-18

dot-iu-cutter v0.5 — Constitution Source Seed Strategy Update

Phase: v0_5_constitution_source_snapshot_and_version_policy_design · Date: 2026-05-18 · doc 4 of 5

changes_to: the seed-authoring-restart package (NOT re-authored here — strategy only)
dml/seed/mutation: none ; checksum_persisted_or_updated: NONE
decision_authority: GPT / User ONLY ; self_advance: PROHIBITED

1. What stays the same

source_document_registry (discovery/current — GPT: live URL allowed here):
  source_document_ref='incomex-constitution' ; address_docprefix='ICX-CONST'
  source_url='https://vps.incomexsaigoncorp.vn/knowledge/dev/laws/constitution'
  source_family='internal_incomex_constitution' ; authority_class='authoritative'
  lifecycle='active' ; registered_by='constitution-source-seed'
atomicity: source_document + source_document_version still ONE BEGIN/COMMIT,
  child-after-parent, no ON CONFLICT, INSERT-only (Codex command-integrity PASS shape).
enacted_only scope + Điều-44 (📋) deferral: UNCHANGED, untouched.

2. What MUST change — source_document_version binds to a pinned snapshot

new_principle: content_checksum = normalized checksum OF THE PINNED SNAPSHOT,
  never of a live re-fetch (INV-SNAP, doc 1).
provenance jsonb — ADD snapshot-identity keys (no schema change; R-PP1 pattern):
  snapshot_kind:               'captured_artifact' | 'kb_revision'
  snapshot_source_document_id: 'knowledge/dev/laws/constitution.md'
  snapshot_revision:           <AD revision int at capture, e.g. 44>   # audit/lineage
  snapshot_artifact_path:      <KB checksum-addressed artifact path>    # Option B
  snapshot_captured_at:        <UTC of the gated capture>
  snapshot_checksum:           <== content_checksum of the frozen bytes>
provenance jsonb — RETAIN existing keys:
  parser_profile_ref ; normalized_content_length ; changelog_included=true ;
  raw_checksum (forensic-only, may be null until the single controlled GET)
provenance jsonb — ADD lineage key (doc 3):
  supersedes_document_version_id: <prior version id | null on first seed>
integrity gate added to seed precheck:
  re-read pinned snapshot -> recompute sha256 -> assert == snapshot_checksum
  == registered content_checksum == (Option B) the checksum embedded in the
  artifact filename. Any mismatch -> STOP (fail-closed). This replaces the
  live-refetch QG1 with a SNAPSHOT-integrity QG1 (race-free).

3. document_version_id rule — disposition

current_rule: 'icxconst-' || left(encode(sha256(
                (content_checksum||'|'||source_document_ref)::bytea),'hex'),32)
analysis: identity already binds to content_checksum, which (new principle) is the
  PINNED snapshot's checksum. A snapshot/content change -> new content_checksum ->
  new document_version_id automatically. Adding snapshot_revision to the hash input
  would be REDUNDANT and would wrongly make identity depend on a metadata-only
  revision bump (revision can increment without content change).
recommendation: KEEP the rule UNCHANGED (timestamp-independent, deterministic,
  collision-safe via checksum). Record snapshot_revision in provenance for
  lineage/audit ONLY — NOT in the identity hash.
flagged_for_GPT: confirm "keep document_version_id rule as-is" vs "fold
  snapshot_revision into the hash" (recommend: keep as-is).

4. parser_profile — disposition (depends on chosen snapshot surface)

if Option_B (captured normalized-from-Nuxt artifact)  [RECOMMENDED IMMEDIATE]:
  parser_profile_ref REMAINS 'nuxt-incomex-portal-constitution-v1'
  rationale: the artifact IS the ratified normalized byte stream; B6 work fully
    reused; the only new ratification is "freeze + re-hash" of CURRENT content
    (legitimate OPT_1-after-pin, race-free because frozen).
if Option_A (AD markdown revision as surface)  [DURABLE UPGRADE, later]:
  parser_profile_ref MUST become a NEW profile (e.g.
    'agentdata-markdown-constitution-v1') with its OWN B6-style determinism
    ratification (markdown surface != HTML surface; 19132 raw md != 17791 norm).
  the existing nuxt profile is retained as the rendered-view drift DETECTOR.
note: the lost prior bytes (f9d22d05…/17791) are NOT recoverable; the pinned
  snapshot will encode CURRENT content (Codex-observed 17522/17660443… under the
  nuxt profile). The seed's content_checksum will therefore be the NEW ratified
  value, persisted as a NEW version (not an update of the old).

5. Net change vs the seed-authoring-restart package

keep:    atomic 2-INSERT shape ; source_document fields ; registered_by ;
         document_version_id rule ; enacted_only/Điều-44 ; rollback child-first
         no-CASCADE ; PRE/POST/NEG/CK verification skeleton
change:  content_checksum source = PINNED snapshot (not live) ;
         + provenance snapshot_* keys ; + provenance supersedes_* key ;
         + snapshot-integrity precheck replaces live-refetch QG1 ;
         version_status lifecycle (fetched->ratified->active; old->superseded)
         pending live-schema reconfirmation
unchanged_until_GPT: parser_profile (Option-B: same; Option-A: new) — gated on
         option selection ; document_version_id rule (recommend keep)
re_authoring: a SEPARATE later phase (snapshot-capture authoring -> seed
  re-authoring from snapshot). NOT done here.

6. Statement

  • Seed strategy updated to bind source_document_version to a pinned snapshot with snapshot_* + supersedes_* provenance and a snapshot-integrity precheck replacing the live-refetch QG1 (QG2/QG5); version-policy honored (QG3); document_version_id recommended unchanged; parser_profile disposition tied to option choice; live source drift treated as real, old checksum not retried (QG1). Nothing executed/mutated (QG6).
  • doc 4 of 5; STOP after 5 files → route GPT/User. Self-advance PROHIBITED.

Companions: operations-framing, options-analysis, version-policy-design, policy-report.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-constitution-source-snapshot-version-policy/dot-iu-cutter-v0.5-constitution-source-seed-strategy-update-2026-05-18.md