feat/sec-kn-p6-rotate #2 / 2
aaronrene · 39 days ago · Aug 1, 2026 · Diff

SEC-KN-P6-ROTATE-a: freeze one signing domain + dual-secret runbook

Thinking freeze CLEARED (ok review --freeze pass, sha256:958c8add…). D1: keep one JWT signing domain (gateway+bridge+MCP); reject naive MCP split (README post-deploy #3 + cross-host agent JWTs). D2: deploy current main to EC2 before any SESSION_SECRET rotation — SEC-KN-3 is on Muse/main (stale "not merged" corrected); EC2 is pre-current-main (agent_access discard 401 on gateway vs 200 on MCP). Dual-secret SESSION_SECRET_PREVIOUS cutover with G10 full jwt.verify wire-up and 24h drain floor.

No T1–T4 (no deploy, no env/secret flip). Governance sync SD-17.

sha256:1e8be82efeb8655d4a61875feef7501383ae52505de8473aadf769ba75116cbb sha
+59 ~40 −4 symbols
sha256:97f9ad171781cedf573b74d33bfa36888cd1300ade39223d37819deb90808bb0 snapshot
+59
symbols added
~40
symbols modified
−4
symbols removed
0
dead code introduced
Semantic Changes 103 symbols
~ docs/SEC-KN-P6-ROTATE-FREEZE.md .md 49 symbols added
+ SEC-KN-P6-ROTATE — frozen spec: JWT signing-domain decision + dual-secret rotation section SEC-KN-P6-ROTATE — frozen spec: JWT signing-domain decision + dual-secret rotation L1–375
+ Plain-language summary section 1. Plain-language summary L78–102
+ Technical summary section Technical summary L89–102
+ Residual risks (explicitly accepted) section 10. Residual risks (explicitly accepted) L318–330
+ table section table L320–327
+ Non-goals section 11. Non-goals L330–341
+ Definition of Done (phase) section 12. Definition of Done (phase) L341–360
+ 12a Thinking (this step) — DONE when section 12a Thinking (this step) — DONE when L343–350
+ 12b Operator + Auto (next) — DONE when section 12b Operator + Auto (next) — DONE when L350–360
+ Paste-ready ROTATE-b prompt (after freeze pass) section 13. Paste-ready ROTATE-b prompt (after freeze pass) L360–375
+ code[text] variable variable code[text] L362–375
+ Ground truth (file+line — read this session) section 2. Ground truth (file+line — read this session) L102–133
+ 1 Live probes this Thinking session (2026-08-01) section 2.1 Live probes this Thinking session (2026-08-01) L118–133
+ table section table L120–126
+ table section table L104–117
+ Decision D1 — one signing domain (not a naive split) section 3. Decision D1 — one signing domain (not a naive split) L133–158
+ D1 (selected): ONE signing domain section D1 (selected): ONE signing domain L135–145
+ table section table L139–144
+ D1-reject: split MCP host onto a different secret section D1-reject: split MCP host onto a different secret L145–158
+ table section table L147–153
+ Decision D2 — remediation order (deploy before rotate) section 4. Decision D2 — remediation order (deploy before rotate) L158–178
+ code[text] variable variable code[text] L160–168
+ table section table L169–173
+ R0 / R2 probe contract (governed — Operator + Auto) section 5. R0 / R2 probe contract (governed — Operator + Auto) L178–207
+ 1 Preferred non-destructive RBAC probe section 5.1 Preferred non-destructive RBAC probe L180–197
+ table section table L188–192
+ 2 Optional elevation confirmation (operator-only) section 5.2 Optional elevation confirmation (operator-only) L197–201
+ 3 Filesystem SHA probe (operator SSH — alternative R0) section 5.3 Filesystem SHA probe (operator SSH — alternative R0) L201–207
+ Dual-secret zero-downtime rotation runbook (Tier 3) section 6. Dual-secret zero-downtime rotation runbook (Tier 3) L207–277
+ 1 Env contract (frozen names) section 6.1 Env contract (frozen names) L209–218
+ table section table L211–215
+ 2 Code prerequisite (R3 — Auto, before env flip) section 6.2 Code prerequisite (R3 — Auto, before env flip) L218–251
+ code[text] variable variable code[text] L222–228
+ table section table L231–240
+ 3 Cutover phases (operator) section 6.3 Cutover phases (operator) L251–263
+ table section table L253–260
+ 4 Bridge GitHub-token ciphertext section 6.4 Bridge GitHub-token ciphertext L263–269
+ 5 Secret generation section 6.5 Secret generation L269–277
+ Interfaces Auto may implement (ROTATE-b code slice) section 7. Interfaces Auto may implement (ROTATE-b code slice) L277–291
+ table section table L279–286
+ Test matrix (seven tiers — ROTATE-b) section 8. Test matrix (seven tiers — ROTATE-b) L291–305
+ table section table L293–302
+ Tier-3 gates (hard stops) section 9. Tier-3 gates (hard stops) L305–318
+ table section table L307–313
+ Freeze-contract declaration section Freeze-contract declaration L12–61
+ code[yaml] variable variable code[yaml] L14–60
+ P6-R0 — Citation readiness section P6-R0 — Citation readiness L71–78
+ Review record section Review record L61–71
+ table section table L63–68
+ EC2 MCP host runs pre-current-main code (source SEC-KN-3 is on main) section EC2 MCP host runs pre-current-main code (source SEC-KN-3 is on main) L11–38
+ Board correction section Board correction L13–19
+ Frozen consequence section Frozen consequence L33–38
+ Live probe (same agent_access JWT on both hosts) section Live probe (same agent_access JWT on both hosts) L19–33
+ table section table L21–27
~ docs/OVERSEER-HANDOVER.md .md 5 symbols added, 4 symbols removed, 35 symbols modified
NEXT SESSION — SEC-KN-P6-ROTATE freeze (P6 secret share VERIFIED-SHARED) section NEXT SESSION — SEC-KN-P6-ROTATE freeze (P6 secret share VERIFIED-SHARED) L21–368
After this (queued order) section After this (queued order) L66–72
THE ONE NEXT STEP — freeze the SESSION_SECRET rotate/split — Model: Thinking section THE ONE NEXT STEP — freeze the SESSION_SECRET rotate/split — Model: Thinking L46–66
code[text] variable variable code[text] L48–65
+ NEXT SESSION — SEC-KN-P6-ROTATE-b (deploy EC2 → dual-secret rotation) section NEXT SESSION — SEC-KN-P6-ROTATE-b (deploy EC2 → dual-secret rotation) L21–365
+ After this (queued order) section After this (queued order) L55–60
+ THE ONE NEXT STEP — execute the frozen P6 rotate runbook — Model: Operator + Auto section THE ONE NEXT STEP — execute the frozen P6 rotate runbook — Model: Operator + Auto L39–55
+ code[text] variable variable code[text] L41–54
+ This session — SEC-KN-P6-ROTATE-a DONE (freeze pass, 2026-08-01) section This session — SEC-KN-P6-ROTATE-a DONE (freeze pass, 2026-08-01) L60–69
~ table
~ table

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:1e8be82efeb8655d4a61875feef7501383ae52505de8473aadf769ba75116cbb --body "your comment"