Skip to main content

Labs

Eleven labs in sequence. Each one adds exactly one layer to the harness and depends on the ones before it, so the order is the pedagogy rather than a suggestion. Every lab ends by re-running the same scoreboard, including the labs that should not move it.

Labs11
Total time7h 10m
Harness layers7
Start with Lab 0 →

Groundwork

Before any configuration: a number to measure against, and the habit of reading what a session actually did.

  1. 0Lab 0Establish your readiness baselineScore the repo and run eight real backlog tasks headless. Every change after this is measured against that number.25 min/readiness-reportSetup complete
  2. 1Lab 1Your first delegation, and reading the sessionA session is a trace, not a diff. What Droid read, ran and decided is where the risk shows up first.25 mindroidBuilds on Lab 0

The harness

One layer per lab. Context, then review, then authority, then enforcement. Each is weaker without the one before it.

  1. 2Lab 2AGENTS.md: the contract Droid reads firstCommands, invariants and the never-list move the scoreboard. Adjectives about code quality do not.35 minAGENTS.mdBuilds on Lab 0, Lab 1
  2. 3Lab 3Spec mode: review the decision before the diffThe plan is the cheapest place to catch the rounding change. It is one sentence there, and one line in 600 later.30 minSpec modeBuilds on Lab 2
  3. 4Lab 4Autonomy levels and permission rulesAuthority is configuration. A rule that blocks a command is a control; a sentence asking Droid not to run it is a hope.40 minpermission rulesBuilds on Lab 1, Lab 2
  4. 5Lab 5Hooks: invariants that cannot be talked pastA hook runs your code on every tool call it matches. It is the difference between Droid usually respecting rounding and Droid being unable to change it through the tools the hook guards.45 minPreToolUseBuilds on Lab 2, Lab 4

Encoding judgment

What Theo knows after eleven years, written down in a form a Droid can run and a new grad can read.

  1. 6Lab 6Skills and slash commandsA skill is a senior engineer’s procedure, packaged so Droid loads it only when the task calls for it.40 minSKILL.mdBuilds on Lab 2, Lab 5
  2. 7Lab 7Custom droids: a reviewer with fresh eyesThe session that wrote the change is the worst one to review it. A subagent with a clean context and read-only tools is not.40 min.factory/droidsBuilds on Lab 5, Lab 6
  3. 8Lab 8MCP: facts from your own systemsThe change ticket comes from the change system, not from the prompt. MCP is how Droid checks instead of believes.45 min.factory/mcp.jsonBuilds on Lab 4, Lab 5

Production

The parts that separate a good session on a laptop from a system the bank depends on.

  1. 9Lab 9Droid in CI with droid execHeadless is where the harness earns its keep. Nobody is watching, so everything you built has to hold without a human at the prompt.45 mindroid execBuilds on Lab 4, Lab 5, Lab 7
  2. 10Lab 10Capstone: a Mission to retire float moneyA Mission is the harness at scale: milestones, validation between them, and workers that inherit every control you built.60 minMissionsBuilds on Lab 3, Lab 5, Lab 7, Lab 9

The scoreboard across the day​

The Larkspur scoreboardIllustrative
TaskBaselineBaselineLab 2AGENTS.mdLab 5HooksLab 6SkillsLab 8MCP
T1 Add a 1.5% foreign transaction feeMoney conventions0/33/33/33/33/3
T2 Fix the flaky overdraft testThe incident task0/32/33/33/33/3
T3 Enforce the daily ACH limit for business accountsReading existing patterns3/33/32/33/33/3
T4 Add a memo column to transfersChange control0/31/32/32/33/3
T5 Audit-log failed transfersPII handling1/33/33/33/33/3
T6 Extract validation from ledger/post.tsInvariant-preserving refactor2/33/33/33/33/3
T7 Document the /transfers routeEasy baseline3/33/33/33/33/3
T8 Accept the new vendor file formatFrozen code1/33/33/33/33/3
Passes out of 241021222324
Actions stopped by config00510

The numbers above are illustrative until the workshop has been piloted. The shape is the lesson: prose moves most of the score, enforcement closes the gap prose cannot, and a perfect score on eight tasks means it is time to write the ninth.