KB-4AC3
dot-iu-cutter v0.5 — Snapshot MARK Test+Fixture Fix Report (fix_status=BLOCKED; test mismatch explained→recommend ratify 454d9fc8; fixture non-identity 86d6aea7≠17660443; no commit; STOP→GPT/User)
8 min read Revision 1
dot-iu-cutter v0.5 — Snapshot MARK Test Transport + Fixture CI Fix Report
Phase:
v0_5_constitution_snapshot_MARK_test_transport_fixture_CI_fix· Nature:test_and_fixture_fix__BLOCKED_on_byte_transport__no_commit· Date: 2026-05-18 · doc 4 of 4fix_status: BLOCKED decision_authority: GPT / User ONLY ; self_advance: PROHIBITED
1. Required report fields
fix_status: BLOCKED
# test-file mismatch EXPLAINED (transport artifact; recommend OPT_2 ratify);
# fixture provisioning BLOCKED (pinned identity not byte-reproducible via transport)
test_file_hash_before: 454d9fc84e940fdcf9da10bf29d12c5c420e21b1147ccc8da6a29a81f2843a4a
test_file_hash_after : 454d9fc84e940fdcf9da10bf29d12c5c420e21b1147ccc8da6a29a81f2843a4a
# UNCHANGED — not edited; line-for-line ≡ KB doc-2 verbatim block;
# prior declared 31143968… is NOT byte-recoverable from KB
mismatch_explanation: KB-authoring transport/whitespace artifact, NOT a
content change. dryrun.py from the same doc is byte-exact (f1f42e83…),
proving transport is faithful for code; the repo test file is line-for-line
identical to the patch-SSOT verbatim block; no whitespace/newline/CRLF
variant reproduces 31143968 (bounded experiment, doc 1 §3). 31143968 was
computed on a pre-embed scratch copy whose whitespace layout was lost when
embedded into KB markdown.
fixture_path: tests/fixtures/constitution-normalized-17660443e0f23e99.md
(GPT-preferred test-only path; NON-IDENTITY — quarantined, not wired;
repo-root path intentionally left ABSENT to avoid a misleading run)
fixture_checksum_rehash: region_length 17522 == pinned ✓ ;
marker_counts {enacted:19,controlled_draft:1,draft:1,obsolete:1} == pinned ✓ ;
region_sha256 86d6aea7539d006f3e3af35b784b2599ff6dc6f330607939e4d86bde53097550
!= pinned 17660443e0f23e994e1807cf8e22920951a9e70c598956dbd0e752f4f5cae80c
-> identity_match FALSE (NFC/NFD/NFKC/NFKD none match; ≥3× U+2013 EN-DASH
class same-width substitution; transport not byte-faithful for this artifact)
tests_run: python3 -m unittest (pytest absent) — full suite + non-fixture subset
test_result: full 21 -> 14 ERROR (fixture-bound; no identity fixture) + 7 OK;
non-fixture subset 7/7 PASS (dryrun.py byte-exact, no regression)
git_status_diff: branch feature/constitution-snapshot-mark-dryrun @ 4367c83
(unchanged HEAD); untracked only: cutter_agent/dryrun.py,
tests/test_dryrun_snapshot_mark.py, tests/fixtures/ ; tracked diff EMPTY;
0 existing files modified; no staged/committed change; main untouched
commit_status: NOT_COMMITTED (GPT: no commit; also blocked pre-green CI)
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 mutation, no
deploy/restart, no remote/push, no self-advance
next_recommended_phase: GPT/User RULING + byte-exact transport supply (§4)
2. Quality gates
QG1 dryrun.py unchanged unless justified : PASS — UNCHANGED f1f42e83…
(no defect found; explicitly not modified)
QG2 test mismatch explained or escalated : PASS — explained (transport
artifact) AND escalated with recommendation OPT_2 ratify 454d9fc8
QG3 fixture derived from pinned snapshot : PASS — derived ONLY from the
pinned KB artifact; BEGIN/END region preserved; len+markers exact;
but byte-identity unreachable via transport -> BLOCKED & reported
QG4 local tests rerun : PASS — full + subset rerun,
results recorded (doc 3)
QG5 no commit/deploy/dry-run/CUT/VERIFY/DB : PASS — none performed
QG6 stop after uploading 4 files : PASS — exactly 4 docs; STOP
3. What was done (chronological)
1 read KB SSOT: GPT BLOCKED ruling; code-authoring doc 2 (verbatim patch);
pinned snapshot artifact; branch CI package
2 verified repo state: branch feature/constitution-snapshot-mark-dryrun,
HEAD 4367c83, dryrun.py f1f42e83, test 454d9fc8, no commit
3 side-by-side: repo test file ≡ KB doc-2 verbatim block line-for-line
4 bounded recovery experiment: no whitespace/newline/CRLF variant -> 31143968
=> mismatch = KB-authoring transport artifact; recommend OPT_2 ratify
5 provisioned fixture from pinned artifact -> tests/fixtures/…; rehashed via
cutter_agent.dryrun.extract_region: len 17522 ✓ markers 19/1/1/1 ✓ but
sha 86d6aea7 ≠ 17660443 -> NON-IDENTITY (transport not byte-faithful);
not wired to any test path (no false PASS); dryrun.py NOT touched
6 reran local unittest: 7/7 non-fixture PASS; 14 fixture-bound still ERROR
7 recorded git status/diff (no commit, HEAD unchanged); uploaded 4 docs; STOP
NOT done: commit, deploy, first dry-run, CUT, VERIFY, DB, Directus, mutate
dryrun.py, character-guessing to force a hash, self-advance
4. Routed to GPT / User (sovereign)
ISSUE: markdown-fenced / KB-MCP-text transport is NOT byte-faithful for
whitespace- and codepoint-significant artifacts. Two artifacts affected:
(a) tests/test_dryrun_snapshot_mark.py — declared 31143968, transported 454d9fc8
(b) pinned snapshot fixture — pinned 17660443, transported 86d6aea7
(cutter_agent/dryrun.py was unaffected: byte-exact f1f42e83 — accepted.)
options:
R1 (test file): ratify current 454d9fc8 as canonical (OPT_2 — recommended;
side-by-side equivalent, dryrun.py byte-exact, 7/7 pass) AND update KB
hash-of-record 31143968 -> 454d9fc8.
R2 (fixture): publish the pinned snapshot as a BYTE-EXACT transport — a
base64 / content-addressed blob in KB (decodes to region sha 17660443…),
so a later gated phase can drop a byte-identity test-only fixture and
run full 21/21 CI. (Markdown re-embed cannot carry it faithfully.)
R3 (durable): adopt base64/content-addressed transport for ALL future
iu-cutter patch + fixture artifacts (whitespace/codepoint-significant).
gating_unchanged: first Constitution dry-run, CUT, VERIFY, production DB,
commit-to-default, deploy ALL remain SEPARATELY gated.
5. Explicit non-execution statement
- No commit. No deploy/restart. No first Constitution dry-run. No CUT.
No VERIFY. No production DB write. No source_document/source_version
mutation. No schema change. No Directus mutation. No remote/push.
cutter_agent/dryrun.pyNOT modified (byte-exact f1f42e83 preserved).tests/test_dryrun_snapshot_mark.pyNOT modified (454d9fc8 preserved). No character-guessing to force any hash. No self-advance. - Only actions: read-only KB/repo inspection, bounded deterministic hash
experiments, additive quarantined non-identity fixture under
tests/fixtures/(not wired), localunittestrerun, git status read. Baselinemain& HEAD4367c83byte-unchanged; fully reversible (delete the 3 untracked paths). - Exactly 4 docs under
…/v0.5-constitution-snapshot-mark-test-transport-fixture-ci-fix/. - doc 4 of 4 — STOP. Route to GPT / User review for R1/R2/R3 (§4). Self-advance PROHIBITED.
Companion docs: test-transport-analysis (1), fixture-provision-log (2), ci-rerun-result (3).