From 956a2dc287cdecac20fc6150060f4ec7e964a389 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 30 May 2026 14:23:55 +0100 Subject: [PATCH] =?UTF-8?q?docs(claude-md):=20note=20ReScript=E2=86=92Affi?= =?UTF-8?q?neScript=20migration=20trajectory=20(Refs=20#standards/239=20+?= =?UTF-8?q?=20#standards/252)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit panll is ReScript-heavy (TEA in .res, ~7500-line Update.res); the existing rules said "ReScript only" with no acknowledgement of the 2026-05-25 estate language policy. Soften with explicit migration note so future Claude sessions: - know AffineScript is the target for new modules - don't add new .res/.resi outside the existing surface - know the npm:rescript invocation is legacy (Deno-native command at standards#253) Existing ReScript Conventions section preserved (still authoritative for edits to the existing .res surface) but marked "(legacy)". Refs: hyperpolymath/standards#239 Refs: hyperpolymath/standards#252 Refs: hyperpolymath/standards#281 Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/CLAUDE.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 33d1ce06..f14f164e 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -45,7 +45,7 @@ deno task test:coverage ## Architecture -- **TEA (The Elm Architecture)** in ReScript — Model/Msg/Update/View/Subscriptions +- **TEA (The Elm Architecture)** in ReScript (migrating to AffineScript per `hyperpolymath/standards#252`) — Model/Msg/Update/View/Subscriptions - **Gossamer** (Zig + WebKitGTK) backend — migrated from Tauri 2.0 - **Elixir/BEAM** optional middleware (`beam/panll_beam`) - **106 panels** across four panes: Panel-A (Ambient), Panel-L (Logic, role: Symbolic), Panel-N (Neural), Panel-W (World). Panel-L + Panel-N orbit Panel-W in the Binary Star core; Panel-A surrounds as ambient substrate. @@ -71,14 +71,16 @@ deno task test:coverage ## Critical Rules - **NEVER use Tauri** — project migrated to Gossamer. All backend refs use `src-gossamer/` -- **NEVER use TypeScript** — ReScript only -- **NEVER use npm/bun** — Deno only (npm used only for ReScript compiler) +- **NEVER use TypeScript** — current source is ReScript; **new modules MUST be AffineScript** per `hyperpolymath/standards#252` (ReScript→AffineScript estate umbrella). Don't introduce new `.res`/`.resi` files in new feature work. +- **NEVER use npm/bun** — Deno only (npm used only for the legacy ReScript compiler invocation; estate target is `deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0` per `hyperpolymath/standards#253`) - **Panels, not panes** — PanLL uses "panels" terminology - **TEA pattern only** — no MVC, no Redux, no hooks. Model -> Msg -> Update -> View - **All state in Model.model** — no global mutable state - **Anti-Crash validates ALL neural tokens** — no inference bypasses the circuit breaker -## ReScript Conventions +## ReScript Conventions (legacy — apply when touching existing `.res`/`.resi`) + +> New modules should be AffineScript per `hyperpolymath/standards#252`. These conventions remain authoritative for edits to the existing ReScript surface until migration completes. - Use `list{}` for vdom children: `Tea_Html.div(list{}, list{...})` - Use `Events.onClick` / `Events.onInput` for event handlers