Thanks for contributing to Tau.
- Rust stable toolchain (
rustup default stable) cargoavailable on PATH- GitHub issue access for issue/spec/PR linking
- Start from a GitHub issue with milestone + labels.
- Create a branch from
masterusingcodex/issue-<id>-<slug>. - Create or update issue artifacts in
specs/<issue-id>/:spec.md(acceptance criteria + conformance cases)plan.md(approach + risk)tasks.md(ordered RED->GREEN->VERIFY checklist)
- Keep changes scoped to the issue; avoid unrelated edits.
Run these before opening or updating a PR:
cargo fmt --check
cargo clippy -- -D warnings
cargo test -p <crate>
cargo check -qFor docs/scripts-only slices, run the relevant conformance scripts under scripts/dev/.
Use docs/guides/test-coverage-targets.md for crate-specific coverage and
conformance expectations. P0/P1 changes should name the spec id in at least one
targeted test command.
Before each release branch or release candidate:
- Re-read this guide against
.github/pull_request_template.mdandAGENTS.md; update any stale commands, branch names, or spec requirements. - Regenerate crate dependency graph artifacts if workspace crate edges changed.
- Sample changed specs and confirm AC -> conformance case -> test command mapping is complete.
- Confirm docs-only exceptions have explicit
N/Atier reasons. - Record the review in the release checklist or PR description.
- Summary explains what changed and why.
- Links include milestone, issue, spec, and plan paths.
- Acceptance criteria map to test evidence.
- RED/GREEN/REGRESSION evidence is included for TDD slices.
- Tier matrix is filled (no blank rows;
N/Aincludes reason). - Risk/rollback section is present.
- Docs/specs are updated when behavior changes.
Use atomic commits by concern with the repository convention:
spec|test|feat|fix|refactor|docs|chore(<scope>): <message> (#<issue>)
- Prefer smallest viable diff for the issue scope.
- Add regression tests for bug fixes and behavioral changes.
- Resolve CI failures before requesting merge.