S4 DOCS-ONLY SUCCESSOR — READY FOR DOYLE FF Commit: 35d6f7a38f2189455f1a9e1a85a86b1e4bc0481a Branch: docs/304-release-note-s4 Parent: 6c89e8f7545db54772ea5686b4d59718573d1f08 Exactly one commit; UNPUSHED. Raw body ends with Co-authored by: todlando. Change: approved end-user bootstrap text verbatim, plus its generated docs-site counterpart. Improved firewall setup for `spt serve lan --bootstrap` on Windows, including hosts with many firewall rules. If verification fails after rules are written, the diagnostic states that they may already be present. Shape gate: git diff-tree and full recursive git ls-tree comparisons against S3 show exactly two changed blobs: CHANGELOG.md and docs-site/src/changelog.md. All other tree entries, including every Rust source and evidence document, are identical. diff-tree-S3-S4.txt, ls-tree-S3.txt, ls-tree-S4.txt and shape-receipt.json preserve the proof. Native Linux gates in own S3-based worktree and cold target: - cargo run -p xtask -- gen: exit 0 (established generator; source-root matched). - cargo run -p xtask -- check: exit 0. - traceable-reqs check --json: exit 0; 918/918 complete, zero findings. The two committed source files byte-match the files gated on Linux. All 21 transferred execution-proof files hash-matched; every native producer log matched its receipt. No rustfmt invocation, Windows producers, assembly edits, push, or merge. Old warm S3 tree/target untouched. #308 remains separate, unpushed, and excluded. Pool released, exit 0. Final census 2026-09-15T08:01:14.492134+00:00: active=0, own survivors=0. Final free 36600225792 bytes; minimum phase sample 36603219968; floor 34359738368. Local proof: .spt/preserved/304-handoff/s4-release-note/ Linux proof: /home/reavus/projects/spt-core/spt-core/.spt/preserved/304-handoff/s4-release-note/ Authority: doyle RSMJWWO5. Doyle owns ff of asm/304-v3 and deployah handoff.