@AGENTS.md
- Node.js >=20, pure ESM (
"type": "module"), zero runtime dependencies. - Linter/formatter: Biome 2.5.2 (dev dependency).
- Types: TypeScript via JSDoc annotations — no
.tsfiles, checked bytsc.
- Install:
npm ci - Test:
npm test(node:test, 600+ tests) - Lint + format:
npx biome check(ornpm run check) - Typecheck:
npm run typecheck - Build pages:
npm run pages:build
- Zero runtime dependencies — CI enforces this. Everything uses Node.js built-ins.
- ESM only — use
import, neverrequire. - Match existing patterns: dynamic
await import()for optional modules, brand tokens fromsrc/brand.js(never hardcode "Forge"/"forge"),BRAND.rootfor package root paths. - Run
npm test && npx biome check && npm run typecheck && node src/cli.js docs checkbefore committing — the docs check fails CI when commands/env vars/MCP tools/CHANGELOG drift from the code, so update docs IN THE SAME CHANGE, not later. - Version lives in
package.json—scripts/bump.mjskeeps all manifests in sync.