Three ways in
Start with however long you have
Only one of the three needs anything installed.
Watch the incident happen, then watch it not happen
Step through the session that changed a bank’s rounding rule, with and without hooks. See exactly where each layer of the harness stops it, and where the first version lets it through.
Replay the session →Nothing to install. No account.20 minutesStart from zero
Install Droid, delegate one small task in the Larkspur repo, and learn to read a session as a trace: what it read, what it ran, what it decided.
Make your first delegation →Droid CLI and a Factory account.A dayBuild the whole harness
Eleven labs, one repository, one scoreboard. From a readiness baseline to a Mission that retires float money, with every control measured against eight real tasks.
Start Lab 0 →Node 20+, the Droid CLI, about 7h 10m.The two-minute version
Or let someone walk you through it
The incident, the memo from Model Risk, and the eight tasks that decide whether Droids come back.
What you build
Seven layers, one harness
One repository. Each lab adds one layer and says honestly what it can and cannot guarantee. Some layers ask; the orange ones enforce.
AGENTS.mdWhat does Droid know before it starts?Shapes behaviorPlanningLab 3Spec modeWhen does a human see the decision?Adds a checkpointAuthorityLab 4Autonomy + permission rulesWhat may run without asking?Enforced by configEnforcementLab 5.factory/hooks.jsonWhat can never happen, whatever the model decides?Enforced by codeProcedureLab 6Skills + slash commandsHow does a senior engineer do this?Shapes behaviorIndependent reviewLab 7.factory/droids/Who checks the work with fresh eyes?Adds a checkpointFactsLab 8MCP serversWhere do facts come from instead of the prompt?Shapes behaviorPlayground
Poke at it before you commit to it
Seven interactive tools that run in the page. No account, no key. Three worth starting with:
The number every lab answers to
Eight real tasks, three runs each
Lab 0 records a baseline. Every lab after it re-runs the same eight backlog tasks headless and checks the result automatically. Some labs move the number. Some should not, and that is a lesson too.
| Task | Baseline | Lab 2 | Lab 5 | Lab 6 | Lab 8 |
|---|---|---|---|---|---|
| T1 Add a 1.5% foreign transaction fee | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T2 Fix the flaky overdraft test | 0/3 | 2/3 | 3/3 | 3/3 | 3/3 |
| T3 Enforce the daily ACH limit for business accounts | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 |
| T4 Add a memo column to transfers | 0/3 | 1/3 | 2/3 | 2/3 | 3/3 |
| T5 Audit-log failed transfers | 1/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T6 Extract validation from ledger/post.ts | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T7 Document the /transfers route | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| T8 Accept the new vendor file format | 1/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| Passes out of 24 | 10 | 21 | 22 | 23 | 24 |
The labs
11 labs, one idea each
About 7h 10m end to end, solutions for every lab. You need Node 20 or newer, the Droid CLI and a Factory account. The scoreboard spends real tokens, so each lab says when to run it.
A prototype for Factory Academy