Contributing
Commit Format
This project uses Conventional Commits.
| Prefix | When to use |
|---|---|
feat | New feature |
fix | Bug fix |
docs | Documentation only |
perf | Performance improvement |
refactor | Code change that is neither a fix nor a feature |
ci | CI/CD configuration |
chore | Tooling, deps, other non-source changes |
Breaking changes: append ! after the prefix (feat!:, fix!:) and add a BREAKING CHANGE: footer in the commit body.
How Releases Work
Releases are automated with release-please.
- Commits to
mainare analysed by release-please - A "Release PR" is opened that bumps
package.json, updatesCHANGELOG.md, and prepares a git tag - Merging the Release PR triggers the publish workflow, which publishes to npm
Do not manually bump version numbers or edit CHANGELOG.md — these are managed by the release pipeline.
Running Tests
bash
pnpm testPre-push hooks run typecheck and the full test suite automatically via lefthook. Do not skip hooks (--no-verify).
Building Docs
bash
pnpm docs:dev # local dev server with hot reload
pnpm docs:build # production build — must pass with zero dead linksOpening a PR
- Target
main - One PR per logical change
- All tests must pass
- Docs must build without errors or dead links
- Follow the commit format above for all commits in the PR