Issues are tracked on GitHub (uses the gh CLI). External PRs are not treated as a request surface. See issue-tracker.md.
Using standard triage labels (needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix). See triage-labels.md.
Single-context repository layout (one CONTEXT.md + docs/adr/ at the root). See domain.md.
Always use Conventional Commits for commit messages and link any issue currently being addressed.
- Commit format:
<type>(<optional scope>): <description> (fixes #<issue_number>) - Allowed Types:
feat,fix,refactor,docs,chore,test,impl - Rule: Whenever you are asked to commit or draft a commit message, you MUST append
(fixes #<number>)referencing the issue number if one exists. - Examples:
feat: task runner integration and nix flake check setup (fixes #12)refactor(protocol): restructure transfer phase to typed Rust structs (fixes #8)docs: update README.md with nix/cargo interplay instructions
Releases are fully automated and mistake-proof (Poka-Yoke). If you are asked to prepare or tag a release, you MUST use the task runner recipes in justfile.
- Rule: Never create or push git tags manually. Always run
just tag-releasefrommaininside the Nix development shell (nix develop), which automatically verifies CI success viagh. - Rule: Never run
prepare-releaseon a dirty branch or directly onmainwithout pulling. Always runjust prepare-release <version>from a cleanmainbranch insidenix develop. - Rule: Follow SemVer strictly. Determine the version bump type (major, minor, patch) based on the Conventional Commits since the last release tag.