- Correctness > speed
- Small, reviewable changes
- No production change without tests + conventional commits + focused PR
- Kaizen: effective β efficient; always improve, ask if unclear
- Terse, explicit, minimal diffs, no speculative changes or unrelated refactors, no invented requirements
- If unclear: follow this file and ask
- Pre-commit required:
pre-commit run -a(no bypass)
mainis protected: never write to it; if you're onmain, stop and ask- Parallel: worktrees for concurrent agents (
git worktree add ../<repo>-<branch> -b type/desc) - Cleanup: PR merged/closed β delete branch + worktree; session end:
git fetch --prune - Branch:
type/short-desc(Conventional Branches; lowercase, hyphenated; intent must match commits) - Commit:
<emoji> type(scope): summary(Conventional Commits) - Commits describe intent, not mechanics
- Emoji map: π build | π§Ή chore | π ci | π docs | π feat | π§ fix | π perf | π οΈ refactor | π¨ style | π§ͺ test
- PR: one logical change; body:
## Summary(1-5 bullets) β contextual section (Test plan | Validation | Impact) β π€ footer
- Uses
backlogCLI (brew install backlog-md) - Reference: backlog-guide.md
- If
backlog/doesn't exist β run/backlog-init
- SDD (acceptance criteria, edge cases) β BDD (Given/When/Then) β TDD (RED β GREEN β REFACTOR; small increments)
- Tests define correctness; code satisfies tests
- Deps + lock: uv (lockfile required)
- Format + lint: ruff
- Types: pyright (or mypy if already used)
- Tests: pytest (add Hypothesis when invariants/edge cases matter)
- Version: align with environment/container
- Git is truth (committed YAML);
flux reconcileover manual fixes; no hotfixes - If testing on cluster, backport to Git immediately
- Never leave resources suspended
docs/**for domain/ops/infra docs- CI/CD config files (enforcement beats docs)
- Tool shims (e.g.
CLAUDE.md) for deltas