50 -- Session-ledger append (GA-R4 rule 1: 15-LINE HARD CAP)
Append at the ledger TAIL as a new ## SESSION CLOSE ... block. Do NOT touch the machine-derived fence (<!-- SECTION: machine-derived ... --> to <!-- END: machine-derived -->) -- owned by ledger-scan, never hand-edited. The full session body goes to docs/archive/ in the same close commit.
Re-count before committing. The block between the markers is 15 lines.
--- BEGIN 15-line block ---
SESSION CLOSE 2026-07-25 -- NetBox->deploy coupling scoped in Chat (bounded, GA-R4)
- D-NNN PROPOSED [ARCH]: NetBox-coupled per-DC render pipeline, option (C) recommended; revised against decision-recon-20260725 -- gap is SUB-PREFIX (D-134 bands + 33 VIP addresses), apex writes are IN scope (DOCFIX-195), VLAN/space/fabric stays MAAS-sourced (D-133), and extending sandbox-fidelity-check.py sequences FIRST. Non-gating for dc1.
- 3 rulings recorded (GA-R5, exact utterances): family dual-stack-where-v4-required DC0+DC1; keystone PO: per-unit VERIFY-LIVE after scale-up; per-DC shape symmetric (base VIP-free, dc0 VIPs extract to a dc0 overlay).
- DOCFIX-NNN (A) dual-VIP decision is D-020 not D-036 -- now SIX live sites, two created by the recon itself; (B) buildout-scope s5 demoted to a D-111 pointer; (C) D-134's superseded band table needs an in-place marker (it misled this seat).
- Found: VIP_COUNT_EXPECT=11 (lib-net:59) is a HARD fail gate in pre-flight-checks :99-102 -- must go to 12 with the vault VIP. Vault .61 is band-legal per D-134 amended.
- PINNED: operating-model planning session; SpryGit dev-handover doc (Chat next).
- Chat-side skill copy confirmed STALE vs repo (245 vs 130 lines); operator to upload. --- END 15-line block ---