Opened 2026-08-02 on the operator ruling to fold before exercising: "1 fold first", "3 start at 2", "4 yes, all DC come up with and in their own region".
Every decision ruled since Stage 4 closed (2026-07-27) was retrofitted onto a running build. None of it went back into the runbooks. Measured 2026-08-02:
| Runbook | per-DC region | D-138 client | GUA / v6 | oob | one artifact strategy | egress gate |
|---|---|---|---|---|---|---|
dc-dc-phase2-tofu-dc-substrate |
0 | 0 | 1 | 0 | 0 | 0 |
dc-dc-phase3-maas-enlist-deploy |
0 | 0 | 0 | 0 | 2 | 0 |
dc-dc-phase4-juju-bundle-per-dc |
1 | 0 | 3 | 0 | 5 | 1 |
D-138 and D-139 appear in no runbook at all. Nothing in the chain builds a per-DC MAAS region, a snap proxy, or the GUA carve.
The consequence, stated plainly: running the deployment chain as written today would rebuild the pre-D-132/D-138/D-139 shape -- a DC enrolled in Office1's MAAS region, ULA-addressed, with no snap proxy and the juju client on the wrong host -- and would then fail at exactly the points already fixed by hand. The runbooks are the primary deliverable (MINIMIZE DELTA TO ROOSEVELT); a runbook that has only ever been retrofitted is not a runbook that works.
Class A -- ACTIVELY WRONG. The runbook states something that is no longer true. A session following it does the wrong thing and does not stop. This is worse than an omission and is fixed first.
Class B -- MISSING BUILD STEP. The chain does not build something the ruled design requires. A session following it stops, or silently produces a DC of the wrong shape.
Class C -- MISSING GATE. The step exists but nothing verifies it.
| # | Class | Item | Ruled by | Lands in | Status |
|---|---|---|---|---|---|
| F1 | A | "Both DCs deploy from the Office1 headend by the SAME procedure" (phase4:14, restated :158). D-138 moved every cloud-facing tool INTO the DC. |
D-138 | phase4 header + every run-location callout | DONE 2026-08-02 |
| F2 | B | No runbook builds a per-DC MAAS region. dc0's was a MIGRATION executed by hand; the ruling makes it a BUILD property, so nobody should ever repeat that migration. | D-132 q1 + operator 2026-08-02 ("all DC come up with and in their own region") | phase2 (region VM) + phase3 (enlist against the DC's OWN region) | OPEN |
| F3 | B | No runbook carves GUA IPv6. The apex push, the MAAS /64s and the node statics are all absent. |
D-139 ruling B | phase2 (apex) + phase3 (MAAS subnets, node statics) | OPEN |
| F4 | B | The family matrix (which planes keep IPv4) appears nowhere. | D-139 ruling A + the 2026-08-01 "B plus C" narrowing | phase3 | OPEN |
| F5 | B | The oob plane -- ruled dual-stack, 10.12.40.0/22 dc0 / 10.12.88.0/22 dc1, :f0::/64 v6 -- exists in no runbook and in no MAAS. |
D-139 amendment 2026-08-01 (a)+(b) | phase2 + phase3 | OPEN |
| F6 | B | lb-mgmt has never been carved anywhere, in either family. |
D-139 step 5 | phase3 | OPEN |
| F7 | B | No runbook builds a snap proxy. Its absence is what broke the 2026-07-31 deploy. | D-135 items 2-3 gap | phase3 | OPEN |
| F8 | B | Two artifact strategies branch per DC. The 2026-08-02 amendment converges on the proxy at rebuild, so the chain can carry ONE. | D-135 amendment 2026-08-02 | phase2 + phase3 | OPEN |
| F9 | C | Nothing gates DC egress at build time. A 19-hour outage was invisible to every gate. | this session | phase2 (edge first comes up) -- phase4 Step 3.9 and restart Stage 0 already DONE | PARTIAL |
| F10 | C | Nothing compares D-139's ruled family/GUA tables to the artifact. dc-node-v6-verify asserts NIC-against-MAAS and its own header says explicitly NOT against the ruled table. |
-- | a new gate, or an extension of an existing one | OPEN |
| F12 | A | SKILL.md -- the always-loaded routing layer -- stated "Plane 2 EXECUTES on voffice1" with ZERO mentions of D-138. More dangerous than any runbook instance: every fresh session reads it BEFORE any runbook. |
D-138 | .claude/skills/openstack-cloud-ops/SKILL.md |
DONE 2026-08-02 |
| F11 | B | The edge rebuild path (D-112(c) console bootstrap + D-113(a2) key mint + addressing) is documented across a changelog and a runbook section rather than as one followable procedure. Exercised three times now (dc0 twice, dc1 once). | D-112 / D-113 | phase2 | OPEN |
Each row closes when the runbook change is committed AND the change is exercised by the dc1 Phase-2 rebuild. A row marked DONE on the edit alone is a ruled-but-not-built claim of the exact class this project keeps finding -- the exercise is what proves it.