KB-3863
FIX7 P0 Implementation Dry-Run Design (2026-06-11)
3 min read Revision 1
tool-kiem-thufix7p0dryrun-designnon-authority2026-06-11
<!-- DOC_STATUS: ACTIVE_NON_AUTHORITY -->
FIX7 P0 — Implementation Dry-Run Design (2026-06-11)
- Authority:
PLANNING_NON_AUTHORITY. Designs a FUTURE dry-run lane. Runs nothing against production now.staging_only=true,production_target=false. - Machine form:
fix7-p0-implementation-dryrun-design-2026-06-11.json(byte-identical to the packet'sdryrun-design.json).
Dry-run steps (staging/temp only)
| id | step | gate | rollback ref |
|---|---|---|---|
| DR-0 | precondition readback (planning_packet_validator.py) |
validator exit 0 | N/A (read-only) |
| DR-1 | seal-vs-bytes recheck: rev3 sha256 == 49c386a9…b734d0 & 38756 B |
exact match else ABORT | N/A (read-only) |
| DR-2 | stage operative blueprint doc in mktemp (sealed digests only) | digest cross-check PASS | RB-2 |
| DR-3 | stage canonicalizer operative-status marker on /tmp copy | body unchanged, P7 verify_pin PASS | RB-3 |
| DR-4 | stage governance addendum + collision scan | 0 collisions; APPLY_NOW=NO | RB-4 |
| DR-5 | reconstruct + fail-closed proof in clean mktemp | RERUN PASS; 0 fail-open | N/A (read-only) |
Every step is read-only or carries a rollback ref (every_command_has_rollback_or_is_readonly=true).
Policies
- No production. Any production surface touched → ABORT (out of dry-run scope).
- No-vector raw evidence: raw dry-run logs stay local + hashed + regenerable; only summaries + hashes enter the vector KB. NVSZ root still owner/operator-pending (
V02-PB-NVSZ-1). - TKT Base Pack: use L0–L3 checks (shasum -c, RERUN reconstruct, fail-closed harness, governance consistency) as the dry-run evidence base; fall back to v0.2-proven base checks if a check is unavailable.
TKT-BASE-GOV-FOLD-1pending does not block dry-run design.
Abort criteria
DR-1 mismatch → TRUE_BLOCKER, no mutation · OPT-4 absent → ABORT before DR-2 · any rollback path unverified before its apply → ABORT that step · any production surface touched → ABORT.
This macro does not run the dry-run. It only designs it. The dry-run itself
requires owner AUTHORIZE_DRYRUN_ONLY (or higher).