Development setup
Dev commands
Run from the repo root:| Command | Description |
|---|---|
npm run build | Build all packages |
npm run lint:workspaces | Run TypeScript type-check across all packages |
npm run test:run | Run all tests (Vitest) |
npm run check:spec-coverage | Validate OpenSpec traceability coverage |
npm run test:coverage:packages | Run tests with coverage reports |
npm run buildpassesnpm run lint:workspacespassesnpm run test:runpassesnpm run check:spec-coveragepasses
Running tests for a specific package
Repository layout
Branch naming
Create a branch for every change — never commit directly tomain.
| Branch type | Format | Example |
|---|---|---|
| Issue work | {issue}-{description}-{YYYYMMDD} | 42-add-redline-support-20260221 |
| Minor fixes | tweak-{description} | tweak-fix-typo-in-readme |
Commit format
Use Conventional Commits:feat, fix, refactor, test, docs, chore, ci, perf, style
Scope to the affected package:
Fixes: #N (closes) or Ref: #N (related).
Pull request guidelines
- Keep PRs small and focused — one concern per PR
- Include test evidence for behavior changes
- Include screenshots or gifs for any PR that touches visible output (diff rendering, formatting)
- For new capabilities or behavior shifts, include an OpenSpec change
- Before review begins: interactive rebase to clean up history is encouraged
- After review begins: do not force push — reviewers need to see incremental changes
- After review completes: squash merge or rebase to produce a clean history on
main

