KB-3B15
dot-iu-cutter v0.2 — P0-2 Dry-Run Verification Results (2026-05-16)
6 min read Revision 1
dot-iu-cutterdieu44v0.2p0-2dry-runverification20-of-20-pass
dot-iu-cutter v0.2 — P0-2 Dry-Run Verification Results
document_path: knowledge/dev/laws/dieu44-trien-khai/v0.2-dry-run/dot-iu-cutter-v0.2-p0-2-dry-run-verification-results-2026-05-16.md
revision: r1
date: 2026-05-16
author: Agent (Claude Code CLI, Opus 4.7 1M)
phase: v0.2 — P0-2 DRY-RUN verification grid
env: pg-dry-run-v0.2-p0-2-2026-05-16 (sysid 7640333723208519724 ≠ prod)
verification_verdict: PASS (20/20)
rollback_verdict: PASS
Authoritative result is run 03 (corrected harness). Run 02 had 3 cosmetic expected-string false-negatives (regclass schema-qualification) with correct substance; DDL was committed in run 02 (rc=0) and NOT re-executed in run 03.
§1 — Verification Grid (run 03, DDL committed)
| ID | Check | Expected | Observed | Result |
|---|---|---|---|---|
| V-01 | manifest_envelope exists | cutter_governance.manifest_envelope | cutter_governance.manifest_envelope | PASS |
| V-02 | manifest_unit_block exists | cutter_governance.manifest_unit_block | cutter_governance.manifest_unit_block | PASS |
| V-03 | both tables in cutter_governance | 2 | 2 | PASS |
| V-04 | manifest_envelope row count | 0 | 0 | PASS |
| V-05 | manifest_unit_block row count | 0 | 0 | PASS |
| V-06 | FK is child→parent | cutter_governance.manifest_unit_block→cutter_governance.manifest_envelope | same | PASS |
| V-06n | exactly one FK | 1 | 1 | PASS |
| V-07 | no cross-schema FK | 0 | 0 | PASS |
| V-08 | no CHECK constraint | 0 | 0 | PASS |
| V-09 | no trigger | 0 | 0 | PASS |
| V-10 | no column DEFAULT | 0 | 0 | PASS |
| V-11e | envelope PK | PRIMARY KEY (envelope_id) | PRIMARY KEY (envelope_id) | PASS |
| V-11b | unit_block PK | PRIMARY KEY (envelope_id, unit_local_id) | PRIMARY KEY (envelope_id, unit_local_id) | PASS |
| V-12 | no alias_ref column | 0 | 0 | PASS |
| V-13 | no edge table | 0 | 0 | PASS |
| V-14e-n | envelope column count | 12 | 12 | PASS |
| V-14b-n | unit_block column count | 13 (see Note N1) | 13 | PASS |
| V-14e-names | envelope columns exact | envelope_id,operation_kind,status,source_doc_ref,escalation_ref,cut_change_set_ref,created_by,created_at,reviewer,reviewed_at,rationale,superseded_by_envelope_id | identical | PASS |
| V-14b-names | unit_block columns exact | envelope_id,unit_local_id,block_role,source_span,render_order,target_unit_id,proposed_canonical_address,proposed_authority,payload_summary,candidate_edges,report_summary,decision_backlog_ref,created_at | identical | PASS |
| V-15 | v0.1 5 tables present | 5 | 5 | PASS |
| V-15diff | v0.1 colcounts unchanged | pre==post | identical | PASS |
| V-16rows | canonical_address_alias rows | 0 | 0 | PASS |
| V-16idx | canonical_address_alias indexes | 5 | 5 | PASS |
| V-17pre | cutter_governance pre count | 6 | 6 | PASS |
| V-17post | cutter_governance post count | 8 | 8 | PASS |
| V-18cols | tac_logical_unit columns | 15 | 15 | PASS |
| V-18data | tac_logical_unit rows|max(updated_at) | 86|2026-05-16 02:27:27.789235+00 | identical | PASS |
| V-19cols | sandbox_tac.logical_unit columns | 15 | 15 | PASS |
| V-19rows | sandbox_tac.logical_unit rows | 76 | 76 | PASS |
| V-20 | schema delta | +2 tables (6→8), none removed | +2, none removed | PASS |
| PROD-INTACT | prod cutter_governance | 6 | 6 | PASS |
Verification: 20/20 PASS (plus V-06n + PROD-INTACT auxiliary checks PASS).
§2 — Rollback Test Grid
rollback_sql: BEGIN; DROP TABLE cutter_governance.manifest_unit_block;
DROP TABLE cutter_governance.manifest_envelope; COMMIT;
psql_output: BEGIN / DROP TABLE / DROP TABLE / COMMIT
rollback_rc: 0
| ID | Check | Expected | Observed | Result |
|---|---|---|---|---|
| RB-1 | manifest_unit_block gone | ABSENT | ABSENT | PASS |
| RB-2 | manifest_envelope gone | ABSENT | ABSENT | PASS |
| RB-3 | cutter_governance count | 6 | 6 | PASS |
| RB-4 | cg identical to pre-P0-2 baseline | pre==post (diff clean) | identical | PASS |
| RB-5 | tac_logical_unit unchanged | draft/canonical-address-v1/86 | identical | PASS |
| PROD-INTACT2 | prod cutter_governance | 6 | 6 | PASS |
Rollback: PASS — dry-run returned bit-identical to pre-P0-2 state; no data loss (tables empty); production untouched.
§3 — Pre-P0-2 cutter_governance Baseline (on-disk evidence)
canonical_address_alias:9
cut_change_set:24
cut_change_set_affected_row:8
decision_backlog_entry:6
dot_pair_signature:16
verify_result:26
(post-rollback pre_cg_sorted.txt == postrb_cg.txt, diff clean → RB-4 PASS)
§4 — Failure / Stop Criteria Outcome
hard_stop_hits: 0
table_missing: false
tables_non_empty: false (both 0)
fk_wrong_or_extra: false (exactly 1, child→parent)
cross_schema_fk: false (0)
forbidden_constraint_class: false (CHECK 0 / trigger 0 / DEFAULT 0)
alias_ref_present: false (0)
edge_table_present: false (0)
column_shape_drift: false (12 / 13 exact names)
collateral_mutation: false (v0.1 + alias + tac_logical_unit + sandbox_tac all unchanged)
production_touched: false (prod sysid + state unchanged; pg_dump read-only only)
=> PASS_WITH_NOTES (notes are documentation/harness only; see execution report §8)
End of P0-2 dry-run verification results.