Action plan · solo operator · Nov 2026

Agent Factory Blueprint

Today agents build and you are everything else. Flip it. Staff each project with a full agent team, encode your follow-up prompts as automatic gates, and keep for yourself the three things machines can't do well: picking bets, owning the tests agents can't see, and approving what can't be undone.

Your role

Chairman, not foreman

You do

  • Write one thesis per project: who it serves, what winning means
  • Approve or kill bets weekly (max 3 live per project)
  • Own hidden scenarios: the 10–20 journeys that must never break
  • Approve hard-stop changes: migrations, money, auth, brand spend
  • Audit 10 shipped changes a week; turn every miss into a rule
  • Tune the factory: roles, gates, budgets

You stop

  • Typing "verify / simplify / DRY / consistent / fix design"
  • Steering sessions turn by turn
  • Doing market research and competitor checks
  • Deciding feature order and writing specs
  • Reading logs to find bugs
  • Watching terminals for "done"
Daily 2 × 20 min inbox windows Weekly 90 min bet review + audit Monthly factory retro: costs, misses, roles
Change 1 · this week

Turn your repeated prompts into gates

Claude Code now ships most of these as commands. What's missing is making them mandatory. A Stop hook refuses to let an agent finish until every check passes and an evidence file exists for the current diff.

You type todayReplace withKind
"verify it actually works"/verify + a per-repo run skill from /run-skill-generator (DB + env included); Playwright or Chrome DevTools MCP for UIStop gate
"simplify" / "DRY this up"/simplify (reuse, simplification, abstraction); jscpd on changed files; knip for dead codeStop gate
"be consistent with the codebase"Lint rules with fix-it messages; dependency-cruiser for layering; one shared config package across all reposDeterministic
"fix the design"Design-review subagent: screenshots at 3 widths, axe, console errors; design-token lint; frontend-design pluginStop gate
"check for bugs"/code-review --fix locally; second-vendor review in CIStop + CI
"is this secure?"/security-review; Semgrep or CodeQL + gitleaks in CIDeterministic
"keep going until it's done"/goal <condition> for the session; evidence file as the definition of doneSession
~/.claude/settings.json (server-wide, every repo inherits)
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{ "type": "command",
        "command": "npx tsx ~/.claude/hooks/fmt.ts" }]
    }],
    "Stop": [{
      "hooks": [{ "type": "command",
        "command": "npx tsx ~/.claude/hooks/done-gate.ts" }]
    }]
  }
}
~/.claude/hooks/done-gate.ts
import { execSync } from "node:child_process";
import { existsSync } from "node:fs";

const sh = (c: string) => execSync(c, { encoding: "utf8" });
const block = (reason: string) => {
  console.log(JSON.stringify({ decision: "block", reason: reason.slice(-9000) }));
  process.exit(0);
};

if (!sh("git diff --name-only HEAD").trim()) process.exit(0);

for (const c of ["pnpm typecheck", "pnpm lint --max-warnings 0",
  "pnpm knip", "pnpm jscpd:changed", "pnpm test:affected"]) {
  try { sh(c); } catch (e: any) { block(`${c} failed:\n${e.stdout}`); }
}

const sha = sh("git diff HEAD | git hash-object --stdin").trim();
if (!existsSync(`.claude/evidence/${sha}.md`))
  block("Run /simplify, /code-review --fix, /verify (+ design review if UI). " +
        `Write proof to .claude/evidence/${sha}.md`);

Gotchas: exit code 1 does not block (print the JSON block shown). A mistyped hook path silently disables the gate. Claude Code overrides after 8 consecutive blocks unless CLAUDE_CODE_STOP_HOOK_BLOCK_CAP is raised. Hook output caps at 10,000 characters, so trim logs. Starting points to fork rather than write: Every's compound-engineering plugin (/lfg runs plan → build → simplify → review), obra's Superpowers verification skill, OneRedOak's design-review agent.

Change 2 · this week

Close the holes in today's setup

Change 3 · month 1–3

Staff every project with a team

Each role is a scheduled or event-triggered agent with its own prompt, tools, model and memory. Two rules hold it together: whoever builds never grades, and limits live in code and permissions, not in prompts. Anthropic's Project Vend showed an AI CEO approving 8× more requests than it refused and being talked out of control.

RoleTriggerInputs and toolsOutput · hard limit
Portfolio
Chief of StaffDaily, weeklyAll queues, scorecards, spendYour daily digest, weekly bet pack across projects, "needs you" pushesCan't approve anything itself
Decide
Market ScoutWeekly + on signalDeep research (Claude, Exa, Parallel), Ahrefs/Semrush MCP or DataForSEO, competitor changelogs, reviewsOpportunity briefs with sources and confidenceEvery link machine-checked: research agents still invent 5–9% of citations
Product StrategistWeeklyThesis, Scout briefs, PostHog/Amplitude MCP, support themesRanked bets with success metric and kill criteriaMax 3 live bets; can't validate with synthetic users
DesignerPer UI betClaude Design or Stitch for drafts, Figma MCP, design tokensFlows and screens for the spec; design-review verdict on PRsDrafts only; tokens enforced by lint
Outcome AnalystDailyPostHog/Amplitude, experiment resultsBet scorecards: double down, iterate or killCan't change a metric after launch
Build
Spec ArchitectPer approved betRepo, PRD, designSmall issues: intent, acceptance criteria, checks, risk tier
BuildersQueuePer-task VM + DB clone, Grafana read-only, Stop gatesBranch + evidence fileCan't touch tests, gates, CI, prompts or main
Prove
QA LeadEvery PROther vendor's model (GPT-6), PRD, preview env, browser, Stryker, fast-checkWrites tests and hidden scenarios from the PRD before code; attacks edge cases; BLOCK with repro or PASS with proofJudged only on escaped defects; builders can't see its scenarios or overrule it
Run
Release EngineerOn mergeMerge queue, flags, error/SLO metricsCanary, promote or auto-rollback
JanitorNightly + on alertSentry, CI, GrafanaFix issues, cleanup PRs, new lint rules from repeat mistakes
Grow
Growth LeadContinuousPostHog/GrowthBook experiments, Resend/Loops, SEO toolsExperiments behind flags, lifecycle email, data-backed contentNo mass programmatic pages; spend and public posts only within approved budget
Support & VoiceOn messageInbox (Fin at $0.99/resolution, or own agent)Replies, tagged themes → Scout and JanitorNever promises features, refunds or dates
Change 4 · the merge gate

Complete autonomy, three hard stops

You don't read code, so the gate is your only reviewer. The best AI reviewers catch ~50% of bugs, and half of test-passing agent PRs fail maintainer review. Stack checks so no single one has to be right.

  1. Stop gates in the session: types, lint, knip, jscpd, affected tests, simplify, review, verify.
  2. Locked tests written by QA from the PRD before code. Builders mostly cheat by editing tests; read-only is the proven fix.
  3. Mutation check on changed lines, so tests must catch planted bugs.
  4. Hidden scenarios run by a browser on the PR preview, judged by the other vendor.
  5. Security: SAST, secrets scan, new-dependency policy.
  6. Verdict in code: AUTO_MERGE, FIX or NEEDS_HUMAN. AI findings are inputs, never the gate.
  7. Canary with auto-rollback on error rate or SLO burn.
LaneCoversPath
AutoEverything reversible: features, fixes, refactors, copy, UI, experiments behind flagsGates → auto-merge → canary. You audit a sample.
Stop 1Data you can't get back: schema migrations, deletes, backupsExpand/contract only; destructive step needs your tap
Stop 2Trust surface: auth, permissions, secrets, CI, gates, tests, agent prompts, new dependenciesNeeds your tap
Stop 3Money and brand: payments, pricing, ad spend, public posts under your nameWeekly budget and brand approval

Run the verdict in shadow for a week before trusting it: it logs what it would do, you compare. Go live at ≥90% agreement.

Change 5 · the control plane

One queue, one dispatcher, one inbox

PieceChoiceInstead of
QueueOne queue across projects (Linear or GitHub Issues); WORKFLOW.md per repoAd-hoc prompts in sessions
Dispatcher~2k lines of TypeScript on Restate, Symphony-style; Agent SDK on API keys; per-repo capsMany Remote Control sessions
TriggersSentry, CI failures, deploys, support themes, cron → same queue, same gatesYou noticing problems
InboxGrouped: needs you / ready / working / shipped. Push only for "needs you".Watching terminals
Shared rulesOne versioned package: eslint, tsconfig, hooks, skills, agent prompts. Fix once, every repo upgrades.Per-repo drift
Context~100-line AGENTS.md as a map; lessons become lint rules, not proseLong CLAUDE.md files (+20% cost, no gain)

Faster to start, less control: Claude Code Projects (beta; cloud threads skip repo skills and settings) or Cursor Automations (best triggers; second vendor's harness).

Models

Right model per role

ModelRolesBilling
Opus 5.5Scout, Strategist, Spec Architect, Growth Lead, risky buildsAnthropic API
Sonnet 5.5Routine builds, Analyst, Janitor, Support, Chief of StaffAnthropic API
GPT-6 Astra / 6.1 SolQA Lead, scenario judge (prompt for 7–10 findings)OpenAI API
Haiku 5.5Triage and routing onlyAnthropic API
Opus 5.5YouMax 20x

Skip Fable for coding: 2.5x Opus's price, lower agentic score. Fast modes cut latency, not throughput; use them only when you're blocked.

Sequence

Twelve weeks

Week 1

Gates and safety

  • Stop hook + evidence file on the server
  • Lint, knip, jscpd, dep-cruiser in shared config
  • Branch protection; agents push branches only
  • Prod creds out; scoped tokens
  • API org; ARM vs x86 timing

Exit: you stop typing follow-up prompts

Weeks 2–4

Queue and QA

  • Queue, dispatcher, per-task VM + DB clone
  • QA Lead on every PR, verdict in shadow
  • Chief of Staff digest + inbox
  • Theses written for all projects

Exit: 80% of work enters via the queue

Weeks 5–8

Product team

  • Scout, Strategist, Analyst on 1–2 lead projects
  • PostHog or Amplitude wired in
  • First weekly bet review
  • Canary + auto-rollback live

Exit: you approve bets, not tasks

Weeks 9–12

Grow and scale

  • Growth Lead + Support on revenue projects
  • Hidden scenarios + mutation gate
  • Auto lane live at ≥90% shadow agreement
  • Roll out to remaining projects

Exit: under 45 min/day of your time

Expectations

What to expect, and what this costs you

Slower before faster

Expect 3–6 weeks of building the factory before it beats today. The harness is the product now. Commit two focused weeks up front.

Code stops being the bottleneck

Distribution and taste become it. Agents can produce unlimited features; few will matter. The win is better bets and faster kills, not more PRs.

Fewer projects, deeper

Full teams on 1–2 projects with traction beat thin coverage of many. Put the rest on maintenance lanes until they earn a team.

Real users, not synthetic ones

Simulated users exaggerate group differences 2.3–2.5x and lose to a demographic lookup. Every bet needs a real signal: analytics, experiments, support.

Misses will happen

Defects will escape. Success is fast detection, automatic rollback and a new rule per miss, not zero bugs.

Budget in tokens, not hours

A full team per project can run $5–15k/mo in tokens. Track cost per shipped, unreverted change and per winning bet; that's the ROI line.

Guard your attention

Heavy agent operators report compulsive 16-hour days. Fixed windows and a hard stop are part of the system, not a nicety.

Measure, don't feel

In METR's study developers felt 20% faster and measured 19% slower. Trust the scoreboard below.

Scoreboard

Judge it by these

< 45 min
Your time per day
0
Follow-up quality prompts you type
2–3x ↑
Shipped, unreverted changes per day
≤ today
Change failure rate
↓ weekly
Defects found by your audit
≥ 1 / wk
Experiments per lead project
% hit
Bets meeting their success metric
↑ MoM
Activation and retention
Your decisions

Answer these before week 2

01

Which 1–2 projects get the full team?

Rank by users, revenue and conviction. Recommendation: the one with real users plus the one you believe in most.

02

What is each project's thesis?

One paragraph each. Without it the Strategist optimises for noise.

03

Do any projects touch money, credit or personal data?

Those get stricter lanes and their own audit, whatever your autonomy preference.

04

Build the dispatcher or use Claude Code Projects?

Recommendation: build. About two weeks, and the policy stays yours.

05

One brand or one per project?

Growth agents posting from one identity across projects concentrates spam and platform-ban risk.

06

Monthly cap per project for tokens and growth spend?

Set it so the Chief of Staff can flag overruns. Kill or fund based on cost per winning bet.

Sources