KB-5C60

dot-iu-cutter v0.5 — First Controlled CUT Rerun · Preflight & Backup Result (G0/G1/G2 ALL PASS) (doc 1 of 7)

6 min read Revision 1
dot-iu-cutterv0.5first-controlled-cut-production-execution-rerunpreflight-and-backup-resultg0-passg1-pass-zero-driftg2-passnarrow-backuprestore-test-passdieu442026-05-20

dot-iu-cutter v0.5 — First Controlled CUT Rerun · Preflight & Backup Result

doc 1 of 7 · 2026-05-20 · rerun macro under GPT execution approval (…/reviews/…-blocked-gpt-ruling-and-execution-approval-2026-05-20.md).

phase              : preflight (G0 + G1 + G2)
outcome            : G0 PASS · G1 PASS · G2 PASS
production_mutation: NONE this phase

1. Session identity

date                : 2026-05-20
operator            : Agent (Claude Code / Opus 4.7 / 1M ctx)
working_directory   : /Users/nmhuyen
repo                : /Users/nmhuyen/iu-cutter-build/repo/iu-cutter
branch              : feature/constitution-snapshot-mark-dryrun
HEAD                : f20c79cbc867b009bc84e632bf9e23fd9d359728  (matches approval)
tree                : clean (git status --short empty)
vps_host            : contabo (vmi3080463), SSH ok as root
postgres_container  : `postgres` (postgres:16, healthy, port 127.0.0.1:5432)

2. G0 — SSOT + repo precheck — PASS

KB_read   : confirmed (GPT ruling + 7 first-controlled-cut + 4 production-legA
                        + iu-create-gateway-readme — all read full untruncated)
KB_upload : confirmed (this 7-doc rerun report set)
repo HEAD : f20c79c (matches ratified post_commit_HEAD)
tree      : clean
targeted_tests_rerun :
  command  : python3 -m unittest tests.test_prod_iu_adapter tests.test_cutwrite_snapshot
                                  tests.test_dryrun_snapshot_mark tests.test_cutplan_snapshot
  result   : Ran 95 tests in 0.128s · OK   (95/95 PASS)

3. G1 — live drift precheck — PASS · ZERO drift

db                         : directus
iu_cols                    : 19         == PIN_IU_COLS
uv_cols                    : 16         == PIN_UV_COLS
L1 md5                     : f38c94d0043a61507a8c2e85afd59998  == PIN_L1_MD5
L2 md5                     : 078ba0051ce4d894cabcc0102c4320f8  == PIN_L2_MD5
ICX-CONST rows             : 0          (G-CUT-ONCE precondition met)
public.information_unit rows : 98
public.unit_version    rows  : 105
vocab keys (6/6)           : law_unit, principle, section, article, law,
                              incomex_council — ALL PRESENT
pre-GRANT privileges       : cutter_exec / cutter_verify have ZERO privileges
                              on public.{information_unit, unit_version, dot_config}
roles_exist                : cutter_exec, cutter_verify (login=YES, conn_limit=2)
                              directus (owns public.*; not superuser)
                              context_pack_readonly (read-only catalog role)
                              workflow_admin (superuser; owns cutter_governance.*)
verdict                    : ZERO DRIFT vs 2026-05-20 morning re-verification.
                              All six pins still match.

4. G2 — backup creation + verification — PASS

authorized_by              : GPT ruling 2026-05-20 §G2
                              (AUTHORIZE_AGENT_TO_CREATE_FRESH_BACKUP_IN_RUN)
scope                      : NARROW — public.{information_unit, unit_version,
                              dot_config} only (the 3 tables on the leg-A write
                              path; matches PC-5 / doc 1 §6).
backup_path                : /opt/incomex/backups/pg/directus_legA_cut_pre_grant_20260520T031054Z.dump
backup_sha256              : 17093a7a9cf6b671545919857ec4478273d5332143daf96957549ba657228043
backup_bytes               : 74382
backup_created_utc         : 2026-05-20T03:10:54Z
backup_method              : docker exec postgres pg_dump -U directus -d directus
                              --no-owner --no-acl -Fc -t public.information_unit
                              -t public.unit_version -t public.dot_config
                              (Unix-socket trust auth inside postgres container;
                               no DSN argv leak, no PGPASSWORD)
restorability_test :
  ephemeral_target         : postgres:16 docker container (random root password,
                              ephemeral DB restore_test; --rm; torn down post-test)
  restore_method           : pg_restore -U postgres -d restore_test --no-owner
                              --no-acl --no-publications --no-subscriptions
  exit_code_observed       : 1 (non-fatal — trigger functions outside narrow
                              3-table scope cannot be re-created in ephemeral DB;
                              data restore itself completed successfully)
  row_counts_in_ephemeral  : information_unit=98, unit_version=105, dot_config=65
  match_expected           : YES (== pre-execution baseline)
  result                   : PASS
backup_age_at_CUT_attempt  : ~7 min 20 sec  (CUT attempt at 03:18:14 UTC; well
                              within PC-5 ≤60 min window)
secret_hygiene             : no PGPASSWORD/PG_DSN/DATABASE_URL written/echoed/logged

5. Disposition

G0 (SSOT + repo)       : PASS
G1 (live drift)        : PASS · ZERO drift · all six pins match
G2 (backup)            : PASS · sha 17093a7a… · restore-test row-count match
proceed_to_G3          : YES
production_mutation_this_phase : NONE (read-only catalog probes + backup; backup
                                       reads but does NOT write public.* rows)

doc 1 of 7.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-first-controlled-cut-production-execution-rerun/dot-iu-cutter-v0.5-01-preflight-and-backup-result-2026-05-20.md