Project-specific instructions for Claude Code when working in this repository.
IMPORTANT: Never commit directly to main branch.
- Always create a feature branch for new work
- Branch naming:
feature/<phase-or-feature-name>(e.g.,feature/phase-11-bm25-planning) - Create PRs for all changes
- Merge to main only through approved PRs
CRITICAL: Always run task pr-precheck before pushing a PR.
This validates format, clippy, tests, and docs match CI expectations:
# Run BEFORE git push for PRs
task pr-precheckIf task is not available, run manually:
cargo fmt --all -- --check && \
cargo clippy --workspace --all-targets --all-features -- -D warnings && \
cargo test --workspace --all-features && \
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace --all-featuresNever push a PR without passing pr-precheck first.
This is an agent-memory system built in Rust with:
crates/- Rust workspace cratesproto/- gRPC protocol definitions.planning/- GSD workflow planning filesskills/- Claude Code plugin skills
# Build all crates
cargo build
# Run tests
cargo test
# Check with clippy
cargo clippy --workspace --all-targets --all-features -- -D warnings
# Build specific crate
cargo build -p memory-daemon
# Full QA check (format + clippy + test + doc)
cargo fmt --all -- --check && \
cargo clippy --workspace --all-targets --all-features -- -D warnings && \
cargo test --workspace --all-features && \
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace --all-featuresProject-specific skills in .claude/skills/:
| Skill | Purpose |
|---|---|
modern-rust-expert |
Rust 2024 patterns, clippy compliance, functional-but-pragmatic philosophy |
rust-testing |
Test patterns, assertions, parameterized tests |
rust-cargo-assistant |
Cargo commands and dependency management |
releasing-rust |
Cross-platform release workflow, versioning, artifact naming |
Project-specific agents in .claude/agents/:
| Agent | Purpose |
|---|---|
qa-rust-agent |
Enforces code quality after Rust file changes (format, clippy, test, doc) |
GitHub Actions workflows in .github/workflows/:
| Workflow | Trigger | Purpose |
|---|---|---|
ci.yml |
Push to main, PRs | Format, clippy, test, build, doc checks |
release.yml |
Tags v*.*.*, manual |
Multi-platform release builds |
# Bump version
cargo set-version 0.2.0
# Commit and tag
git add -A && git commit -m "chore: release v0.2.0"
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tagsThe release workflow automatically builds for:
- Linux x86_64 / ARM64
- macOS Intel / Apple Silicon
- Windows x86_64
This project uses the Get Shit Done (GSD) workflow:
- Planning files in
.planning/ - ROADMAP.md tracks phases
- STATE.md tracks current position
- PLAN.md files define executable tasks
IMPORTANT: All phase plans and RFCs must be stored in docs/plans/.
- Phase plans:
docs/plans/phase-<N>-<name>-plan.md - RFCs:
docs/plans/<name>-rfc.md - Research docs:
docs/plans/<name>-research.md
Do NOT leave plans only in ~/.claude/plans/ - always copy the final plan to docs/plans/.
See .planning/PROJECT.md for architectural decisions and requirements.