Local Workflow
This page covers the day-to-day loop. The contributor handbook explains where the rules live; Testing and Adding a Module cover the code expectations.
Set up
Section titled “Set up”Development uses Node 26.13.0 and pnpm 12.16.1. The published package supports Node 18+; the
engines.node field describes consumers, not the development toolchain.
If you do not use mise, install Node 26.13.0 and pnpm 12.16.1 yourself. The
root workspace includes the documentation site; pnpm install installs both.
The loop
Section titled “The loop”For a docs-only change:
pnpm check is the fast inner loop. The code CI job runs pnpm check, pnpm build, and
pnpm test:coverage; the docs CI job runs pnpm check:docs. Between them, CI covers exactly what
pnpm check:pr covers.
Your first change
Section titled “Your first change”- Find the module and its guide. Read both before editing.
- Add the smallest failing test that describes the behavior.
- Make the change.
- Run the single test, then
pnpm test:coverage. - Run
pnpm check:prorpnpm check:docs. - Format before committing:
pnpm format. The formatter covers TypeScript, JSON, and Markdown.
If the change touches a hot path, run pnpm bench and compare the before and after numbers. Do not
claim a performance win without a benchmark.
Pull requests
Section titled “Pull requests”- Keep one concern per pull request. A focused change is easier to review and revert.
- Use a short imperative subject. The repository history uses prefixes such as
feat:,fix:,docs:, andtest:. - Link the issue for a public API change or a new module.
- Do not edit the package version. Maintainers handle releases.
The pull request template lists the checks. CI runs the code verification suite for source changes
and the documentation suite for documentation changes. Source changes also run the documentation
suite, because guide snippets compile against src and the API reference is generated from it.
| Job | What it runs |
|---|---|
| Code Verification | pnpm check, pnpm build, and pnpm test:coverage. |
| Documentation Verification | pnpm check:docs: formatting, bundle metadata, links, snippets, and the Astro build. |
If a check fails, reproduce it with the matching local command before pushing again.
Troubleshooting
Section titled “Troubleshooting”- Wrong Node or pnpm version. Run
mise installand checknode -vandpnpm -v. The pinned versions are inmise.toml. - Formatting fails on Markdown. Run
pnpm format. Plaindprint fmtonly covers the default configuration and leaves the Markdown config untouched. - The docs server will not start. Stop the existing Astro server or use the port it reports.
- Coverage fails. Open
coverage/index.htmland add a test for the uncovered branch. Do not add/* v8 ignore */. - Type tests fail. Run the single
.test-d.tsfile; the compiler message names the expression that lost its type.
Versioning and releases
Section titled “Versioning and releases”The project is pre-1.0. Maintainers bump versions and publish from a tag; contributors do not edit
package.json version fields. Breaking API changes are allowed when they remove a concrete defect
or materially improve the developer experience, but they need an issue and a migration note.