d139-step1-apex-push-dc0-20260801.txt ====================================== D-139 execution STEP 1 -- apex CREATE-only push, vr1-dc0. EXECUTED 2026-08-01. Tool: netbox/d139-gua-carve.py --dc vr1-dc0 --commit (exit 0) Apex: office1-netbox http://10.10.1.10:8000 (the WORKING VR1 apex, DOCFIX-195). Host: vcloud. Operator-approved ("Work through the open items in order"). PRE-WRITE, verified immediately before the mutation: apex prefix count 139 dry-run prefix set vs the reviewed capture (docs/audit/d139-carve-dryrun-20260801.txt) IDENTICAL for the 11 originally-reviewed rows the 2 OOB rows are NEW since that review -- added by the 2026-08-01 ruling, covered by harness T07/T08/T12/T17 and mutation-proven (removing them turns T07 + both T08 red). TOOL RESULT: CREATE 13 | EXISTS 3 | RETIRE-REPORT 9; READ-BACK: 13/13 present; errors=0. INDEPENDENT READ-BACK (not the tool's own word -- a separate API query): apex prefix count 152 (139 + 13, exact) GUA rows scoped vr1-dc0 17 (4 pre-existing + 13 new) :20::/60 :20::/64 role=metal-admin :21::/64 role=metal-internal :30::/60 :30::/64 role=data-tenant :40::/60 :40::/64 role=storage :50::/60 :50::/64 role=replication :80::/60 :80::/64 role=lbaas-mgmt :f0::/60 :f0::/64 role=oob <- the 2026-08-01 OOB ruling ULA prefixes still present 9 (the tool has NO delete path) ULA VIP legs still present 26 (nothing orphaned) WHAT THIS DOES NOT DO, stated so no one reads more into it: it writes PREFIXES into the apex only. No MAAS subnet, no node address, no VIP was created, moved or deleted. Steps 2 (MAAS GUA /64s alongside the ULA) and 3 (node v6 re-carve while v4 is still present) remain outstanding, and the ULA retirement is step 6. vr1-dc1 has NOT been pushed -- the two DCs are separately approved.