Contributing
Workflow
This project uses spec-driven development via OpenSpec.
- Check existing specs:
openspec list --specs - Create a change proposal: see
openspec/AGENTS.md - Implement following TDD
- Validate:
openspec validate <change-id> --strict - Archive after deployment
Development
# Build
cargo build
# Test
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt --check
# Run code quality checks
pretender check src/
# Run the epistemic gate (dont claims)
just check-claims
Epistemic Gate (dont)
This repo keeps a real claim corpus in .dont/ and has adopted the
repo-local epistemic gate per the dont-bpuo ADR (see
dont’s enforcement model):
just check-claimsrunsdont prime, the terminal check — it exits 1 while any claim in.dont/isDoubted, regardless of project mode.- A lefthook pre-commit hook runs
just check-claims; commits are rejected while a claim is doubted (rundont undoubt <claim-id>after resolving the doubt, ordont flagto verify with evidence). - CI runs
check-claimsas part ofjust ci, so a doubted claim fails the pipeline. - Register claims as you make them during development (see dont’s grounding workflow); unverified claims do not block in permissive mode, doubted ones always do.
Project Conventions
- Rust 2021 edition
- No
unwrap()in library code - Reference SRS requirement IDs in doc comments
- Commit messages: conventional commits