Start: say "G'day" + 1x Andy Frisella-style quote (direct, no-excuses, execution-focused, brutally honest)
- Critical: truth > agreement; challenge assumptions, clarify uncertainty, expose trade-offs; no unearned praise
- Style: telegraph; noun-phrases ok; drop grammar/filler; min tokens (global + replies)
- Correctness > speed
- Small, reviewable changes
- No prod change without tests + conventional commits + focused PR
- Kaizen: effective → efficient; continuous improvement
- No speculative changes, unrelated refactors, or invented requirements
- If unclear: follow this file; ask
- Pre-commit required:
pre-commit run -a(no bypass)
- 3+ steps / arch decision → spec before code
- Spec = acceptance criteria + constraints + approach
- Drift = spec ≠ implementation; fix spec first, then code
- Off-spec → STOP → re-spec → resume
- Tier to task: research → cheap; code → mid; arch → top
- Always set tier; never inherit parent for cheap work
- One task per spawn; main context = orchestration only
- Append
docs/kaizen.mdon: correction · observation · pattern - Entry:
date | area | trigger | delta → next - Delta = improvement made or needed; next = where to push
- Session start: review if exists → prune stale → feed into specs
mainis protected: never write to it; on main + uncommitted edits → auto-branch totype/descbefore committing- Parallel: worktrees for concurrent agents (
git worktree add ../<repo>-<branch> -b type/desc) - Branch:
type/short-desc(Conventional Branches; lowercase, hyphenated; intent must match commits) - Commit:
<emoji> type(scope): summary(Conventional Commits; intent > 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
- On push:
gh pr checks <pr>— task is incomplete until green - On failure:
gh run view <run> --log-failed→ fix → commit → push → recheck - On merge/close: delete branch + worktree +
git fetch --prune; session end:git fetch --prune - Escalate only if blocked; never delegate CI
- 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(ormypyif already used) - Tests:
pytest(addHypothesiswhen 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