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
- No speculative changes, unrelated refactors, or invented requirements
- 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 ≠ impl): check before commit; fix spec first
- 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:
- rfc3339_utc_timestamp | 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
- Push →
gh pr checks <pr> --watch --fail-fast --interval 30; pending = wait; fail = inspect; missing ≠ green - No checks: wait 60s → retry once →
gh run list --branch <branch> --limit 5 - Failure:
gh run view <run> --log-failed→ fix → commit → push → recheck - Merge/close: delete remote + local branch/worktree if present →
git fetch --prune - CI: never delegate; read failed logs → fix or escalate if blocked
- 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
- Local Flux test (kind):
flux build ks <name> --path <dir> --kustomization-file <file> --dry-run; apply via pipe tokubectl apply -f -; never commit-to-test
- Version:
tfenv; commit.terraform-version - Pre-commit:
terraform_fmt·terraform_validate·terraform_docs - No
-auto-approve;planbeforeapply
docs/**for domain/ops/infra docs- CI/CD config files (enforcement beats docs)
- Tool shims (e.g.
CLAUDE.md) for deltas