KB-693D

dot-iu-cutter v0.2 — Phase α Production Execution Report (2026-05-16)

16 min read Revision 1
dot-iu-cutterv0.2phase-alphaproduction-executiondieu44execution-report

dot-iu-cutter v0.2 — Phase α Production Execution Report

document_path: knowledge/dev/laws/dieu44-trien-khai/v0.2-execution/dot-iu-cutter-v0.2-phase-alpha-production-execution-report-2026-05-16.md
revision: r1
date: 2026-05-16
executed_utc: 2026-05-16T02:26:57Z .. 2026-05-16T02:27:30Z
author: Agent (Claude Code CLI, Opus 4.7 1M)
phase: v0.2 — Phase α PRODUCTION execution (C-01..C-08 executed; C-09 NOT triggered)
predecessor_gate: GPT PASS on Phase α Production Command Review Package (2026-05-16)
execution_status: success
production_touched: TRUE
ddl_executed: TRUE (C-07 only)
mutation_performed: TRUE (C-07 only)
rollback_executed: FALSE
self_advance: PROHIBITED — STOP, await GPT review

§1 — execution_status

execution_status: success

  • C-01 → C-08 executed exactly as defined in the command-review package.
  • C-07 (the single planned production-mutating command) committed atomically (psql exit 0).
  • C-08 post-migration verification: 17/17 PASS (VA-1..VA-15 + VA-13rows + VA-16).
  • C-09 rollback not triggered (C-08 passed; no rollback condition met).
  • All 11 safety gates (G-1..G-11) held; no abort fired.

§2 — Production identity (G-4 / P-1)

host                 = vmi3080463 (VPS 38.242.240.89)
container            = postgres
database             = directus
migration role       = workflow_admin (rolsuper = t)
server_version       = 16.13 (Debian 16.13-1.pgdg13+1)
target distinct from dry-run env container 'pg-dry-run-v0.2-phase-alpha-2026-05-16' = confirmed

Provenance integrity (G-10): dry-run env container present; frozen r2 artefact /opt/incomex/backups/dieu44_phase_alpha_2026-05-16/sql/dot-iu-cutter-v0.2-phase-alpha-r2.sql sha256 verified == required before use.


§3 — Artefact directory + checksums

DEST = /opt/incomex/backups/dieu44_phase_alpha_prod_20260516T022657Z/

Artefact Path (under DEST) SHA256
Fresh prod backup (custom fmt, 64,587,082 B) phase_alpha_prod_20260516T022657Z.dump e0b178a96f03283fba278eff66a0c351a7f81bedb8f71ffcc22982471352f449
Pre-migration schema snapshot schema/predll_schema_prod_20260516T022657Z.sql c5b1b695bc5732ba20787e24a7b8fc73c616d346b6694dbbcacbe1ed2efd2ec0
Pre updated_at CSV (86 rows) schema/prod_pre_updated_at_20260516T022657Z.csv 07454b1d076e4b6ad5498d280a7fd6f70df4889f1fad2980265d8ca94989b3ad
Pre state probe schema/pre_state_probe_20260516T022657Z.txt 2e393cb0105e39cf6ad5501fe2cba4f8f5293ee080bcf10d82f58e18ababb167
Frozen DDL r2 (source for C-07) sql/dot-iu-cutter-v0.2-phase-alpha-r2.sql 65533e0564ee45625b43bff383252ec03f20e284a5cc506d78e1079d6f893fe3
Post-migration schema snapshot schema/postddl_schema_prod_20260516T022657Z.sql aae7fc447d6eaea7c078649a94982660e84f9446d63a2b39edfe295bc84f33d8
Post updated_at CSV (86 rows) schema/prod_post_updated_at_20260516T022657Z.csv 67ab51c7b4b87234aff4596d0309a6d480230ee8b5b0a0bc2d46c3d4f0db672b
Post state probe schema/post_state_probe_20260516T022657Z.txt 31899491964a61730f884f2322d3fa617bbc5b79ab79410a83aa21b9baca5930
Schema DDL-line diff schema/schema_ddl_diff_20260516T022657Z.txt ebc9da71a10174654bbbab8206c9ec0d6592be624dcf9475b0a192a453c60f0f

Logs: logs/driver_*.log, logs/c06_preflight_*.txt, logs/c07_migration_*.out, logs/c08_verify_*.txt. Run summary: SUMMARY.txt. SHA256SUMS aggregates all of the above.

Backup freshness (G-2): backup_epoch = 1778898445; backup age at migration start = 2 s (limit 3600 s) — well within bound.


§4 — DDL source

ddl_source_path:   $DEST/sql/dot-iu-cutter-v0.2-phase-alpha-r2.sql
ddl_source_sha256: 65533e0564ee45625b43bff383252ec03f20e284a5cc506d78e1079d6f893fe3
match_required:    65533e0564ee45625b43bff383252ec03f20e284a5cc506d78e1079d6f893fe3  → EXACT MATCH (G-3 PASS)
provenance:        copied verbatim from the dry-run-frozen artefact (sha-proven by Phase α dry-run, GPT PASS_WITH_NOTES); NOT re-extracted (no whitespace/sha risk).

§5 — Command sequence summary

Cmd Action Result
P-1/G-4 Production identity PASS (postgres/directus/workflow_admin/PG16.13)
G-10 Dry-run provenance + frozen r2 sha PASS
C-01 Fresh prod backup (pg_dump -F c -Z 6, workflow_admin) PASS — 64,587,082 B, restorable (pg_restore --list = 2712 TOC entries)
C-02 Backup checksum + freshness marker PASS
C-03 Pre-migration schema snapshot PASS
C-04 Pre-migration row-count + updated_at CSV (86 rows) PASS
C-05 Freeze DDL r2 + assert sha256 (G-3) PASS
C-06 Preflight P-3..P-10 (P-1/P-2 done earlier) 10/10 PASS
G-2 Backup age ≤ 3600 s at migration PASS (2 s)
C-07 Migration — single transaction, ON_ERROR_STOP=1, r2 only psql exit 0, COMMIT
C-08 Post-migration verification 17/17 PASS
C-09 Rollback NOT TRIGGERED (no failure)

§6 — C-06 preflight results

P-3  cutter_governance schema exists ............................. PASS
P-4  v0.1 5 tables exist ......................................... PASS
P-5  canonical_address_alias does NOT exist ...................... PASS
P-6  public.tac_logical_unit new cols do NOT exist ............... PASS
P-7  sandbox_tac.logical_unit new cols do NOT exist .............. PASS
P-8  count(public.tac_logical_unit) = 86 ......................... PASS
P-9  count(sandbox_tac.logical_unit) = 76 ........................ PASS
P-10 Q-CHK-1 section_type vocab all active ....................... PASS (0)
P-10 Q-CHK-2 parent_id resolution + doc_code parity ............. PASS (0)
P-10 Q-CHK-3 canonical_address regex defensive recheck .......... PASS (0)

P-1 (production identity) and P-2 (DDL checksum) confirmed at preamble — see §2, §4.


§7 — C-07 migration result

command:  docker exec postgres psql -U workflow_admin -d directus -v ON_ERROR_STOP=1 --echo-errors -f /tmp/r2_phase_alpha.sql
psql_exit: 0
outcome:   single BEGIN..COMMIT applied atomically; COMMIT reached
statements: 1×BEGIN, 3×SET LOCAL, 5×ALTER TABLE (add cols / set defaults),
            UPDATE 86 (Step 3 BR-4 backfill), 1×CREATE TABLE, 4×CREATE INDEX,
            6×COMMENT, 1×trailing SELECT, 1×COMMIT

In-transaction trailing SELECT (matches GPT r2 verification expectation exactly):

tac_authority_draft   = 86
tac_authority_enacted = 0
tac_authority_runtime = 0
tac_authority_null    = 0
tac_format_v1         = 86
sandbox_authority_null= 76
sandbox_format_v1     = 76
alias_table_present   = 1

UPDATE 86 confirms the BR-4 backfill actually fired on all 86 rows (the decisive r2-vs-r1 evidence; the rejected r1 form would have shown UPDATE 0).


§8 — C-08 verification results

ID Check Result Detail
VA-1 public new cols shape PASS authority:text:YES:'draft'::text; canonical_address_format_version:text:NO:'canonical-address-v1'::text
VA-2 sandbox mirror cols shape PASS identical shape to VA-1
VA-3 alias table exists PASS 1
VA-4 alias 9 columns in order PASS alias_id,target_unit_id,alias_text,alias_kind,valid_from,valid_until,created_by,rationale,scenario_ref
VA-5 alias 5 indexes PASS pkey + idx_alias_alias_kind/alias_text/target_unit_id/validity_window
VA-6 public.authority distribution PASS draft=86 enacted=0 runtime=0 null=0
VA-7 public.format_version distribution PASS canonical-address-v1=86
VA-8 sandbox.authority distribution PASS null=76 nonnull=0
VA-9 sandbox.format_version distribution PASS canonical-address-v1=76
VA-10 alias row count PASS rows=0
VA-11 canonical_address unchanged PASS canonical_address:text:NO:NULL
VA-12 UNIQUE constraint intact PASS UNIQUE (canonical_address)
VA-13 cutter_governance 6 tables PASS 5 v0.1 + canonical_address_alias
VA-13rows cutter_governance total rows PASS 0
VA-14 tac integrity rows:nonnull:distinct PASS 86:86:86
VA-15 sandbox rowcount PASS 76
VA-16 schema diff additions-only PASS removed=0, added=6

17/17 PASS. Pass thresholds identical to the dry-run verification-results doc; trailing SELECT exact; V-α-16 removed=0 (strictly additive).

VA-16 added DDL lines (all additive, all within Phase α scope):

> ALTER TABLE ONLY cutter_governance.canonical_address_alias            (PRIMARY KEY)
> CREATE INDEX idx_alias_alias_kind     ON cutter_governance.canonical_address_alias USING btree (alias_kind)
> CREATE INDEX idx_alias_alias_text     ON cutter_governance.canonical_address_alias USING btree (alias_text)
> CREATE INDEX idx_alias_target_unit_id ON cutter_governance.canonical_address_alias USING btree (target_unit_id)
> CREATE INDEX idx_alias_validity_window ON cutter_governance.canonical_address_alias USING btree (valid_from, valid_until DESC)
> CREATE TABLE cutter_governance.canonical_address_alias (

Zero removed lines. The 4 new columns (2 tables × authority + canonical_address_format_version) are pg_dump-inlined into the recreated CREATE TABLE bodies and are independently confirmed by VA-1/VA-2 — exactly as observed and accepted in the dry-run (N-3).


§9 — updated_at before/after measurement (mandatory, §5 of package)

Metric Pre (C-04) Post (C-08)
rows with changed updated_at 86 / 86
distinct updated_at 3 1
min updated_at 2026-04-29 05:27:37.951703+00 2026-05-16 02:27:27.789235+00
max updated_at 2026-04-30 03:12:19.569465+00 2026-05-16 02:27:27.789235+00
rows_changed: 86/86 (expected 86/86) — MATCH
assessment:   EXPECTED & ACCEPTED. The Step 3 (operation b) BR-4 backfill UPDATE matched
              all 86 public.tac_logical_unit rows; trg_tac_birth_gate_lu set
              NEW.updated_at := now() on each → all 86 bumped to a single timestamp
              (2026-05-16 02:27:27.789235+00; post distinct = 1).
dry-run reference: pre distinct=3 → post distinct=1; rows_changed=86/86 — production MATCHES dry-run exactly.
acceptance:   accepted because every other preflight + verification check passed.
              Positive evidence the backfill executed (rejected r1 form ⇒ rows_changed=0).
restore note: original updated_at values are NOT restorable by the §6 rollback;
              recoverable only from the C-01 backup .dump
              (sha e0b178a96f03283fba278eff66a0c351a7f81bedb8f71ffcc22982471352f449).

§10 — Created / changed objects

public.tac_logical_unit:
  + column authority text  (nullable, DEFAULT 'draft' — set Step 4, post-backfill; future rows only)
  + column canonical_address_format_version text NOT NULL DEFAULT 'canonical-address-v1'
  ~ 86 rows: authority backfilled 'draft' via BR-4 CASE (all 86 were lifecycle_status='draft_only')
  ~ 86 rows: updated_at bumped (trg_tac_birth_gate_lu side effect — accepted)
sandbox_tac.logical_unit:
  + column authority text  (nullable, DEFAULT 'draft'; 76 existing rows stay NULL — no backfill)
  + column canonical_address_format_version text NOT NULL DEFAULT 'canonical-address-v1' (76 rows → v1)
cutter_governance.canonical_address_alias:
  + CREATE TABLE (9 cols; soft uuid ref; no FK; no CHECK) — 0 rows
  + 4 indexes: idx_alias_alias_text, idx_alias_target_unit_id, idx_alias_alias_kind, idx_alias_validity_window
  + PK index canonical_address_alias_pkey (auto)
COMMENTs: 6 (2 tac cols, 2 sandbox cols, 1 table + 2 alias cols)
unchanged: public.tac_logical_unit.canonical_address (text NOT NULL, UNIQUE constraint intact);
           all 5 v0.1 cutter_governance tables (present, 0 rows, unchanged)

§11 — Non-scope confirmation (NOT performed)

manifest_envelope created ......................... NO
manifest_unit_block created ....................... NO
review_decision created ........................... NO
identity_profile cleanup .......................... NO
alias rows inserted ............................... NO (canonical_address_alias created EMPTY, 0 rows)
production CUT run ................................ NO
production VERIFY run ............................. NO
Qdrant / vector / Agent-Data mutation ............. NO (no vector op issued)
app code deploy (nuxt/directus/agent-data) ........ NO (no container redeploy/restart)
NOT NULL promotion on authority ................... NO (Phase β)
CHECK constraint on authority ..................... NO (GPT Q3)
cross-schema FK ................................... NO (GPT Q2)
Directus collection-metadata registration ......... NO (out of Phase α)
SQL outside approved C-01..C-08 ................... NONE (only read-only rehearsal of preflight/assumptions pre-exec; no mutation)
scope self-expansion .............................. NONE

§12 — Rollback status

c09_rollback_executed: FALSE
reason: C-08 verification = 17/17 PASS; no rollback trigger condition (T-1..T-9) met.
in_transaction_failure: none (C-07 psql exit 0; COMMIT reached).
note: had C-08 failed, the driver would have STOPPED without auto-rollback,
      preserving evidence for an explicit C-09 decision (rollback SQL not improvised;
      it would have used rollback-draft r2 §3 verbatim). Not invoked.

§13 — Final posture

production CUT/VERIFY run: FALSE
Qdrant/vector touched: FALSE
deploy performed: FALSE
self_advance_to_v0.2_P0-2: PROHIBITED
manifest_design_started: FALSE
further_migration_run: FALSE
next_gate: GPT review of THIS execution report

GPT review of this Phase α production execution report. Upon GPT ratification, the recommended next milestone is v0.2 P0-2 scoping (manifest_envelope / manifest_unit_block / review_decision family) under a fresh design → dry-run → command-review → execution chain. No work on P0-2 / manifest design / any further migration is performed in this session — execution stops here and awaits GPT review.


§15 — Cross-references

command_review_package: knowledge/dev/laws/dieu44-trien-khai/v0.2-execution/dot-iu-cutter-v0.2-phase-alpha-production-command-review-package-2026-05-16.md
command_review_gpt:     knowledge/dev/laws/dieu44-trien-khai/reviews/dot-iu-cutter-v0.2-phase-alpha-production-command-review-gpt-review-2026-05-16.md
dry_run_gpt_review:     knowledge/dev/laws/dieu44-trien-khai/reviews/dot-iu-cutter-v0.2-phase-alpha-dry-run-gpt-review-2026-05-16.md
dry_run_verif_results:  knowledge/dev/laws/dieu44-trien-khai/v0.2-dry-run/dot-iu-cutter-v0.2-phase-alpha-dry-run-verification-results-2026-05-15.md
ddl_draft_r2:           knowledge/dev/laws/dieu44-trien-khai/v0.2-ddl-authoring/dot-iu-cutter-v0.2-phase-alpha-ddl-draft-2026-05-15.sql.md
verification_plan_r2:   knowledge/dev/laws/dieu44-trien-khai/v0.2-ddl-authoring/dot-iu-cutter-v0.2-phase-alpha-ddl-verification-plan-2026-05-15.md
rollback_draft_r2:      knowledge/dev/laws/dieu44-trien-khai/v0.2-ddl-authoring/dot-iu-cutter-v0.2-phase-alpha-rollback-draft-2026-05-15.md
artefact_dir (VPS):     /opt/incomex/backups/dieu44_phase_alpha_prod_20260516T022657Z/
frozen_r2_sql (VPS):    /opt/incomex/backups/dieu44_phase_alpha_2026-05-16/sql/dot-iu-cutter-v0.2-phase-alpha-r2.sql (sha 65533e05…893fe3)
exec_kit (VPS):         /opt/incomex/backups/_phase_alpha_prod_exec_kit/ (driver+SQL; sha-stamped)

End of Phase α production execution report — execution_status: success. STOP; await GPT review.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.2-execution/dot-iu-cutter-v0.2-phase-alpha-production-execution-report-2026-05-16.md