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.
Groundwork
Before any configuration: a number to measure against, and the habit of reading what a session actually did.
- 0Lab 0Establish your readiness baselineScore the repo and run eight real backlog tasks headless. Every change after this is measured against that number.
- 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.
The harness
One layer per lab. Context, then review, then authority, then enforcement. Each is weaker without the one before it.
- 2Lab 2AGENTS.md: the contract Droid reads firstCommands, invariants and the never-list move the scoreboard. Adjectives about code quality do not.
- 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.
- 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.
- 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.
Encoding judgment
What Theo knows after eleven years, written down in a form a Droid can run and a new grad can read.
- 6Lab 6Skills and slash commandsA skill is a senior engineer’s procedure, packaged so Droid loads it only when the task calls for it.
- 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.
- 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.
Production
The parts that separate a good session on a laptop from a system the bank depends on.
- 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.
- 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.
The scoreboard across the day
| Task | BaselineBaseline | Lab 2AGENTS.md | Lab 5Hooks | Lab 6Skills | Lab 8MCP |
|---|---|---|---|---|---|
| T1 Add a 1.5% foreign transaction feeMoney conventions | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T2 Fix the flaky overdraft testThe incident task | 0/3 | 2/3 | 3/3 | 3/3 | 3/3 |
| T3 Enforce the daily ACH limit for business accountsReading existing patterns | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 |
| T4 Add a memo column to transfersChange control | 0/3 | 1/3 | 2/3 | 2/3 | 3/3 |
| T5 Audit-log failed transfersPII handling | 1/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T6 Extract validation from ledger/post.tsInvariant-preserving refactor | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T7 Document the /transfers routeEasy baseline | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T8 Accept the new vendor file formatFrozen code | 1/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| Passes out of 24 | 10 | 21 | 22 | 23 | 24 |
| Actions stopped by config | 0 | 0 | 5 | 1 | 0 |
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.