diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 4e63725..a07f26d 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -20,7 +20,7 @@ When working here: classify-don't-translate; keep the no-shame voice; lead with |---------------|----------|-------| | **AffineScript** | Flagship target language; future host | Affine/linear types, borrow checker, QTT, WASM backend | | **ReScript** | Legacy *target* language only (host removed) | Appears in cartridges/examples; not host code | -| **Deno** | Runtime & package management | Replaces Node/npm/bun | +| **Bun** | JS runtime & package management (tier 1) | Default for all new work. Runs compiled ESM/JS directly — no bundler step. Uses an npm-compatible `package.json` plus `bun.lock` — both are expected, not anti-patterns. | | **Rust** | Performance-critical, systems, WASM | Preferred for CLI tools | | **Zig** | FFI, C-ABI bridges, systems | Canonical FFI layer (per `0-AI-MANIFEST.a2ml`) | | **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI | @@ -40,10 +40,10 @@ When working here: classify-don't-translate; keep the no-shame voice; lead with | Banned | Replacement | |--------|-------------| | TypeScript | AffineScript | -| Node.js | Deno | -| npm | Deno | -| Bun | Deno | -| pnpm/yarn | Deno | +| Deno | Bun | +| Node.js | Bun | +| npm | Bun | +| pnpm/yarn | Bun | | Go | Rust or Zig | | Python | Julia/Rust/AffineScript | | Java/Kotlin | Rust/Tauri/Dioxus | @@ -64,8 +64,8 @@ Both are FOSS with independent governance (no Big Tech). ### Enforcement Rules 1. **No new TypeScript files** - Convert existing TS to AffineScript -2. **No package.json for runtime deps** - Use deno.json imports -3. **No node_modules in production** - Deno caches deps automatically +2. **Use `package.json` + `bun.lock` for JS runtime deps** - Bun is npm-compatible; a manifest is REQUIRED +3. **`bun install --production` for production deps** - resolved from `package.json`, pinned via `bun.lock` 4. **No Go code** - Use Rust or Zig instead 5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, AffineScript for apps 6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus @@ -104,7 +104,7 @@ Elixir is a support-role language for BEAM supervision of automation and fleet o - **Primary**: Guix (guix.scm) - **Fallback**: Nix (flake.nix) -- **JS deps**: Deno (deno.json imports) +- **JS deps**: Bun (`package.json` + `bun.lock`). Declare tooling as a devDependency and run `bunx --no-install --bun ` — a bare `bunx ` can fetch an unpinned package and may start Node via its shebang. ### Security Requirements