-
-
Notifications
You must be signed in to change notification settings - Fork 0
policy: Bun is tier 1, Deno is being removed — correct local CLAUDE.md #660
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
7ec7140
cf1198e
4dcb1e9
b550ecf
503a893
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,13 +20,13 @@ The following files in `.machine_readable/` contain structured project metadata: | |
| | Language/Tool | Use Case | Notes | | ||
| |---------------|----------|-------| | ||
| | **ReScript** | Primary application code | Compiles to JS, type-safe | | ||
| | **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 | | ||
| | **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI | | ||
| | **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like | | ||
| | **Gleam** | Backend services | Runs on BEAM or compiles to JS | | ||
| | **Bash/POSIX Shell** | Scripts, automation | Keep minimal | | ||
| | **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs | | ||
| | **JavaScript** | Only where AffineScript cannot | MCP protocol glue, Bun APIs | | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 MEDIUM RISK This reference to AffineScript contradicts the primary language definition (line 22) and the TypeScript replacement entry (line 40), which both still specify ReScript. Update all references to ensure the AI agent receives consistent instructions. |
||
| | **Nickel** | Configuration language | For complex configs | | ||
| | **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm | | ||
| | **Julia** | Batch scripts, data processing | Per RSR | | ||
|
|
@@ -38,10 +38,10 @@ The following files in `.machine_readable/` contain structured project metadata: | |
| | Banned | Replacement | | ||
| |--------|-------------| | ||
| | TypeScript | ReScript | | ||
| | Node.js | Deno | | ||
| | npm | Deno | | ||
| | Bun | Deno | | ||
| | pnpm/yarn | Deno | | ||
| | Deno | Bun | | ||
| | Node.js | Bun | | ||
| | npm | Bun | | ||
| | pnpm/yarn | Bun | | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| | Go | Rust | | ||
| | Python | Julia/Rust/AffineScript | | ||
| | Java/Kotlin | Rust/Tauri/Dioxus | | ||
|
|
@@ -60,9 +60,9 @@ Both are FOSS with independent governance (no Big Tech). | |
|
|
||
| ### Enforcement Rules | ||
|
|
||
| 1. **No new TypeScript files** - Convert existing TS to ReScript | ||
| 2. **No package.json for runtime deps** - Use deno.json imports | ||
| 3. **No node_modules in production** - Deno caches deps automatically | ||
| 1. **No new TypeScript files** - Convert existing TS to AffineScript | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 MEDIUM RISK The PR description specifies Rule 1 should be 'No new ReScript files', but the current implementation keeps it as 'No new TypeScript files'. Additionally, this rule uses the term 'AffineScript' which conflicts with the 'ReScript' designation in the main language table at line 22. |
||
| 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 instead | ||
| 5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript for apps | ||
| 6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus | ||
|
|
@@ -71,7 +71,7 @@ Both are FOSS with independent governance (no Big Tech). | |
|
|
||
| - **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 <tool>` — a bare `bunx <tool>` can fetch an unpinned package and may start Node via its shebang. | ||
|
|
||
| ### Security Requirements | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -21,13 +21,13 @@ in A2ML format (migrated from Guile Scheme on 2026-04-12): | |||
| | Language/Tool | Use Case | Notes | | ||||
| |---------------|----------|-------| | ||||
| | **ReScript** | Primary application code | Compiles to JS, type-safe | | ||||
| | **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 | | ||||
| | **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI | | ||||
| | **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like | | ||||
| | **Gleam** | Backend services | Runs on BEAM or compiles to JS | | ||||
| | **Bash/POSIX Shell** | Scripts, automation | Keep minimal | | ||||
| | **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs | | ||||
| | **JavaScript** | Only where AffineScript cannot | MCP protocol glue, Bun APIs | | ||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 MEDIUM RISK This reference to AffineScript contradicts the primary language definition (line 23) and the TypeScript replacement entry (line 41) in this file. Consistency is required for accurate AI suggestions. |
||||
| | **Nickel** | Configuration language | For complex configs | | ||||
| | **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm | | ||||
| | **Julia** | Batch scripts, data processing | Per RSR | | ||||
|
|
@@ -39,10 +39,11 @@ in A2ML format (migrated from Guile Scheme on 2026-04-12): | |||
| | Banned | Replacement | | ||||
| |--------|-------------| | ||||
| | TypeScript | ReScript | | ||||
| | Node.js | Deno | | ||||
| | npm | Deno | | ||||
| | Deno | Bun | | ||||
| | Node.js | Bun | | ||||
| | npm | Bun | | ||||
| | ~~Bun~~ | — | Bun is TIER 1 as of LANGUAGE-POLICY.adoc §1 (2026-07-29). This row is retired. | | ||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Remove the retired Bun row from the banned table. The table has two columns, but Line 45 has three cells. This triggers MD056 and leaves Proposed fix-| ~~Bun~~ | — | Bun is TIER 1 as of LANGUAGE-POLICY.adoc §1 (2026-07-29). This row is retired. |📝 Committable suggestion
Suggested change
🧰 Tools🪛 markdownlint-cli2 (0.23.2)[warning] 45-45: Table column count (MD056, table-column-count) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||||
| | pnpm/yarn | Deno | | ||||
| | pnpm/yarn | Bun | | ||||
| | Go | Rust | | ||||
| | Python | Julia/Rust/AffineScript | | ||||
| | Java/Kotlin | Rust/Tauri/Dioxus | | ||||
|
|
@@ -61,9 +62,9 @@ Both are FOSS with independent governance (no Big Tech). | |||
|
|
||||
| ### Enforcement Rules | ||||
|
|
||||
| 1. **No new TypeScript files** - Convert existing TS to ReScript | ||||
| 2. **No package.json for runtime deps** - Use deno.json imports | ||||
| 3. **No node_modules in production** - Deno caches deps automatically | ||||
| 1. **No new TypeScript files** - Convert existing TS to AffineScript | ||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ⚪ LOW RISK Nitpick: The enforcement rule references 'AffineScript', while the language table at line 23 still lists 'ReScript'. Use the following prompt to fix: Update the 'ALLOWED Languages & Tools' table in meta-a2ml/.claude/CLAUDE.md to replace 'ReScript' with 'AffineScript'. |
||||
| 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 instead | ||||
| 5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript for apps | ||||
| 6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus | ||||
|
|
@@ -72,7 +73,7 @@ Both are FOSS with independent governance (no Big Tech). | |||
|
|
||||
| - **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 <tool>` — a bare `bunx <tool>` can fetch an unpinned package and may start Node via its shebang. | ||||
|
|
||||
| ### Security Requirements | ||||
|
|
||||
|
|
||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 MEDIUM RISK
This line still lists ReScript as the primary language, which contradicts the 'ReScript purge' described in the PR summary. If the transition is in effect, this should be updated to AffineScript to maintain consistency with the new enforcement rules.