- Run
pnpm installto install dependencies and set up Git hooks via Husky - Create a feature branch from
main - Make your changes with conventional commits
- Push and create a Pull Request
- CI runs tests, linting, and type checking
- After approval, rebase and merge to
main - Semantic Release automatically creates a new version
Use conventional commits for automatic versioning:
feat:- New feature (minor version)fix:- Bug fix (patch version)feat!:orBREAKING CHANGE:- Breaking change (major version)docs:,chore:,test:- No version bump
This project relies on Husky for Git hooks. Husky is installed as a dev dependency, so the hooks have to be configured locally:
pnpm install(ornpm install) runs thepreparelifecycle script, which invokes Husky and writes the hooks into.git/hooks.- The
preparescript also runs automatically beforepnpm publish,pnpm pack, and when installing the project from a Git URL. This ensures the hooks are present for contributors and before release builds are created. - Unlike
postinstall,prepareis skipped for consumers installing the published package from the npm registry. That keeps end users from needing Husky (or other dev tooling) in their production environments.
All code must pass:
- TypeScript type checking
- Biome linting and formatting
- Test coverage requirements
- Pre-commit hooks
- Use descriptive titles and descriptions
- Keep changes focused and atomic
- Ensure all CI checks pass
- Request review from maintainers
- Rebase before merging to maintain linear history