|
| 1 | += Ochránce — Re-entry After the svalinn → Ephapax Migration |
| 2 | +:toc: macro |
| 3 | +:sectnums: |
| 4 | + |
| 5 | +// SPDX-License-Identifier: MPL-2.0 |
| 6 | +// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) |
| 7 | + |
| 8 | +This is the *round-trip closure* for the svalinn migration that was disposed from |
| 9 | +the proof campaign (`docs/PROOFS.adoc`, Decision *D3*; outbound charter at |
| 10 | +`svalinn/docs/ephapax-migration/HANDOFF.adoc`). Read it when the migration |
| 11 | +excursion *returns*, before resuming the proof program. It exists so the loop |
| 12 | +"delegate → migrate → come back" closes cleanly even after this thread is gone. |
| 13 | + |
| 14 | +toc::[] |
| 15 | + |
| 16 | +== The loop |
| 17 | + |
| 18 | +---- |
| 19 | +proof thread (here) |
| 20 | + └─ dispose svalinn migration → HANDOFF.adoc → [svalinn + ephapax session] |
| 21 | + runs the spike, then the map, then the port (its own draft PRs) |
| 22 | + ←─ return here → read THIS doc → reconcile → resume PROOFS.adoc |
| 23 | +---- |
| 24 | + |
| 25 | +You are at the *return* step. |
| 26 | + |
| 27 | +== Reachability first (so you don't hit a 404) |
| 28 | + |
| 29 | +The migration's outputs live in the *svalinn* repo, not here. To do the |
| 30 | +reconciliation below you need *either* `hyperpolymath/svalinn` in this session's |
| 31 | +scope, *or* the delegated session to paste you its spike verdict. The proof |
| 32 | +campaign itself only needs `ochrance`. |
| 33 | + |
| 34 | +== Step 1 — Read the spike verdict (the gate) |
| 35 | + |
| 36 | +The migration was *gated* on a readiness spike (can Ephapax host an HTTP gateway |
| 37 | +today?). Its result is the capability matrix in |
| 38 | +`svalinn/docs/ephapax-migration/BLOCKER-LINEAGE.adoc`. Branch on it: |
| 39 | + |
| 40 | +[cols="1,4",options="header"] |
| 41 | +|=== |
| 42 | +| Verdict | What it means / what you do |
| 43 | + |
| 44 | +| *GREEN* — Ephapax viable |
| 45 | +| The migration proceeded. Go to Step 2. |
| 46 | + |
| 47 | +| *RED* — a MUST-have absent, *D3 invalidated* |
| 48 | +| svalinn's language decision is *reopened*. Do *not* resume svalinn proofs. |
| 49 | + Update `PROOFS.adoc` D3 with the new decision (stay ReScript + prove / |
| 50 | + AffineScript / wait on Ephapax), then treat svalinn as a fresh disposed track. |
| 51 | +|=== |
| 52 | + |
| 53 | +== Step 2 — Reconcile (green path) |
| 54 | + |
| 55 | +Fold the migration's results back into the campaign. Checklist: |
| 56 | + |
| 57 | +* [ ] `BLOCKER-LINEAGE.adoc` exists and its ring-0 critical chain was executed. |
| 58 | +* [ ] *Zero* `Obj.magic` in svalinn `src/` (the 20+ casts are gone |
| 59 | + *structurally*, not patched). |
| 60 | +* [ ] JWT/JTI revocation is true-by-construction → svalinn *issue #13* is |
| 61 | + dischargeable: verify and close it. |
| 62 | +* [ ] The *Ephapax* test suite runs *green* in CI (the pre-existing ReScript red |
| 63 | + is gone because the ReScript is gone — not because it was fixed). |
| 64 | +* [ ] svalinn *PR #32* (the AffineScript language-policy PR) was reconciled to |
| 65 | + Ephapax or closed; the `.claude/CLAUDE.md` language table was updated. |
| 66 | +* [ ] `PROOFS.adoc` updated: tick the svalinn disposed track; *promote* its |
| 67 | + post-migration specs (Appendix E of the charter) into the proof program — now |
| 68 | + the language is final, they are provable. |
| 69 | + |
| 70 | +== Step 3 — Resume the proof campaign |
| 71 | + |
| 72 | +Return to `docs/PROOFS.adoc` and continue at the stage you left (Stage 1 on Opus |
| 73 | +if you came straight back). The svalinn specs become a *sibling track* once |
| 74 | +Ephapax is the language; prove them via the route the spike established — |
| 75 | +Ephapax's own linear types, the Idris ABI layer (`svalinn/src/abi/*.idr`), or |
| 76 | +SPARK (`svalinn/docs/cerro-torre-integration.adoc` §6.2). |
| 77 | + |
| 78 | +== Cross-references |
| 79 | + |
| 80 | +* `docs/PROOFS.adoc` — the proof-campaign ledger (Decision D3, disposed tracks). |
| 81 | +* `svalinn/docs/ephapax-migration/HANDOFF.adoc` — the outbound charter. |
| 82 | +* `svalinn/docs/ephapax-migration/BLOCKER-LINEAGE.adoc` — the migration's own |
| 83 | + output (spike verdict + critical chain), produced by the delegated session. |
0 commit comments