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 4apply_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 -bthe feature branch, write the 2 authorized additive files, localunittest, read-only git status.cutter_agent/dryrun.pyis byte-exact (f1f42e83…) and import-isolated (stdlib-only; no DB/CUT/VERIFY reachable). Baselinemainand HEAD4367c83byte-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).