-
-
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 #336
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
2891c42
5ab24d8
c269463
ae86c52
4ecd7ac
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 | ||||
|---|---|---|---|---|---|---|
|
|
@@ -82,12 +82,12 @@ cargo build -p ambientops-clinician --all-features # Everything (slow) | |||||
| | **D** | Driver/deployment layer | Adapters, execution, IO boundaries | | ||||||
| | **V** | Verification layer | Policy, plan verification, schema conformance | | ||||||
| | **AffineScript** | Primary application code | Compiles to JS, type-safe; AmbientOps primary | | ||||||
| | **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** | Agent/verify boxes only | Isolated repos (`*-agent-rs/`, `*-verify-rs/`) | | ||||||
| | **Elixir** | Observability/event hub only | NEVER source of truth | | ||||||
| | **Gleam** | Backend services | Runs on BEAM or compiles to JS | | ||||||
| | **Bash/POSIX Shell** | Scripts, automation | Keep minimal | | ||||||
| | **JavaScript** | Only where AffineScript cannot | MCP protocol glue, Deno APIs | | ||||||
| | **JavaScript** | Only where AffineScript cannot | MCP protocol glue, Bun APIs | | ||||||
| | **Nickel** | Configuration language | For complex configs | | ||||||
| | **Guile Scheme** | State/meta files | .machine_readable/6a2/STATE.a2ml, .machine_readable/6a2/META.a2ml, .machine_readable/6a2/ECOSYSTEM.a2ml | | ||||||
| | **Julia** | Batch scripts, data processing | Per RSR | | ||||||
|
|
@@ -102,8 +102,10 @@ cargo build -p ambientops-clinician --all-features # Everything (slow) | |||||
| | Banned | Replacement | Reason | | ||||||
| |--------|-------------|--------| | ||||||
| | TypeScript | AffineScript | Type safety without JS baggage | | ||||||
| | Node.js | Deno | Security-first runtime | | ||||||
| | npm/yarn/pnpm/bun | Deno | Deno manages deps | | ||||||
| | ReScript | AffineScript | Type safety without JS baggage | | ||||||
| | Deno | Bun | Being removed per the 2026-08-26 ruling; migrate, or document why not | | ||||||
| | Node.js | Bun | Node-compatible; run the code, drop the runtime | | ||||||
|
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 phrase 'drop the runtime' is ambiguous as Bun is itself a runtime. If this refers to Bun's ability to bundle standalone executables, it should be stated explicitly.
Suggested change
|
||||||
| | npm/yarn/pnpm | Bun | Bun manages deps | | ||||||
|
coderabbitai[bot] marked this conversation as resolved.
|
||||||
| | Go | Rust | Memory safety without GC | | ||||||
| | **Python** | AffineScript/Rust/D/V | **Completely banned** (SaltStack abandoned) | | ||||||
| | Java/Kotlin | Rust/Tauri | No JVM | | ||||||
|
|
@@ -127,8 +129,8 @@ Elixir is allowed **only for observability/event hubs**: | |||||
| ### Enforcement Rules | ||||||
|
|
||||||
| 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 Divergence from description: Rule 1 was not updated to mention ReScript as specified in the PR intent; it remains focused on TypeScript. |
||||||
| 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 --frozen-lockfile` for production deps** - resolved from `package.json` and pinned via `bun.lock`; `--frozen-lockfile` makes a lockfile mismatch a build failure rather than a silent re-resolve | ||||||
| 4. **No Go code** - Use Rust instead | ||||||
| 5. **No Python anywhere** - Completely banned | ||||||
| 6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus | ||||||
|
|
@@ -137,7 +139,7 @@ Elixir is allowed **only for observability/event hubs**: | |||||
|
|
||||||
| - **Primary**: Guix (guix.scm) | ||||||
| - **Fallback**: Guix (flake.guix) | ||||||
| - **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.
⚪ LOW RISK
Nitpick: The repair of 'blanking scars' (restoring 'AffineScript') appears redundant for this file as the old hunk already contained the target text.