Skip to content

Development ​

Environment and setup ​

Use Node.js 24 (see .nvmrc) and npm:

sh
nvm use
npm ci

Quality checks ​

sh
npm run build
npm run typecheck
npm run lint
npm test
npm audit --audit-level=high
npm run docs:build

npm run package:smoke builds a tarball, installs it under a temporary prefix, and checks the installed executable, JSON output, MCP handshake, tool list, structured analysis, and path boundary. npm run benchmark creates a synthetic TypeScript fixture and reports duration, file/diagnostic counts, and process RSS measurements. On Node.js 24.21.0/macOS arm64, the initial 250-source-file run scanned 253 total files in 669.76 ms with 0 diagnostics and an observed RSS increase of 209.3 MiB. Subsequent runs scanned the same 253 files in 661.57–668.89 ms with 0 diagnostics and RSS increases of 208.4–208.7 MiB. The small single-run timing variation is not evidence of a meaningful speed improvement; the scanner change targets bounded traversal and directory-memory growth. Treat these single-machine measurements as indicative, not a performance guarantee.

CI ​

.github/workflows/ci.yml runs Node.js 24 validation on GitHub-hosted Ubuntu, Windows, and macOS for pushes to main, pull requests targeting main, and manual dispatch. Local checks here only verify the current host; review Actions results before claiming other OSes passed.

Design constraints ​

  • Preserve the version 0.3.0 CLI and JSON result schema.
  • Keep MCP stdio output free of logs and banners.
  • Do not execute analyzed code or send project contents over the network.
  • Respect ignore patterns, canonical roots, and compiler file-access restrictions.
  • Add fixture-backed regression tests for behavior changes.