KB-44E5

dot-iu-cutter v0.5 — Constitution Snapshot-source MARK Branch Patch Apply CI Report (apply_status=BLOCKED; dryrun.py byte-exact PASS; test file sha MISMATCH; no commit; STOP→GPT/User)

7 min read Revision 1

dot-iu-cutter v0.5 — Constitution Snapshot-source MARK Branch Patch Apply & CI Report

Phase: v0_5_constitution_snapshot_source_MARK_entrypoint_branch_patch_apply_CI · Nature: controlled_branch_apply__BLOCKED_on_byte_faithfulness__no_commit · Date: 2026-05-18 · doc 4 of 4

apply_status: BLOCKED (STOP_AND_REPORT)
decision_authority: GPT / User ONLY ; self_advance: PROHIBITED

1. Required report fields

apply_status:   BLOCKED
                # PARTIAL: cutter_agent/dryrun.py = BYTE-EXACT PASS (f1f42e83…);
                # tests/test_dryrun_snapshot_mark.py = byte-faithfulness FAIL
                # (454d9fc8… != ratified 31143968…) -> controlling guard fires
repo_path:      /Users/nmhuyen/iu-cutter-build/repo/iu-cutter
branch:         feature/constitution-snapshot-mark-dryrun  (from main@4367c83)
HEAD_before:    4367c83553207a9e3e037d6092f27a39c47eca7b
HEAD_after:     4367c83553207a9e3e037d6092f27a39c47eca7b   (unchanged — NO commit)
files_added:
  - cutter_agent/dryrun.py             new, sha256 f1f42e83…2efa1422 == expected ✓
  - tests/test_dryrun_snapshot_mark.py new, sha256 454d9fc8…f2843a4a != 31143968… ✗
files_modified: 0  (zero existing repo files touched — pure addition)
tests_run:      python3 -m unittest (pytest absent)
                full module: 21 tests, 14 ERROR, 7 OK
                non-fixture subset: 7/7 PASS
test_result:
  byte_exact_dryrun_logic: VALIDATED — 7/7 fixture-independent PASS
    (TestFailClosedSynthetic 4/4, TestNoDbImportIsolation 3/3; AST: stdlib-only)
  fixture_bound: 14 ERROR = FileNotFoundError on the PINNED snapshot fixture
    constitution-normalized-17660443e0f23e99.md — OUT OF PHASE SCOPE / not
    authorized to add -> environmental, NOT a code regression
git_diff_summary: 2 new untracked files on feature branch; 0 modified; 0 deleted;
  no staged/committed change; main untouched; reversible by deleting 2 files
commit_status:  NOT_COMMITTED (GPT: commit only on later explicit approval;
  guards: byte-faithfulness FAIL + non-green fixture CI -> do NOT commit)
downstream_not_executed: TRUE — no first Constitution dry-run, no CUT, no VERIFY,
  no production IU, no production DB write, no source_document/source_version
  mutation, no schema change, no Directus/vector mutation, no deploy/restart,
  no remote add/push, no self-advance
next_recommended_phase: GPT/User RULING on the test-artifact byte-faithfulness
  failure (options in §4), then a re-gated branch patch-apply + full CI phase.

2. What was done (chronological, factual)

1 read KB SSOT: GPT baseline-closeout+patch-apply approval; GPT entrypoint-design
  ruling; code-authoring patch doc 2 (full verbatim) — confirmed scope/guards
2 precheck (read-only): repo path OK; HEAD == 4367c83; tree clean; both target
  files ABSENT; python3 3.11.6; pytest absent
3 created branch feature/constitution-snapshot-mark-dryrun from main@4367c83
4 wrote the 2 KB doc-2 verbatim files (pure addition; 0 existing files modified)
5 sha256 verify: dryrun.py == f1f42e83… EXACT ✓ ; test file == 454d9fc8… != KB
  31143968… ✗  -> controlling guard "not byte-faithful from KB" -> STOP_AND_REPORT
6 ran local unittest: 7/7 fixture-independent PASS against the byte-exact module;
  14 fixture-bound ERROR = absent out-of-scope pinned snapshot fixture
7 recorded git status/diff (no commit; HEAD unchanged; main untouched)
8 uploaded 4 KB docs; STOP -> route GPT/User
NOT done: commit, deploy, dry-run, CUT, VERIFY, DB, Directus, remote, self-advance

3. Quality-gate self-check

QG1 repo path + baseline HEAD verified : PASS  (4367c83, clean, targets absent)
QG2 feature branch from baseline       : PASS  (feature/constitution-snapshot-mark-dryrun @4367c83)
QG3 only authorized files added        : PARTIAL — exactly the 2 authorized files
    added, 0 existing modified; BUT test file not byte-faithful -> apply BLOCKED
QG4 tests run locally only             : PASS  (python3 -m unittest; no DB; pg
    adapter test deliberately skipped as unsafe)
QG5 no commit / no deploy              : PASS  (HEAD unchanged; nothing pushed)
QG6 no dry-run / CUT / VERIFY / DB     : PASS  (none executed)
QG7 git diff/status reported           : PASS  (doc 3)
QG8 stop after uploading 4 files       : PASS  (exactly 4 docs; STOP here)

4. Decision routed to GPT / User (sovereign)

finding: KB doc-2 markdown reproduces cutter_agent/dryrun.py BYTE-EXACT
  (f1f42e83…) — module authenticity proven. The SAME transcription of the
  embedded tests/test_dryrun_snapshot_mark.py block yields 454d9fc8… !=
  ratified 31143968… (KB diffstat hinted ~211 lines; reproduced 219). Root
  cause cannot be isolated without the authoritative test bytes; governance
  forbids guessing whitespace/line edits to force a hash.
options:
  OPT-1 (recommended): GPT/User publish a BYTE-EXACT transport for
    tests/test_dryrun_snapshot_mark.py (e.g. base64 / content-addressed blob in
    KB, hash 31143968…), then a re-gated phase drops it sha-verified on the
    SAME feature branch (dryrun.py already byte-exact, accept as-is) and re-runs CI.
  OPT-2: GPT/User ratify the reproduced test file’s NEW sha256 454d9fc8… as the
    canonical test artifact IF a side-by-side review confirms it is semantically
    the authored suite (7/7 fixture-independent already PASS), updating the KB
    hash of record.
  OPT-3: GPT/User additionally authorize provisioning the PINNED snapshot
    fixture (constitution-normalized-17660443e0f23e99.md, region sha 17660443…)
    into the repo/test path so full 21/21 CI (incl. TestGate/TestManifest) can
    run — currently impossible (fixture out of scope this phase).
gating_unchanged: first Constitution dry-run, CUT, VERIFY, production DB,
  commit-to-default, deploy ALL remain SEPARATELY gated regardless of option.

5. Explicit non-execution statement

  • No commit. No deploy/restart. No first Constitution dry-run. No CUT. No VERIFY. No production IU. No production DB write. No source_document/ source_version mutation. No schema change. No Directus/vector mutation. No remote add/push. No self-advance.
  • Only authorized actions: read-only precheck, git checkout -b the feature branch, write the 2 authorized additive files, local unittest, read-only git status. cutter_agent/dryrun.py is byte-exact (f1f42e83…) and import-isolated (stdlib-only; no DB/CUT/VERIFY reachable). Baseline main and HEAD 4367c83 byte-unchanged; trivially reversible.
  • Exactly 4 docs under …/v0.5-constitution-snapshot-source-mark-entrypoint-branch-patch-apply-ci/.
  • doc 4 of 4 — STOP. Route to GPT / User review for the byte-faithfulness ruling (§4: OPT-1 / OPT-2 / OPT-3). Self-advance PROHIBITED.

Companion docs: branch-patch-apply-log (1), branch-patch-test-result (2), branch-git-diff-status (3).

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-constitution-snapshot-source-mark-entrypoint-branch-patch-apply-ci/dot-iu-cutter-v0.5-constitution-snapshot-mark-branch-patch-apply-ci-report-2026-05-18.md