Contributions are most useful when they solve one coherent concern and make the relevant contract easier to verify. Begin by reproducing the current behavior from source, tests, or workflow logs; then change the smallest owning layer.
Prepare the repository
- Use Node.js 20 and the committed npm lockfile.
- Use the Rust toolchain selected by the repository.
- On Windows, use the MSVC Rust host and the required Visual Studio build tools.
- Install the platform dependencies required by Tauri before treating a native build failure as a source regression.
The root contributing guide on GitHub remains the detailed toolchain and command reference.
Work by contract
- Identify the user-visible or CI-visible failure.
- Locate the type, adapter, command, crate, or workflow that owns it.
- Add or update the closest regression test.
- Keep generated artifacts with the change that owns them.
- Run focused checks, then the broader owning gate.
- Review the final diff for unrelated files and secret material.
For protocol work, confirm all four layers that matter: saved type, frontend session route, registered backend commands, and executable tests. For documentation, distinguish source-backed capability from scaffolding and keep navigation links within the checked Pages routes.
Common commands
npm ci
npx.cmd tsc --noEmit --pretty false
npm run lint
npm run test:coverage
npm run format
node scripts/ci/check-docs-links.mjs
git diff --check
Native changes need the relevant Cargo checks described in Testing. Environment-specific E2E should use the declared tier rather than being added casually to the universal PR gate.
Pull requests and handoff
- Explain the behavior change and its boundary, not just the files edited.
- List exact validation commands and results.
- Call out checks that could not run and the missing environment.
- Include screenshots only when they add UI evidence, and inspect them for sensitive data first.
- Keep unrelated worktree changes out of the commit.
Use Architecture for cross-boundary placement, Security for secret-bearing features, and Testing for gate selection.