Contributing
Development workflow, release checks, and open source project conventions
Local Setup
Requirements:
- Node.js 18 or newer
- pnpm 10 or newer
- tmux 3.0 or newer for manual session smoke tests
Install dependencies from the repo root:
pnpm install --frozen-lockfileMain Commands
Run these from the repository root:
pnpm test
pnpm typecheck
pnpm build
pnpm docs:build
pnpm pack:check
pnpm checkWhat they do:
pnpm testruns the Node CLI test suite (uses--experimental-strip-typeson.tsfiles)pnpm typecheckrunstsc --noEmitto verify types without emitting outputpnpm buildcompiles TypeScript todist/viatscpnpm docs:buildvalidates the docs site production buildpnpm pack:checkverifies the published npm package can be packed cleanlypnpm checkruns the full default pre-push and pre-release check path
npm publish is guarded by prepublishOnly, so publishing runs pnpm check automatically before npm actually publishes the package.
Manual Smoke Tests
If tmux is available locally, run a manual smoke test:
node bin/cli.js init
node bin/cli.js inspect --json
node bin/cli.jsThen in a second shell:
node bin/cli.js status --json
node bin/cli.js stop --jsonCI
GitHub Actions validates:
- the CLI test suite on Node 18, 20, and 22
- the docs production build
- package packing with
npm pack --dry-run
That keeps the release path close to the local pnpm check workflow while still exercising multiple Node versions in CI.
Release Workflow
Before publishing a release:
- Update
CHANGELOG.mdunderUnreleased. - Confirm the version in
package.json. - Run
pnpm check. - Do the manual smoke test if the release includes CLI behavior changes.
- Move
Unreleasednotes into the final version entry. - Tag and publish the release.
The repository root also includes:
CONTRIBUTING.mdfor contributor setupRELEASE.mdfor the release checklistCHANGELOG.mdfor release notesSECURITY.mdfor vulnerability reporting
Pull Request Expectations
- Keep CLI behavior changes covered by tests.
- Update docs when command behavior or output changes.
- Prefer focused pull requests over mixed refactors.
- Run
pnpm checkbefore opening or updating a pull request.