You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove legacy ReScript host; Deno + cartridges is the runtime surface
The repo began as ReScript Evangeliser. The engine has been re-pointed to
the correspondence model (Idris2 ABI + Zig FFI + AffineScript host binding)
with a Deno + cartridge-data runtime surface, so the legacy ReScript host —
flagged by the governance anti-pattern check — is now removed.
Removed:
- All ReScript host sources: src/*.res, src/*.resi (Types, Glyphs, Narrative,
Patterns, Scanner, Analyser, Output, Cli) and the six test/*_test.res suites
- rescript.json, scripts/rescript-build.sh, and the ReScript Deno tasks/imports
in deno.json (plus nodeModulesDir)
- Dead .res/.resi entries in .gitignore / .editorconfig / .gitattributes
- deno.lock from the index (it is .gitignored; regenerated locally)
Replaced (Deno-only, no ReScript):
- bin/evangeliser.js — offline CLI reading the cartridges (--kind / --find / --json)
- test/run_all.js — cartridge invariant tests mirroring the Idris2 ABI
(false-friend signature, residue direction, all six kinds) — 59 checks
- Justfile build/watch/clean/install/test/stats/validate-structure recipes
- deno.json tasks repointed (build = validate cartridges; gui; test)
Docs/manifests now state the host is removed while KEEPING ReScript as a
legacy *target* language in correspondence content (the vanished-`return`
example, the cartridge target, the Form examples): README, EXPLAINME,
ROADMAP, CLAUDE.md, .claude/CLAUDE.md, TOPOLOGY, TEST-NEEDS, Mustfile.epx,
config.ncl, CHANGELOG, and .machine_readable/*.
Verified locally with Deno 2.8.3: deno fmt --check, deno lint, deno task test
(59/59), deno task build/validate (1/1 cartridges), CLI + GUI live probe all
green. Licence files and SPDX headers left untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A1BaAhqxUjkgVb1yg1sZap
Copy file name to clipboardExpand all lines: .claude/CLAUDE.md
+15-13Lines changed: 15 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
-**Model:** Concept / Form / Transition; six `CorrespondenceKind`s (cognate / false-friend / antonym / alien-realization / novel / vanished) as graded Echo fibres; classification runs per stratum. Carrier = Dyadic relation + Echo loss-with-residue (`proven-tests-and-benches` + `echo-types`).
9
9
-**Division of labour:** we build the engine + interface + vocabulary; the community authors per-language **cartridges** (`standards/cartridges/`).
10
10
11
-
Host: **ReScript today** (legacy host, being migrated; banned in *new* code per estate policy → AffineScript `.affine`).**AffineScript** is the future host and a first-class target (Zig FFI + Idris2 ABI seams).
11
+
Host: **ReScript host removed** (2026-06) — ReScript remains only as a legacy *target* language in correspondence content (cartridges/examples), never host code. The current runtime surface is **Deno + cartridge data**;**AffineScript** is the future host and a first-class target (Zig FFI + Idris2 ABI seams).
12
12
13
13
When working here: classify-don't-translate; keep the no-shame voice; lead with the correspondence model (AffineScript is one first-class target/host, not the sole pitch); author-now / verify-in-CI when the toolchain is absent; **MPL-2.0 SPDX on new files, never relicense or sweep SPDX (licence-label drift is FLAG-ONLY to the owner)**.
14
14
@@ -19,7 +19,7 @@ When working here: classify-don't-translate; keep the no-shame voice; lead with
|**Julia**| Batch scripts, data processing | Per RSR |
@@ -39,13 +39,13 @@ When working here: classify-don't-translate; keep the no-shame voice; lead with
39
39
40
40
| Banned | Replacement |
41
41
|--------|-------------|
42
-
| TypeScript | AffineScript (preferred) or ReScript |
42
+
| TypeScript | AffineScript |
43
43
| Node.js | Deno |
44
44
| npm | Deno |
45
45
| Bun | Deno |
46
46
| pnpm/yarn | Deno |
47
47
| Go | Rust or Zig |
48
-
| Python | Julia/Rust/ReScript/AffineScript |
48
+
| Python | Julia/Rust/AffineScript |
49
49
| Java/Kotlin | Rust/Tauri/Dioxus |
50
50
| Swift | Tauri/Dioxus |
51
51
| React Native | Tauri/Dioxus |
@@ -56,40 +56,42 @@ When working here: classify-don't-translate; keep the no-shame voice; lead with
56
56
57
57
**No exceptions for Kotlin/Swift** - use Rust-first approach:
58
58
59
-
1.**Tauri 2.0+** - Web UI (ReScript/AffineScript) + Rust backend, MIT/Apache-2.0
59
+
1.**Tauri 2.0+** - Web UI (AffineScript) + Rust backend, MIT/Apache-2.0
60
60
2.**Dioxus** - Pure Rust native UI, MIT/Apache-2.0
61
61
62
62
Both are FOSS with independent governance (no Big Tech).
63
63
64
64
### Enforcement Rules
65
65
66
-
1.**No new TypeScript files** - Convert existing TS to AffineScript or ReScript
66
+
1.**No new TypeScript files** - Convert existing TS to AffineScript
67
67
2.**No package.json for runtime deps** - Use deno.json imports
68
68
3.**No node_modules in production** - Deno caches deps automatically
69
69
4.**No Go code** - Use Rust or Zig instead
70
-
5.**No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript/AffineScript for apps
70
+
5.**No Python anywhere** - Use Julia for data/batch, Rust for systems, AffineScript for apps
71
71
6.**No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus
72
72
7.**No V outside the V ecosystem** - Use Zig
73
73
74
74
### JavaScript Exemptions
75
75
76
-
JavaScript is allowed only when it is generated ReScript output, Deno/browser runtime glue, or a launcher bridge that cannot currently be written in AffineScript without losing operability.
76
+
JavaScript is allowed only when it is Deno/browser runtime glue or a launcher bridge that cannot currently be written in AffineScript without losing operability. (The ReScript host has been removed, so there is no longer any generated-ReScript-output JS.)
77
77
78
78
| Path | Files | Rationale | Unblock condition |
79
79
|------|-------|-----------|-------------------|
80
-
|`bin/evangeliser.js`| 1 | Deno CLI shim importing compiled ReScript output| Replace when AffineScript host CLI is runnable directly |
81
-
|`gui/server.js`| 1 | Local Deno HTTP bridge for the AffineScript GUI contract and compiled ReScript analyser| Replace when AffineScript-to-Deno/webview bridge is available |
80
+
|`bin/evangeliser.js`| 1 | Deno CLI reading correspondence cartridges (offline fallback)| Replace when AffineScript host CLI is runnable directly |
81
+
|`gui/server.js`| 1 | Local Deno HTTP bridge serving the workspace + cartridge API| Replace when AffineScript-to-Deno/webview bridge is available |
82
82
|`gui/app.js`| 1 | Browser-side event/render bridge for the GUI shell | Replace when AffineScript DOM/TEA bridge can drive this UI directly |
83
+
|`scripts/validate-cartridges.js`| 1 | Deno cartridge-schema validator (ajv) | Replace when AffineScript can host the validator |
84
+
|`test/run_all.js`| 1 | Deno cartridge invariant tests | Replace when AffineScript test runner is runnable directly |
83
85
84
86
### TypeScript Exemptions
85
87
86
88
| Path | Files | Rationale | Unblock condition |
87
89
|------|-------|-----------|-------------------|
88
-
|`node_modules/`|generated|Deno-managed npm compatibility cache for ReScript tooling | Do not commit; local cache only|
90
+
|_(none)_|—|No TypeScript in the repo. The former `node_modules/` ReScript-tooling cache is obsolete now the ReScript host is removed. | —|
89
91
90
92
### BEAM / Elixir Roles
91
93
92
-
Elixir is a support-role language for BEAM supervision of automation and fleet orchestration. It is not a target language in this repo and must not displace the ReScript host or AffineScript flagship path.
94
+
Elixir is a support-role language for BEAM supervision of automation and fleet orchestration. It is not a target language in this repo and must not displace the AffineScript host path.
Copy file name to clipboardExpand all lines: .machine_readable/META.a2ml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@
10
10
(adr-1 "Classify, don't translate — the engine names the kind of cross-language correspondence (CorrespondenceKind) and its residue; it is not a universal translator and claims no Curry-Howard fidelity")
11
11
(adr-2 "Formal carrier = Dyadic relation + Echo loss-with-residue (proven-tests-and-benches Dyadic.idr + hyperpolymath/echo-types); invariant-path is the governance front-end")
12
12
(adr-3 "Engine vs cartridge — we build the general engine, interface and vocabulary; per-language facts are authored as cartridges (standards/cartridges)")
13
-
(adr-4 "Host moves ReScript -> AffineScript with Zig FFI + Idris2 ABI seams; ReScript banned in new code per estate policy")
13
+
(adr-4 "Host moves ReScript -> AffineScript with Zig FFI + Idris2 ABI seams; the ReScript host has been removed (Deno + cartridges is the interim surface), ReScript retained only as a legacy target language")
14
14
(adr-5 "The engine emits into PanLL (octads -> VeriSimDB -> panels); it is not itself the IDE")
15
15
(adr-6 "Knot-theory framing is an aspirational lens, not a literal computation — documented honestly"))
0 commit comments