Skip to content

Commit 7dd94fe

Browse files
committed
Add HANDOFF.adoc — orientation for resuming (e.g. in the desktop app)
Short "read me first" for the next session: current state (ReScript host removed; Deno + cartridges runtime; Idris2/Zig/AffineScript spine under src/interface/), how to run, toolchain notes, next steps from the roadmap, the guardrails, and the open owner-only LICENSE SPDX item. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A1BaAhqxUjkgVb1yg1sZap
1 parent bb5c4b7 commit 7dd94fe

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

HANDOFF.adoc

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
// SPDX-License-Identifier: CC-BY-SA-4.0
2+
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell
3+
= Session handoff — read me first
4+
:toc: macro
5+
6+
Quick orientation for the next working session (e.g. resuming in the Claude Code
7+
desktop app). The long-term plan lives in link:ROADMAP.adoc[ROADMAP.adoc]; the
8+
canonical design in link:docs/theory/CORRESPONDENCE-MODEL.adoc[the spec]; the
9+
live state in `.machine_readable/STATE.a2ml`.
10+
11+
== Where things stand (2026-06)
12+
13+
* *Identity:* Duolingo / Rosetta Stone *for programming languages* — a
14+
comprehension + transfer engine that *classifies* cross-language
15+
correspondences. It is *not* an IDE, a linter, a universal translator, or a
16+
shame-the-JS matcher. Classify, don't translate.
17+
* *The legacy ReScript host has been removed* (merged). ReScript survives only
18+
as a legacy _target_ language in the correspondence content (the
19+
vanished-`return` example, the cartridge target, the Form examples).
20+
* *Runtime surface = Deno + cartridge data.* No compile step.
21+
* *Engine spine* (authored; the host application is still to be built):
22+
`src/interface/Abi/` (Idris2 ABI — typechecks), `src/interface/ffi/` (Zig
23+
C-ABI mirror), `src/interface/host/Correspondence.affine` (AffineScript
24+
binding, compiler-gated).
25+
26+
== Run it
27+
28+
[source,bash]
29+
----
30+
just gui # browser multi-pane workspace (primary surface)
31+
just test # cartridge invariant tests (Deno) — 59 checks
32+
just build # validate cartridge data (no compile step)
33+
deno run --allow-read bin/evangeliser.js --kind false-friend # offline CLI
34+
----
35+
36+
== Toolchain
37+
38+
* *Required:* https://deno.land[Deno] (latest stable) — runs everything above.
39+
* *Optional, now locally buildable* (these were "author-now / verify-in-CI" in
40+
the cloud env because it could not fetch them; on a desktop you can actually
41+
build/verify): *Idris2* (`idris2 --typecheck abi.ipkg`), *Zig* (the FFI mirror
42+
under `src/interface/ffi/`).
43+
44+
== Next steps (pick up from ROADMAP M2/M4/M5)
45+
46+
. Port the legacy pattern catalogue into *cartridge facts*
47+
(Concept/Form/Transition + CorrespondenceKind + residue + strata).
48+
. Author a *second language pack* to prove the engine is language-agnostic
49+
(JTV is the canonical alien-realization / novel exemplar).
50+
. Begin the *AffineScript host application* against the Idris2 ABI / Zig FFI
51+
seams (needs the AffineScript compiler).
52+
. Optional cleanup: reframe the old-model contributor prose
53+
(`CONTRIBUTING.md`, `MAINTAINERS.md`, `docs/TPCF.md`, the duplicate
54+
`CHANGELOG.md`) — still carries "JS→ReScript transformation" language.
55+
56+
== Guardrails (non-negotiable)
57+
58+
* *Deno*, not npm/bun. *Justfile*, not Makefile. *Zig* for FFI, *Idris2* for
59+
ABI/proofs.
60+
* Keep the *no-shame* voice: celebrate / minimise / better / safety / example.
61+
* *Never* reintroduce `.res` host code — the host path is AffineScript
62+
(`.affine`).
63+
* *Licence files and SPDX headers are owner-only.* Never relicense or
64+
bulk-sweep SPDX; licence-label drift is FLAG-ONLY to the owner.
65+
66+
== Known open item (owner decision)
67+
68+
The `governance / Licence consistency` check fails because `LICENSE` has no
69+
`SPDX-License-Identifier:` header. This is *pre-existing* and *owner-domain* —
70+
left untouched on purpose. It is entangled with label drift (the `LICENSE` body
71+
is the Palimpsest text; `config.ncl` says `MIT OR Palimpsest-0.8`; the README
72+
says "Palimpsest License (MPL-2.0)"; the manifests say `MPL-2.0`). Resolve only
73+
with an explicit owner decision on the exact identifier.

0 commit comments

Comments
 (0)