KB-19EB
05 — Dry-run command plan (prepared, NOT run)
3 min read Revision 1
c1staging-litedry-run-planP1-P3-P4-P5-P6-P2not-run2026-06-23
05 — DRY-RUN COMMAND PLAN (PREPARED — NOT RUN YET)
Do NOT run this until Codex review is complete. This is the exact sequence the post-Codex fast dry-run will execute. Run order: P1 → P3 → P4 → P5 → P6 → P2.
BIN=/opt/incomex/staging/c1/bin
# P1 — create disposable sandbox (emits "SANDBOX_READY: c1_staging_<ts>")
"$BIN/dot-staging-sandbox-create" --purpose "C1 fast dry-run" --owner nmhuyen@gmail.com --ttl 24h
SBX=c1_staging_<ts> # capture from P1 output
# P3 — build C1 canonical_operation vocab contract objects + 3 valid rows
"$BIN/dot-c1-staging-vocab-build" --sandbox-id "$SBX"
# P4 — verify required fields / integrity (sets status=validated)
"$BIN/dot-c1-staging-verify" --sandbox-id "$SBX"
# P5 — run >=9 bad cases; each MUST fail closed; assert no residue
"$BIN/dot-c1-staging-bad-input-harness" --sandbox-id "$SBX"
# P6 — digest + evidence bundle + readback + orphan sweep + overall gate
"$BIN/dot-c1-staging-evidence-readback" --sandbox-id "$SBX"
# P2 — retire/drop the sandbox (or let the 24h TTL retire it)
"$BIN/dot-staging-sandbox-drop" --sandbox-id "$SBX"
Expected per-step outcome (the dry-run acceptance criteria)
| step | primitive | expected |
|---|---|---|
| P1 | sandbox-create | new DB c1_staging_<ts> + schema sbx_meta (birth/admission/sandbox_registry/object_registry/dot_manage_ledger); birth+admission+registry readback; orphan check; SANDBOX_READY |
| P3 | vocab-build | c1_operation_group, c1_allowed_mode, canonical_operation + trg_c1_validate + c1_insert_operation + 3 valid rows (C1.READ_BALANCE / C1.WRITE_POSTING / C1.VERIFY_DIGEST); 6 objects registered |
| P4 | verify | all 3 rows → status=validated; zero INVARIANT_FAIL |
| P5 | bad-input-harness | 9 bad cases all rejected with expected signals: B1 C1_REJ_MISSING_CODE, B2 23505, B3 C1_REJ_EMPTY_TITLE, B4 C1_REJ_INVALID_GROUP, B5 C1_REJ_MISSING_REQUIRED_INPUTS, B6 C1_REJ_BAD_EXPECTED_OUTPUTS, B7 C1_REJ_UNKNOWN_MODE, B8 42P01 (isolation), B9 C1_REJ_PRODUCTION_READY_FORBIDDEN; zero RESIDUE_FAIL / BAD_ACCEPTED_FAIL; residue stays 3 rows |
| P6 | evidence-readback | digest {row_count:3, md5:...}; vocab + result readback; zero ORPHAN_OBJECT; gate → C1_STAGING_FAST_DRY_RUN_PASS |
| P2 | sandbox-drop | tombstone captured; RETIRED_OK; DB gone; orphan sweep clean → staging_DBs back to 0 |
Post-dry-run evidence (later, not now)
After a PASS dry-run, canonicalize digest + result tables to KB
reports/c1-staging-lite-admission-ready-for-codex/run-<ts>/ and re-confirm official runtime
before==after. None of this happens in this macro.