KB-22F7
dot-iu-cutter v0.5 — Snapshot MARK Fixture Provision Log (provisioned from pinned snapshot; region len 17522 ✓ markers 19/1/1/1 ✓ but sha 86d6aea7 ≠ pinned 17660443 → NON-IDENTITY, transport not byte-faithful, BLOCKED)
5 min read Revision 1
dot-iu-cutter v0.5 — Snapshot MARK Fixture Provision Log
Phase:
…_test_transport_fixture_CI_fix· Nature:fixture_provision_attempt__BLOCKED_on_byte_identity· Date: 2026-05-18 · doc 2 of 4fixture_path: tests/fixtures/constitution-normalized-17660443e0f23e99.md region_length: 17522 (== pinned ✓) ; marker_counts: {enacted:19,controlled_draft:1,draft:1,obsolete:1} (== pinned ✓) region_sha256: 86d6aea7539d006f3e3af35b784b2599ff6dc6f330607939e4d86bde53097550 pinned_sha256: 17660443e0f23e994e1807cf8e22920951a9e70c598956dbd0e752f4f5cae80c identity_match: FALSE -> NON-IDENTITY fixture (transport not byte-faithful) -> BLOCKED
1. Source (pinned snapshot artifact — SSOT)
kb_doc: knowledge/dev/laws/dieu44-trien-khai/snapshots/constitution/
constitution-normalized-17660443e0f23e99.md (revision 1, write-once)
frontmatter: normalized_content_checksum 17660443…cae80c ; length 17522 ;
marker_counts {enacted:19,controlled_draft:1,draft:1,obsolete:1}
rule_obeyed: fixture derived ONLY from this pinned artifact; BEGIN/END
normalized-content region preserved verbatim; local test-only
(untracked, not committed); NOT treated as first-dry-run output
(cutter_agent.dryrun was NEVER executed; no manifest emitted).
2. Provision action
written: tests/fixtures/constitution-normalized-17660443e0f23e99.md
(GPT-preferred test-only path; full artifact incl. YAML frontmatter +
<<<BEGIN…>>> / …END>>> sentinels + normalized region, transcribed from
the KB MCP-returned artifact text)
NOT copied to repo-root path the unmodified test resolves
(Path(__file__).resolve().parents[1] / "constitution-normalized-…md")
because the region is NON-IDENTITY — copying would neither fix CI nor be
a faithful pinned copy, and could cause a misleading run. Root path left
ABSENT intentionally (no false PASS).
3. Rehash gate (via cutter_agent.dryrun.extract_region — the real gate)
region_length : 17522 == pinned 17522 ✓
marker_counts : enacted=19 controlled_draft=1 draft=1 obsolete=1
== pinned ✓
region_sha256 : 86d6aea7539d006f3e3af35b784b2599ff6dc6f330607939e4d86bde53097550
pinned identity sha256 : 17660443e0f23e994e1807cf8e22920951a9e70c598956dbd0e752f4f5cae80c
SHA_MATCH : FALSE
overall_fixture_valid : FALSE
4. Diagnosis (deterministic, no character guessing)
normalization: region is already is_NFC=true. NFC/NFD/NFKC/NFKD all tested:
NFC len17522 sha 86d6aea7 (no match) NFD len19565 sha eac25f33
NFKC len17524 sha 1d9e245e NFKD len19567 sha 125ad184
-> NOT a Unicode normalization issue.
suspicious_codepoints_in_region:
U+2192 → x65 ; U+2014 — x42 ; U+2705 ✅ x19 ; U+00A7 § x10 ;
U+2013 – x3 ; U+00B7 · x2 ; U+2026 … x1 ; U+00D7 × x1 ;
U+1F4CB 📋 x1 ; U+1F4DD 📝 x1 ; U+26D4 ⛔ x1
no NBSP/ZWSP/BOM/soft-hyphen/narrow-NBSP present.
finding: the MCP→context→Write transport delivered a region that preserves
CODE-POINT COUNT (17522) and MARKER CENSUS (19/1/1/1) but NOT the byte
identity — at least 3× U+2013 EN DASH appear where the pinned artifact's
identity sha implies different (equal-width) characters; length/markers
coincidentally invariant under such 1:1 substitutions. The pinned
write-once identity (sha 17660443) cannot be byte-reproduced through the
available KB-text transport. Forcing the hash by mutating characters is
PROHIBITED (guessing) and was NOT done.
5. Stop condition triggered
fixture rule: "must come from the pinned snapshot artifact; must preserve
BEGIN/END normalized-content region." A region with sha 86d6aea7 does
NOT preserve the pinned identity (17660443) -> not a faithful copy.
stop condition: "if tests still fail after fixture provision" -> they do:
TestGate.setUp calls snapshot_gate(region, SHA=17660443…) which raises
FailClosed on the sha mismatch (and the unmodified test reads repo-root,
intentionally left absent). => fixture provisioning BLOCKED.
action: NON-IDENTITY fixture retained at tests/fixtures/ for GPT inspection,
clearly labeled; NOT wired into any test path; dryrun.py NOT modified;
nothing committed.
doc 2 of 4. Self-advance PROHIBITED.