Skip to content

Commit 8442821

Browse files
committed
policy(lang): ban ReScript; lock AffineScript-TEA as UI replacement
- move ReScript from ALLOWED to BANNED (replacement: AffineScript) - update TypeScript replacement ReScript → AffineScript - mark AffineScript as the UI language (OCaml-hosted, typed-wasm / wasm target, Deno runtime) - update Nickel entry: 11+ active .ncl files across configs/playground/contractiles (prior 'scaffold not yet wired' note was wrong — audit confirmed active use) - update Enforcement Rule 1: no new TS or ReScript files Migration note: src/rescript/ retained as-is for now. AffineScript is alpha (effect-handler lowering incomplete) and both AffineScript and Ephapax lack TEA-pattern support and Deno bindings upstream. Actual file migration is gated on upstream readiness; policy lock stands regardless.
1 parent 3b4023a commit 8442821

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

.claude/CLAUDE.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,25 +107,26 @@ package definitions (not metadata files) and must NOT be deleted.
107107
| **Chapel** | Optional parallel proof dispatch | Wired via Cargo `chapel` feature |
108108
| **Guile Scheme** | Guix package definitions (`guix.scm`, `manifests/*.scm`) | `.scm` metadata files are deprecated — see below |
109109
| **Bash/POSIX Shell** | Build scripts, CI glue | Keep minimal |
110-
| **ReScript** | UI components (compiled to JS, served via Deno) | `src/rescript/` |
111-
| **Deno** | Runtime for compiled ReScript UI | Replaces Node/npm/bun |
110+
| **AffineScript** | UI components (TEA architecture, compiled to typed-wasm / wasm, served via Deno) | Replaces ReScript per `docs/ROADMAP.md`; migration in progress at `src/rescript/` |
111+
| **Deno** | Runtime for compiled AffineScript-TEA UI | Replaces Node/npm/bun |
112112
| **JavaScript** | Build tooling only (Tailwind config, test harness) | Not for business logic |
113-
| **OCaml** | AffineScript / Ephapax compiler host (planned) | No files yet — retain pending source-language decision |
114-
| **Nickel** | Configuration language (planned) | `.k9.ncl` scaffold exists but not yet wired |
113+
| **OCaml** | AffineScript compiler host | Decision locked — AffineScript selected for UI |
114+
| **Nickel** | Configuration language | Used across `configs/`, `echidna-playground/contractiles/k9/`, `.machine_readable/`, `echidnabot/config/` (11+ `.ncl` files) |
115115

116116
### BANNED - Do Not Use
117117

118118
| Banned | Replacement |
119119
|--------|-------------|
120-
| TypeScript | ReScript |
120+
| TypeScript | AffineScript |
121+
| ReScript | AffineScript |
121122
| Node.js | Deno |
122123
| npm / Bun / pnpm / yarn | Deno |
123124
| Go | Rust |
124125
| Python | Julia / Rust |
125126

126127
### Enforcement Rules
127128

128-
1. **No new TypeScript files** - Convert existing TS to ReScript
129+
1. **No new TypeScript or ReScript files** - Use AffineScript-TEA; migrate existing `src/rescript/` to AffineScript per `docs/ROADMAP.md`
129130
2. **No package.json for runtime deps** - Use deno.json imports
130131
3. **No node_modules in production** - Deno caches deps automatically
131132
4. **No Go code** - Use Rust instead

0 commit comments

Comments
 (0)