AI Strategy Audit
Source: John Cutler, TBM 420: The AI Playbook Puzzle — https://cutlefish.substack.com/p/tbm-420-the-ai-playbook-puzzle
The goal is not to grade AI usage. It is to surface the playbook the codebase is enacting — explicit or implicit — and judge whether each piece falls into one of Cutler's four buckets:
- Bad ideas amplified — pre-AI patterns that AI is now accelerating without anyone questioning whether the pattern itself was good.
- Good ideas supercharged — practices that were already healthy and become disproportionately stronger with AI in the loop.
- Genuinely new possibilities — workflows with no historical precedent that only work because AI is participating.
- The meta-skill — context-reading. Whether the codebase, docs, and process help an AI (and a human) understand why a practice works here, not just what the practice is.
The deliverable is an audit report that names each finding, tags it with the bucket it belongs to, and proposes a move — usually one of: kill, sharpen, invent, or document.
Arguments
path (optional): Subdirectory or subsystem to scope the audit to (default: entire repo).
focus (optional): A specific concern — e.g. "executors", "approval flow", "PR review", "docs". Default: whole-codebase scan.
Steps
1. Read the room before forming opinions
Before forming any judgement, gather context. Run these in parallel where possible.
- Read
README.md, CLAUDE.md/AGENTS.md, CONTRIBUTING.md, and any top-level CONTEXT.md.
- List
docs/adr/ (or equivalent) and skim titles — ADRs encode the load-bearing decisions and reveal what the team has explicitly chosen, which is the strongest signal of intentional vs accidental playbook.
- Identify AI surface area:
- LLM SDK imports (
anthropic, openai, @ai-sdk/*, Laravel\Ai\*, langchain, etc.) — grep -r for SDK package names.
- MCP servers, tools, agents, skills directories.
- Prompt files, system prompts, agent definitions.
- Executor / runner / orchestrator code.
- Approval, gating, review, and human-in-the-loop surfaces.
- Evals, traces, observability for AI calls.
- Identify the humans-in-the-loop: where does a person approve, review, edit, or reject AI output? Where do they not, and should they?
- Identify the machines-in-the-loop: where does AI feed AI? Are there feedback loops, or is each call a one-shot?
Write down the AI surface map before going further. If the codebase has no AI surface, the audit becomes "where could AI participate" rather than "is AI being used well" — adapt accordingly.
2. Sort findings into the four buckets
For each notable practice, ask the four diagnostic questions in order. The order matters — the first one is the trap most teams fall into.
Bucket 1 — Bad ideas amplified
Look for pre-AI patterns that AI is now making worse by making them faster or cheaper:
- Static artefacts that should be living. Long PRDs, frozen specs, or design docs that get generated up-front and then ignored. AI makes generating them trivial, which makes the rot invisible.
- Gate-heavy workflows. Multiple sequential approval steps, each with its own AI assist, where the number of gates is the actual bottleneck — not the work at each gate.
- Siloed handoffs. AI summaries between teams that obscure rather than reveal — "the model said X" replacing "I read it and here's what matters".
- Mock-driven confidence. AI-generated tests that pass against AI-generated mocks, providing no signal about real behaviour.
- Volume as proxy for value. Lots of AI-generated tickets, comments, or code review nits — measuring output instead of outcome.
- Process LARP. Ceremonies that exist because they used to exist, now sped up with AI, but no longer doing the work they were originally invented for.
Tag each finding [BUCKET 1 — kill or rethink].
Bucket 2 — Good ideas supercharged
Look for healthy practices where AI compounds the value:
- Living documents. Docs, ADRs, or context files that are continuously refreshed and that the team actually reads. AI makes maintenance cheap enough to keep them honest.
- Continuous co-design. Humans and AI iterating on the same artefact, where each pass adds signal.
- Prototyping as shared understanding. Throwaway working code as a communication medium, not a deliverable.
- Outcome-centric loops. AI used to shorten the distance between "we hypothesised" and "we observed".
- Small, reversible steps. A codebase that supports many cheap experiments — AI thrives here, brittle codebases don't.
- Strong feedback at the boundary. Tests, types, lints, and runtime checks that catch AI mistakes the same way they catch human mistakes.
Tag each finding [BUCKET 2 — sharpen and invest].
Bucket 3 — Genuinely new possibilities
This is the "outside the box" bucket — the article's central provocation. Look for workflows that have no pre-AI analogue and would be absurd to attempt without an AI in the loop. For each AI surface in the codebase, ask:
- What if the AI never stopped working? Background agents that triage issues, prune dead flags, refresh docs against code drift, propose ADR updates when code contradicts them.
- What if context were continuously regenerated? A
CONTEXT.md or knowledge graph rebuilt from the actual code on every commit, not maintained by hand.
- What if every artefact had a reverse? AI that converts code → spec → tests → docs → code, used to detect drift between layers.
- What if review were a conversation, not a gate? PRs where the AI argues with itself from multiple personas (security, perf, simplicity) before a human ever looks.
- What if onboarding were per-task, not per-person? A new contributor (human or agent) gets a tailored brief generated from the exact files they're about to touch.
- What if rejection were data? Every rejected AI output captured as a training signal for the prompts and tools, not the model.
- What if "the spec" were a running test suite plus a running prose explanation, kept in sync by an agent?
- What if domain language were enforced? An agent that reads PRs and flags terminology drift against a glossary.
- What if the executor were pluggable enough that competing models race the same task and a human picks the winner?
Be deliberately weird here. The point is to provoke, not to ship. Tag each [BUCKET 3 — invent] and mark the level of speculation: plausible / stretch / weird.
Bucket 4 — The meta-skill
Judge whether the codebase makes context-reading easy or hard. This is the bucket that determines whether buckets 1–3 will land at all.
- Why is captured, not just what. ADRs, comments-where-non-obvious, commit messages that explain motivation.
- Terminology is enforced. Domain words mean one thing. The same concept does not appear under three names.
- Entry points are signposted. A new agent (or engineer) can answer "where do I start for X?" in under a minute.
- Decisions are reversible-by-default. When an approach gets rethought, the old reasoning is still findable, not silently overwritten.
- The codebase teaches itself. Reading the code in dependency order produces understanding, not confusion.
Tag each finding [BUCKET 4 — document or restructure].
3. Watch for the three traps
Before writing the report, sanity-check the findings against Cutler's three traps. Each trap is a failure mode of the audit itself:
- Amplify Bad — Did you recommend adding AI to a process without questioning whether the process should exist? If yes, recategorise as Bucket 1.
- Identity Threat — Are you praising the team's existing practices to avoid suggesting reinvention? If your Bucket 3 list is empty or timid, you have probably flinched.
- Avoiding It — Are you giving generic AI advice ("add evals", "use a vector DB") without grounding it in this codebase's actual surface area? If yes, go back to step 1.
4. Write the report
Write to {skill-base-dir}/reports/{project-name}/YYYY-MM-DD-ai-strategy.md. Create directories if missing. Treat reports/ as local output, not skill source.
Use this structure:
# AI Strategy Audit
**Date**: [date] | **Scope**: [path or "whole repo"] | **Focus**: [focus or "general"]
**Framework**: John Cutler, *TBM 420: The AI Playbook Puzzle* — <https://cutlefish.substack.com/p/tbm-420-the-ai-playbook-puzzle>
### The four buckets (60-second primer)
1. **Bad ideas amplified** — pre-AI patterns AI is now making faster/cheaper without anyone asking if the pattern was good. *Move: kill or rethink.*
2. **Good ideas supercharged** — already-healthy practices that compound when AI joins the loop. *Move: sharpen and invest.*
3. **Genuinely new possibilities** — workflows with no pre-AI analogue; only viable because AI is participating. *Move: invent (smallest reversible experiment).*
4. **The meta-skill (context-reading)** — whether the codebase, docs, and process make it easy to understand *why* a practice works here, not just *what*. Determines whether 1–3 land at all. *Move: document or restructure.*
The three traps to avoid: **Amplify Bad** (adding AI to a broken process), **Identity Threat** (praising existing practice to dodge reinvention), **Avoiding It** (generic advice not grounded in this codebase).
## Executive Summary
[3–5 bullets. Lead with the most expensive bad-idea-amplified finding and the most exciting genuinely-new possibility. Resist the urge to lead with the safe Bucket 2 wins.]
## AI Surface Map
[Brief inventory: where AI lives in this codebase today. SDKs, agents, MCP tools, prompts, executors, approval surfaces. One line each.]
## Findings by Bucket
### Bucket 1 — Bad ideas amplified
| # | Finding | Evidence (file / pattern) | Move |
|---|---------|---------------------------|------|
| 1 | [name] | [path:line or pattern] | kill / rethink / replace with X |
### Bucket 2 — Good ideas supercharged
| # | Finding | Evidence | Move |
|---|---------|----------|------|
| 1 | [name] | [path / pattern] | sharpen / invest / extend to Y |
### Bucket 3 — Genuinely new possibilities
| # | Idea | Why it's only possible with AI | Speculation level | First experiment |
|---|------|-------------------------------|-------------------|-----------------|
| 1 | [name] | [reasoning] | plausible / stretch / weird | [smallest reversible step] |
### Bucket 4 — Meta-skill (context-readability)
| # | Finding | Evidence | Move |
|---|---------|----------|------|
| 1 | [name] | [path / gap] | document / restructure / enforce |
## Cross-cuts
### Danger zone — bad ideas that are about to be amplified
[Bucket 1 items where someone has *proposed* adding AI but hasn't yet. Cheapest wins.]
### Compounding bets
[Bucket 2 + Bucket 4 items that reinforce each other — sharpening one makes the other cheaper.]
### Outside-the-box shortlist
[Pick 2–3 Bucket 3 items the team could pilot in under a sprint. Name the smallest reversible experiment for each.]
## Identity check
[Cutler's "stay in motion while everything shifts" — name 1–2 places where the codebase or team appears to be performing AI adoption while internally resisting reinvention. Be specific, not preachy.]
## Recommendations
1. [Single highest-leverage move]
2. [Second]
3. [Third]
5. Present findings
- Tell the user where the report was saved.
- Open with a one-line link to the source article and a single sentence per bucket so a reader who never opens the article still understands the framing:
Framing: John Cutler's TBM 420: The AI Playbook Puzzle (https://cutlefish.substack.com/p/tbm-420-the-ai-playbook-puzzle) — (1) bad ideas amplified, (2) good ideas supercharged, (3) genuinely new possibilities, (4) the meta-skill of context-reading.
- Then lead with the executive summary and the outside-the-box shortlist — that is the part of the audit that earns its keep.
- Do not over-index on Bucket 2. It is the comfortable bucket and the least useful one to dwell on.
- Offer to deepen any single Bucket 3 idea into a concrete plan or to convert Bucket 1 findings into a kill-list PR.
1---2name: audit-ai-strategy3description: Audit a codebase's AI strategy through John Cutler's four-bucket lens: bad ideas amplified, good ideas supercharged, genuinely new possibilities, and the meta-skill of reading context. Identifies where AI is bolted onto broken patterns, where it amplifies what already works, and where the codebase could embrace workflows that only exist because AI is in the loop. Use when asked to "audit AI strategy", "evaluate our AI playbook", "find AI opportunities", or "where can we think outside the box with AI".4---56# AI Strategy Audit78Source: John Cutler, *TBM 420: The AI Playbook Puzzle* — [https://cutlefish.substack.com/p/tbm-420-the-ai-playbook-puzzle](https://cutlefish.substack.com/p/tbm-420-the-ai-playbook-puzzle)910The goal is not to grade AI usage. It is to surface the *playbook* the codebase is enacting — explicit or implicit — and judge whether each piece falls into one of Cutler's four buckets:11121. **Bad ideas amplified** — pre-AI patterns that AI is now accelerating without anyone questioning whether the pattern itself was good.132. **Good ideas supercharged** — practices that were already healthy and become disproportionately stronger with AI in the loop.143. **Genuinely new possibilities** — workflows with no historical precedent that *only* work because AI is participating.154. **The meta-skill** — context-reading. Whether the codebase, docs, and process help an AI (and a human) understand *why* a practice works here, not just *what* the practice is.1617The deliverable is an audit report that names each finding, tags it with the bucket it belongs to, and proposes a move — usually one of: kill, sharpen, invent, or document.1819## Arguments2021- `path` (optional): Subdirectory or subsystem to scope the audit to (default: entire repo).22- `focus` (optional): A specific concern — e.g. "executors", "approval flow", "PR review", "docs". Default: whole-codebase scan.2324## Steps2526### 1. Read the room before forming opinions2728Before forming any judgement, gather context. Run these in parallel where possible.2930- Read `README.md`, `CLAUDE.md`/`AGENTS.md`, `CONTRIBUTING.md`, and any top-level `CONTEXT.md`.31- List `docs/adr/` (or equivalent) and skim titles — ADRs encode the load-bearing decisions and reveal what the team has explicitly *chosen*, which is the strongest signal of intentional vs accidental playbook.32- Identify AI surface area:33 - LLM SDK imports (`anthropic`, `openai`, `@ai-sdk/*`, `Laravel\Ai\*`, `langchain`, etc.) — `grep -r` for SDK package names.34 - MCP servers, tools, agents, skills directories.35 - Prompt files, system prompts, agent definitions.36 - Executor / runner / orchestrator code.37 - Approval, gating, review, and human-in-the-loop surfaces.38 - Evals, traces, observability for AI calls.39- Identify the *humans-in-the-loop*: where does a person approve, review, edit, or reject AI output? Where do they not, and should they?40- Identify the *machines-in-the-loop*: where does AI feed AI? Are there feedback loops, or is each call a one-shot?4142Write down the AI surface map before going further. If the codebase has *no* AI surface, the audit becomes "where could AI participate" rather than "is AI being used well" — adapt accordingly.4344### 2. Sort findings into the four buckets4546For each notable practice, ask the four diagnostic questions in order. The order matters — the first one is the trap most teams fall into.4748#### Bucket 1 — Bad ideas amplified4950Look for pre-AI patterns that AI is now making *worse* by making them faster or cheaper:5152- **Static artefacts that should be living.** Long PRDs, frozen specs, or design docs that get generated up-front and then ignored. AI makes generating them trivial, which makes the rot invisible.53- **Gate-heavy workflows.** Multiple sequential approval steps, each with its own AI assist, where the *number* of gates is the actual bottleneck — not the work at each gate.54- **Siloed handoffs.** AI summaries between teams that obscure rather than reveal — "the model said X" replacing "I read it and here's what matters".55- **Mock-driven confidence.** AI-generated tests that pass against AI-generated mocks, providing no signal about real behaviour.56- **Volume as proxy for value.** Lots of AI-generated tickets, comments, or code review nits — measuring output instead of outcome.57- **Process LARP.** Ceremonies that exist because they used to exist, now sped up with AI, but no longer doing the work they were originally invented for.5859Tag each finding `[BUCKET 1 — kill or rethink]`.6061#### Bucket 2 — Good ideas supercharged6263Look for healthy practices where AI compounds the value:6465- **Living documents.** Docs, ADRs, or context files that are continuously refreshed and that the team actually reads. AI makes maintenance cheap enough to keep them honest.66- **Continuous co-design.** Humans and AI iterating on the same artefact, where each pass adds signal.67- **Prototyping as shared understanding.** Throwaway working code as a communication medium, not a deliverable.68- **Outcome-centric loops.** AI used to shorten the distance between "we hypothesised" and "we observed".69- **Small, reversible steps.** A codebase that supports many cheap experiments — AI thrives here, brittle codebases don't.70- **Strong feedback at the boundary.** Tests, types, lints, and runtime checks that catch AI mistakes the same way they catch human mistakes.7172Tag each finding `[BUCKET 2 — sharpen and invest]`.7374#### Bucket 3 — Genuinely new possibilities7576This is the "outside the box" bucket — the article's central provocation. Look for workflows that have *no pre-AI analogue* and would be absurd to attempt without an AI in the loop. For each AI surface in the codebase, ask:7778- **What if the AI never stopped working?** Background agents that triage issues, prune dead flags, refresh docs against code drift, propose ADR updates when code contradicts them.79- **What if context were continuously regenerated?** A `CONTEXT.md` or knowledge graph rebuilt from the actual code on every commit, not maintained by hand.80- **What if every artefact had a reverse?** AI that converts code → spec → tests → docs → code, used to detect drift between layers.81- **What if review were a conversation, not a gate?** PRs where the AI argues with itself from multiple personas (security, perf, simplicity) before a human ever looks.82- **What if onboarding were per-task, not per-person?** A new contributor (human or agent) gets a tailored brief generated from the exact files they're about to touch.83- **What if rejection were data?** Every rejected AI output captured as a training signal for the *prompts and tools*, not the model.84- **What if "the spec" were a running test suite plus a running prose explanation, kept in sync by an agent?**85- **What if domain language were enforced?** An agent that reads PRs and flags terminology drift against a glossary.86- **What if the executor were pluggable enough that competing models race the same task and a human picks the winner?**8788Be deliberately weird here. The point is to provoke, not to ship. Tag each `[BUCKET 3 — invent]` and mark the level of speculation: *plausible / stretch / weird*.8990#### Bucket 4 — The meta-skill9192Judge whether the codebase makes context-reading easy or hard. This is the bucket that determines whether buckets 1–3 will land at all.9394- **Why is captured, not just what.** ADRs, comments-where-non-obvious, commit messages that explain motivation.95- **Terminology is enforced.** Domain words mean one thing. The same concept does not appear under three names.96- **Entry points are signposted.** A new agent (or engineer) can answer "where do I start for X?" in under a minute.97- **Decisions are reversible-by-default.** When an approach gets rethought, the old reasoning is still findable, not silently overwritten.98- **The codebase teaches itself.** Reading the code in dependency order produces understanding, not confusion.99100Tag each finding `[BUCKET 4 — document or restructure]`.101102### 3. Watch for the three traps103104Before writing the report, sanity-check the findings against Cutler's three traps. Each trap is a *failure mode of the audit itself*:105106- **Amplify Bad** — Did you recommend adding AI to a process without questioning whether the process should exist? If yes, recategorise as Bucket 1.107- **Identity Threat** — Are you praising the team's existing practices to avoid suggesting reinvention? If your Bucket 3 list is empty or timid, you have probably flinched.108- **Avoiding It** — Are you giving generic AI advice ("add evals", "use a vector DB") without grounding it in *this* codebase's actual surface area? If yes, go back to step 1.109110### 4. Write the report111112Write to `{skill-base-dir}/reports/{project-name}/YYYY-MM-DD-ai-strategy.md`. Create directories if missing. Treat `reports/` as local output, not skill source.113114Use this structure:115116```markdown117# AI Strategy Audit118119**Date**: [date] | **Scope**: [path or "whole repo"] | **Focus**: [focus or "general"]120121**Framework**: John Cutler, *TBM 420: The AI Playbook Puzzle* — <https://cutlefish.substack.com/p/tbm-420-the-ai-playbook-puzzle>122123### The four buckets (60-second primer)1241251. **Bad ideas amplified** — pre-AI patterns AI is now making faster/cheaper without anyone asking if the pattern was good. *Move: kill or rethink.*1262. **Good ideas supercharged** — already-healthy practices that compound when AI joins the loop. *Move: sharpen and invest.*1273. **Genuinely new possibilities** — workflows with no pre-AI analogue; only viable because AI is participating. *Move: invent (smallest reversible experiment).*1284. **The meta-skill (context-reading)** — whether the codebase, docs, and process make it easy to understand *why* a practice works here, not just *what*. Determines whether 1–3 land at all. *Move: document or restructure.*129130The three traps to avoid: **Amplify Bad** (adding AI to a broken process), **Identity Threat** (praising existing practice to dodge reinvention), **Avoiding It** (generic advice not grounded in this codebase).131132## Executive Summary133134[3–5 bullets. Lead with the most expensive bad-idea-amplified finding and the most exciting genuinely-new possibility. Resist the urge to lead with the safe Bucket 2 wins.]135136## AI Surface Map137138[Brief inventory: where AI lives in this codebase today. SDKs, agents, MCP tools, prompts, executors, approval surfaces. One line each.]139140## Findings by Bucket141142### Bucket 1 — Bad ideas amplified143144| # | Finding | Evidence (file / pattern) | Move |145|---|---------|---------------------------|------|146| 1 | [name] | [path:line or pattern] | kill / rethink / replace with X |147148### Bucket 2 — Good ideas supercharged149150| # | Finding | Evidence | Move |151|---|---------|----------|------|152| 1 | [name] | [path / pattern] | sharpen / invest / extend to Y |153154### Bucket 3 — Genuinely new possibilities155156| # | Idea | Why it's only possible with AI | Speculation level | First experiment |157|---|------|-------------------------------|-------------------|-----------------|158| 1 | [name] | [reasoning] | plausible / stretch / weird | [smallest reversible step] |159160### Bucket 4 — Meta-skill (context-readability)161162| # | Finding | Evidence | Move |163|---|---------|----------|------|164| 1 | [name] | [path / gap] | document / restructure / enforce |165166## Cross-cuts167168### Danger zone — bad ideas that are about to be amplified169[Bucket 1 items where someone has *proposed* adding AI but hasn't yet. Cheapest wins.]170171### Compounding bets172[Bucket 2 + Bucket 4 items that reinforce each other — sharpening one makes the other cheaper.]173174### Outside-the-box shortlist175[Pick 2–3 Bucket 3 items the team could pilot in under a sprint. Name the smallest reversible experiment for each.]176177## Identity check178179[Cutler's "stay in motion while everything shifts" — name 1–2 places where the codebase or team appears to be performing AI adoption while internally resisting reinvention. Be specific, not preachy.]180181## Recommendations1821831. [Single highest-leverage move]1842. [Second]1853. [Third]186```187188### 5. Present findings189190- Tell the user where the report was saved.191- Open with a one-line link to the source article and a single sentence per bucket so a reader who never opens the article still understands the framing:192 > Framing: John Cutler's *TBM 420: The AI Playbook Puzzle* (<https://cutlefish.substack.com/p/tbm-420-the-ai-playbook-puzzle>) — (1) bad ideas amplified, (2) good ideas supercharged, (3) genuinely new possibilities, (4) the meta-skill of context-reading.193- Then lead with the executive summary and the **outside-the-box shortlist** — that is the part of the audit that earns its keep.194- Do not over-index on Bucket 2. It is the comfortable bucket and the least useful one to dwell on.195- Offer to deepen any single Bucket 3 idea into a concrete plan or to convert Bucket 1 findings into a kill-list PR.