New Contributor Guide
May 17, 2026 ยท View on GitHub
Use this guide for your first bilig pull request. The shortest path is a
small docs, example, fixture, or test change with one clear validation command.
Pick A Scoped Task
Start with docs/starter-issues.md. Comment on the issue
before opening a pull request so a maintainer can confirm the scope is still
current.
If this is your first patch to this repository, prefer the
first-timers-only
filter. Those issues are reserved for tasks that should be possible from the
issue body, linked docs, and one focused validation command.
A useful claim comment says:
I can take this.
Plan:
- files I expect to touch:
- validation command:
- question or assumption:
If the issue already has an assignee, ask whether help is still wanted before starting work.
Get Local Feedback Quickly
Use Node 24+, Bun, and pnpm@10.32.1.
pnpm install
pnpm wasm:build
Then run the narrowest check that matches the change:
- docs or examples:
pnpm docs:discovery:check - formula behavior:
pnpm test:correctness:formula - WorkPaper or engine behavior:
pnpm test:correctness:core - import/export behavior:
pnpm test:correctness:corpus - browser UI behavior:
pnpm test:browser
Run pnpm run ci before asking for review when the change touches runtime
behavior, generated artifacts, benchmarks, browser flows, or multiple packages.
First-Time Command Checklist
For a docs-only or example-only starter issue, run the command named in the issue first. That might be a local example command such as:
pnpm --dir examples/headless-workpaper install --ignore-workspace
pnpm --dir examples/headless-workpaper run snapshot-diff
Then run the repo checks that usually cover small documentation and example patches:
pnpm docs:discovery:check
pnpm format:check
pnpm lint
If your example changes the packaged WorkPaper example set, also run:
pnpm workpaper:smoke:external
If the patch changes package behavior, generated files, benchmarks, browser
flows, or more than one package, run the narrower package test named in the
issue and then pnpm run ci before asking for review.
Know Where To Look
- Public headless API:
packages/headless/README.md - Runnable examples:
examples/headless-workpaper/ - Formula fixtures:
packages/excel-fixtures/src/ - Formula runtime checks:
packages/formula/src/__tests__/andpackages/core/src/__tests__/formula-runtime-correctness.test.ts - Import/export checks:
packages/excel-import/src/__tests__/ - Browser workbook shell:
apps/web/andpackages/grid/ - Agent protocol surfaces:
packages/agent-api/anddocs/agent-api.md
Prefer public package exports in examples. Do not import from src/ or dist/
unless the issue is specifically about package internals.
Keep The PR Easy To Merge
- Keep one issue per pull request.
- Add or tighten a focused test before changing behavior.
- Include the exact command output or fixture proof in the PR description.
- Link the issue with
Fixes #...when the PR fully closes it. - Open the pull request on GitHub. Maintainers use Forgejo internally, but first-time contributor review happens on GitHub.
- Open a draft PR early if setup, scope, or expected behavior is unclear.
The best first contribution gives a future user a clearer path to evaluate
@bilig/headless or gives maintainers a small regression proof they can keep in
CI.