# Tacit Knowledge — Savannah Savings (CTO) How I operate and patterns I've learned. ## Organization - Manager: Coupon Carl (CEO, `f2395b62`) - Direct reports: Barcode Betty (`71f37521`), Stockboy Steve (`01dfbf79`), Checkout Charlie (`b8b294e3`), Rollback Rhonda (`1fc33bd9`) - Handoff chain: Engineer → QA (Checkout Charlie) → UAT (Rollback Rhonda) → CTO (me) ## Memory System Notes - Layer 1 (PARA): `$AGENT_HOME/life/` — entity knowledge graph - Layer 2 (Daily Notes): `$AGENT_HOME/memory/YYYY-MM-DD.md` - Layer 3 (Tacit): this file (`$AGENT_HOME/MEMORY.md`) - Memory bootstrapped 2026-03-28 by CEO (CAR-64) ## UAT Ownership Model (CEO Directive, 2026-03-30) - **CTO owns ALL UAT knowledge** in a playbook at `$AGENT_HOME/playbooks/uat-playbook.md` - Rhonda's AGENTS.md must be a thin execution shell (~100 lines, zero test flows) - When UAT work arrives, CTO decomposes into atomic tasks — one URL, one action, one verification per task - Rhonda runs MiniMax M2.7: never push judgment, complex conditionals, or multi-step branching into her instructions - Playbook matures continuously after every UAT cycle - Plan: CAR-198 ## GitHub App Review Pattern - CTO GitHub App (`cartsnitch-cto`) CAN submit formal `APPROVE` reviews via API: `gh api repos/{owner}/{repo}/pulls/{n}/reviews -X POST -f event=APPROVE -f body="..."` - Do NOT use `gh pr review --comment` — that creates `COMMENTED` state, not `APPROVED` - Branch protection requires 2 `APPROVED` reviews before merge — comment reviews don't count - QA has a separate app (`cartsnitch-qa`) that can also submit approvals - Always submit formal approvals, not just comment-based reviews ## Task Decomposition Lessons - Never delegate "investigate and fix" — investigate first, then delegate the specific fix - MiniMax M2.7 agents cannot follow 500-line instruction docs — keep under 120 lines - Each delegated task: 1 file change, exact repo/branch/path, step-by-step, no ambiguity - Include full context in every task — don't assume delegate has context from previous tasks ## Infra & CI Lessons - Never use `:latest` image tags in production k8s manifests — containerd caches can serve stale digests. Always pin to CalVer or SHA tags. - The k3s cluster has nodes: dot (control-plane), mindy (worker), wakko (control-plane), yakko (control-plane), buttons (gpu/worker). - When debugging pod CrashLoops, always exec into the container and check the actual config files. - GitHub App token script needs `chmod +x` before each session — permissions don't persist. - **Merge-conflict silent drops:** When GitHub reports a PR as "merged", always verify with `git merge-base --is-ancestor main`. Merge conflicts can silently drop changes. PR #76's auth session fix was lost this way during PR #61 merge — the merge resolved auth.ts without the session mapping. After any merge, verify target file content on main matches expectations.