AI Powerhouse · The Contract
01 / 36
←/→ · T timer

TIME.

Pens down — debrief

press T to reset
Meeting Select the workshop · the front of the work

.

Last time you made the agent prove its work. Today we go to the front: the ticket. A vague ticket makes the agent guess. Today you learn to write tickets an agent can run.

The rule of the day: one ticket travels with you. Every lab fills more of its contract.
The workflow · where we are

Back to the front.

Document: decisions become context for the next task a later session
Specifyyou · the front · today
Generatethe agent
Comprehendyou · ✓ last time
01Aligngrill until you agree← today, deeper
02Planwrite it down as a contract← today, deeper
03Executethe agent builds/implement · today's payoff
04Reviewprove it works✓ last session
The ticket you got · fresh from the backlog
● Open #47 · opened 2 hours ago needs-triage
Share lists with your team + see changes live

Customers keep asking to work on a todo list together with their team. They want to share a list and see each other’s changes right away, without having to refresh.

They should also see who else is working in the list.

Sales says this is blocking two deals, so it would be great to have this soon.

Hand it straight over · what the agent hears

It won’t ask. It guesses.

● Open #47 · opened 2 hours ago needs-triage
Share lists with your team + see changes live

Customers keep asking to work on a todo list together with their team. They want to share a list1 and see each other’s changes right away, without having to refresh2.

They should also see who else is working3 in the list.

Sales says this is blocking two deals, so it would be great to have this soon.

1“share a list”
becomes → Invites, roles, emails. A week the ticket never asked for.
2“right away”
becomes → WebSocket servers. New infra, new failure modes — for a speed nobody asked to measure.
3“see who’s working”
becomes → Live cursors, presence. A nice demo. Not the deal.
The thesis · write this down
A ticket is agent-ready
when it’s a contract.
01GoalWhat outcome does this deliver?grill
02Non-goalsWhat must this NOT do?grill
03ScopeWhere does the work happen?grill
04Done-whenWhen does the agent stop? Yes/no checkable.spec
05EvidenceHow do we know, without trusting its word?spec
06AutonomyAFK, or in-the-loop?tickets
The route · four skills, one gate

Each step fills fields.

stuck on an unknown?/handoff → research or prototype session → /handoff back— the round trip
/grill-with-docsargue it out, one question at a time→ 01 · 02 · 03
/to-specwrite the decisions down→ 04 · 05
/to-ticketscut thin slices, sort each→ 06 · per slice
/implementchecks all six fields — refuses if any are empty, then buildsthe gate
skill lineage: Matt Pocock’s skills repo, adapted for this course · /implement is ours
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
The map · two ways to give an agent more

Two axes. Climb one at a time.

Agency — how far one agent goes alone Orchestration — how many run at once
today ↑one agent, further, safely next session →many agents at once
Today: agencyThe contract lets one agent go further without you watching every step.
Not yet: orchestrationMore agents multiplies mistakes too. First make one run safe.
The ruleMove up one axis at a time.Both at once is how teams get burned.
after Addy Osmani, “Agentic Autonomy Levels” (2025)
Section 02 / 5block one · argue it out, park the unknowns

.

you are hereSpecify grillGenerateComprehend
The first skill · /grill-with-docs

It grills you. It writes it down.

It grills you
“You said ‘account’ — do you mean the customer or the user?”
“Your glossary says ‘cancel’ means X. You seem to mean Y. Which is it?”
“Your code cancels the whole order. You just said partial. Which is right?”
One hard question at a time. It checks your plan against your code and the words your team already agreed on.
It writes the answers down
CONTEXT.md a glossary — the exact words your team agrees on, and nothing else
docs/adr/ decision records — why you chose this, kept for the next person
Written the moment you decide — not saved up for later.
based on Matt Pocock’s grill-with-docs skill
Compound engineering · why we grill first

Each run leaves the next one smarter.

Step 1Grillargue it out — pin every vague word to something you can test
Step 2Write it downthe decisions land in CONTEXT.md and docs/adr/ as you make them
Next runStarts aheadit reads the docs first — the settled questions never come up again
feeds back — every pass, less to argue
after Kieran Klaassen, “compound engineering”
▶ Live demo

Grill the multiplayer ticket.

01 / NowWatch
Ticket #47 goes into /grill-with-docs. Watch each vague phrase get pinned down.
  • Run it on #47one question at a time — let it push back
  • Each vague phrase gets pinned“right away”, “share”, “who’s working”
  • Wishes turn into numberstestable, not feelings
  • It stalls on a real unknownnobody in the room can answer it
02 / NextYou
First watch how we handle the unknown: the round trip. Then you grill your own ticket.
Lab 1 →
after the round trip · 20 min
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
The move · /handoff, twice

The round trip.

Session AThe grillknows the ticket, hits the unknown — and parks it instead of guessing
/handoffthe question travels
Session B · freshResearch / prototypeone job only: answer the question against the real codebase
/handoffthe answer travels back
Session AThe grill, resumednow with facts — the decision lands and the grilling goes on
Sessions stay small. Each has one job.
The handoff file carries the context. Written, not remembered.
▶ Live demo

The round trip, live.

01 / NowWatch
The transport question leaves the grill, gets answered, and comes back.
  • /handoff the transport questionthe grill writes it to a file
  • A fresh session researchesreads our real codebase, not blog posts
  • It comes back as a recommendationone answer, in writing
  • /handoff back — the grill resumesnow deciding with a fact, not a guess
02 / NextYou
In Lab 1, when your grill stalls on an unknown: don’t guess. /handoff the question and keep grilling what you can answer.
Lab 1 →
hands on · 20 min
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
The other branch

Some answers you have to feel.

you
Book the venue
Send the invites
Buy oat milkjust added
your teammate
Book the venue
Send the invites
Buy oat milkappeared 3s later · no refresh
Lab 1hands on · 20 min

Grill your ticket.

01
Paste your ticketor let Rovo fetch it from Jira — a copied text is fine too
02
Run /grill-with-docsanswer one question at a time. Don’t rush it.
03
Catch the non-goalsanything tempting that is not this ticket — say it, and make sure it’s written down
04
Stuck on an unknown? /handoff itpark it in its own session. Keep grilling what you can answer.
20:00
T start / pause
You're done when
You can say your ticket's goal in one sentence — and you have at least one honest non-goal.
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
Break.
10 minutes
When we're back: the spec — writing the decisions down so they can't evaporate.
Section 03 / 5block two · done-when + evidence

.

you are hereSpecify specGenerateComprehend
From talk to text · why write it down

Agreement evaporates.
A contract doesn’t.

01Goalone clear outcome✓ the grill
02Non-goalsinvites · presence · sub-second✓ the grill
03Scopelist page · server actions · db✓ the grill
06Autonomywaits for the sortblock three
Field four · done-when

Where the agent stops.

✓ Checkable — yes or no
Two browsers show the same list
A new task appears within 5 seconds, no refresh
All existing single-user tests still pass
each line answers yes or no — the agent knows when to stop
✗ A wish
“works well”
“feels fast”
“users are happy”
no line can be checked — so the agent stops wherever it likes
Field five · evidence

Proof without trust.

Giventwo browsers have the same list open
Whenbrowser A adds “Buy oat milk”
Thenbrowser B shows it within 5 seconds, without a refresh
this scenario becomestests/e2e/live-sync.spec.ts— last session’s discipline, wired into the ticket
▶ Live demo

Write the spec.

01 / NowWatch
The grill session runs /to-spec. The decisions become a document with teeth.
  • Run /to-speceverything decided flows into the document
  • Read the done-when listevery item yes/no — no “works well”
  • Read the scenarios backwould they catch a wrong build?
  • It lands in the trackerfields 04 and 05: filled
02 / NextYou
Same move on your grilled ticket: /to-spec, then read it back hard.
Lab 2 →
hands on · 15 min
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
Lab 2hands on · 15 min

Write yours.

01
Run /to-speclet it draft — then read every line back
02
Fix the wishesevery done-when item must answer yes or no. “Works well” is not a stopping condition.
03
Stress the scenariosif the agent built it wrong, would a scenario catch it?
15:00
T start / pause
You're done when
At least 3 checkable done-when items, and at least 2 Given / When / Then scenarios.
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
Section 04 / 5block three · thin slices, two piles

.

you are hereSpecify ticketsGenerateComprehend
Cut thin · vertical slices

Every slice demoable.

the epic ↓UIServerData
01 first
Walking skeletonthe list refreshes itself by polling — crude, complete, shippableall 3 layers
02
Presence badgesee who has the list openall 3 layers
03
Conflict toasttwo edits collide → tell the userall 3 layers
04 blocked
Transport upgradeSSE — only if polling isn’t enoughwaits for proof
The sort · field six

Two piles. Three questions.

Q1How fast would we know it went wrong?
Q2How cleanly can we undo it?
Q3What would prove it right?
AFKThe agent runs alone, start to finish. You review the evidence after.label: ready-for-agent
In the loopYou stay at the wheel. The agent stops and confirms at checkpoints.label: ready-for-human
the three questions: Addy Osmani, “Agentic Autonomy Levels”
▶ Live demo

Cut and sort, live.

01 / NowWatch
The spec goes into /to-tickets. Out come slices — each a full contract.
  • Run /to-tickets on the specthe epic becomes thin slices
  • Each slice is a full contractall six fields, every one
  • The sort, out loudthree questions per slice → AFK or in-the-loop
  • Labels land in the trackerready-for-agent · ready-for-human
02 / NextYou
Cut yours. Sort yours. Say the three questions out loud for every slice.
Lab 3 →
hands on · 15 min
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
Lab 3hands on · 15 min

Cut and sort yours.

01
Run /to-ticketspush for thin, vertical slices — each one demoable
02
Make slice one a walking skeletoncrude, end-to-end, real. Resist making it pretty.
03
Sort each slice out loudthe three questions — then AFK or in-the-loop. Not by mood.
15:00
T start / pause
You're done when
2+ slices, each carrying the full contract. At least one marked AFK.
The contract 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
Break.
10 minutes
When we're back: the payoff. A skill that reads your contract — and refuses bad tickets.
Section 05 / 5block four · the contract, enforced

.

you are hereSpecify Generate /implementComprehend
The gate · /implement

A skill that can say no.

>/implement 52
Reading ticket #52 “polish the dashboard” … checking the contract.
REFUSED — this ticket is not a contract yet.
Missing: Done-when · Evidence
Fill them with /to-spec, then run me again. Commented on the ticket.
one run = one ticket·no merge — it stops at the evidence packet·autonomy field sets its posture
▶ Live demothe finale

/implement on the skeleton.

01 / NowWatch
The walking-skeleton ticket — a full contract — goes in. Watch the whole chain pay off.
  • The gate passessix fields present — ticket claimed, branch cut
  • Tests come from your evidence fieldthe Given / When / Thens become the tests
  • TDD: red, then greenlast session’s loop, now run by the skill
  • The finale: two browsersa task appears on the other screen. No refresh.
02 / NextYou
Tomorrow: /implement on the AFK slice you cut today. Runs or refuses — both are wins.
Homework →
on your own · tomorrow
Contract complete 01Goal02Non-goals03Scope04Done-when05Evidence06Autonomy
What comes back · not a summary

The evidence packet.

PR #61 · ticket-49-walking-skeleton · opened by /implement
What changed
In plain words — what moved, and where.
Scenario → proof
Each Given / When / Then, with its test result. ✓ green
Decisions the contract didn’t pin down
Flagged in one place, not buried.
Not covered
Stated — so nobody assumes it.
You review claims against proof — not a cold diff.
The flags show where your contract was thin — that feeds the next grill.
Don’t accept a summary. A summary is the agent grading its own homework.
Homework · tomorrow, 30 minutes

Run /implement on your AFK slice.

It runs → review the evidence packetScenario → proof first. Diff second. Did your evidence field earn its keep?
It refuses → fill the field it namesThat's the gate doing its job. Fill it, run again.
Bring the result to the next sessionPacket or refusal — both are wins, and both are material.
Next session · the other axis

Many agents at once.

Agency — how far one agent goes alone Orchestration — how many run at once
today ✓one agent, further, safely next →worktrees · parallel runs · your ceiling
What you earned todayA contract per ticket means an agent can run one safely. That was the climb.
What comes nextSeveral contracts, several agents, side by side — and finding your personal review ceiling.
The warningRunning ten agents badly has a name: fleet cosplay.One axis at a time. Same rule as today.
“fleet cosplay”: Addy Osmani, “Agentic Autonomy Levels” (2025)
Next session · a real orchestration pattern

A cheap agent, calling a smart one.

C ClaudeDevs @ClaudeDevs
A few patterns we frequently use with Fable 5:

Use Fable 5 as an “advisor.”

An executor (Sonnet 5) calls Fable 5 for guidance.

Most tokens are billed at the lower executor rate.
Jul 7, 2026
ExecutorSonnet 5does the work — billed at the cheaper rate
asksguides
AdvisorFable 5called only for the hard calls
@ClaudeDevs on X · Jul 7, 2026
Close · what you own now


Six fields make a ticket a contract. Four skills fill them: /grill-with-docs, /handoff, /to-spec, /to-tickets. And one enforces them: /implement refuses any ticket that isn't ready — and tells you which field to fix.

All five are on the course companion page — same place as last time. The gate is yours now.

01Goal 02Non-goals 03Scope 04Done-when 05Evidence 06Autonomy