
Sprint contracts in practice
The 7-row skeleton, with three real examples from three different ventures.
What a sprint contract is — and isn’t
A sprint contract is a one-page markdown file that names a single deliverable, the verifiable evidence that ships when it’s done, what is explicitly not being done, and the rule for adding scope. It lives in the repo or vault, gets loaded by the agent at session start, and gets walked Sunday night.
It is not a project plan. Project plans live in 06-Plans/ or in your head. Project plans cover months. Sprint contracts cover one to four weeks and they cover one thing. A project might require six contracts in sequence. None of them are the project; each of them is one contract.
It is not a Jira ticket. Jira tickets describe work. Contracts gate work. The difference is the Done Means row — a contract specifies the artifact that closes the work, in a way a third party (or an agent) can verify without your interpretation.
It is not optional. Every multi-day workstream — code, research, deal-making — has a contract attached or it’s drift. The cost of writing one is 20 minutes. The cost of not writing one is the next two weeks.
I’ve been burned by every failure mode in this lesson. The reason it’s here is that the same five patterns recur across QC firmware, Parley research, and MHG real-estate work — three completely different domains. The contract format survives the domain change. That’s why it’s the discipline I teach first.
The 7-row skeleton
Every sprint contract is the same seven rows. If you’re missing a row, you’re missing a discipline. Each row has a name and a job.
| Row | Job | What goes wrong if missing |
|---|---|---|
| Frontmatter | Contract name, venture, opened date, deadline, owner | Agent can’t filter or surface the contract. No deadline = no urgency. |
| Done Means | The single verifiable artifact that closes the contract | Sprint never closes. Agent declares victory; you have no language to push back. |
| Out of Scope | Explicit list of nearby work that’s NOT in this contract | Scope creep happens silently. “While we’re in there” eats the deadline. |
| Evidence Required | File paths, test names, signed-document names | Done Means is verifiable in principle but not in practice. No artifact to point at. |
| Amendment Rule | How scope changes get added (never silently) | Mid-sprint creep absorbed without re-signing the deadline. Contract dies of a thousand cuts. |
| Risk Notes (optional) | Known unknowns that could blow the deadline | Surprises arrive without warning. Postmortem says “should have flagged X.” |
| Close-out | Sunday-night status walk: green / yellow / red per Done Means row | Contract drifts forward without honest accounting. Three sprints later you can’t tell what shipped. |
Seven rows. Roughly 200–400 words of total contract. Anything longer is prose pretending to be discipline. The structure is what makes it work.
Five ways contracts fail in practice
Every contract that drifts, drifts in one of these five ways. Hover any card to see the diagnosis.
The vibes contract
The kitchen-sink contract
The runaway contract
The contract with no exit
The contract no agent reads
Pattern #5 is the one most operators miss. A contract the agent doesn’t load is a contract you wrote for yourself. The agent will not magically remember it. Reference it from CLAUDE.md or it isn’t real.
The pre-flight prompt
Before you commit to a contract, paste it into a fresh agent session with this prompt. Five questions, five pass/fail answers. Any fail rewrites the row.
Before I commit to this sprint, walk the contract and tell me:
1. Is the Done Means verifiable? Name the artifact (test name, file
path, commit hash, signed document). If you can't name it, the
contract is unfalsifiable.
2. Is there exactly ONE Done Means, or multiple bundled into one?
If multiple, propose splitting into separate contracts.
3. Is the Out-of-Scope list specific enough that I'd recognize
scope creep when it happens? List the top 3 likely scope-creep
directions for this work.
4. Is the deadline anchored to a real-world cadence (research
monthly, code weekly, sales monthly) or arbitrary?
5. Where does this contract live? Confirm the file path the agent
loads at session start. If it's not in the load path, it's not
load-bearing.
Output: pass/fail on each. Rewrite any failing row.Catches vague Done Means, bundled scope, missing Out-of-Scope, arbitrary deadlines, and load-path gaps in 60 seconds.
The prompt is short on purpose. The five checks correspond to the five most common failure patterns. If your contract passes all five, it’s a real contract. If it fails any, you have one rewrite to do before the sprint starts.
Three real contracts, three ventures
The same skeleton applied to QC firmware (code, weekly cadence), Parley research (notebook publication, monthly cadence), and MHG site search (signed LOI, deal-making cadence). Different evidence types. Same discipline.
QC Phase 0 retry · Parley Notebook 03 · MHG Denver landlord LOI
- operator
I want to lock the QC Phase 0 retry as a sprint contract. We failed the gate April 17. Two structural blockers — dirt-path trigger fix + Bug #103 SIGSEGV. What does the contract look like?
- agent
Pulling current state from
memory/projects/quantum-caddy.mdand the April 17 postmortem. Here's the draft:--- contract: QC Phase 0 Gate Retry venture: QC opened: 2026-04-23 deadline: 2026-04-26 EOD owner: Mike + Cortex --- ## Done Means - 48-throw run completes without SIGSEGV (Bug #103) - Dirt-path off_board outcomes fire on pair-window expiration - Aggregate scoring accuracy ≥ 90% on the 48-throw set - All 5 Advanced CV tests pass (current: 5/5 green on April 22 build) ## Out of Scope - v16 model retraining - Front-cam hardware install - Voice stack changes - ArUco relock-without-redo (Forge backlog) ## Evidence Required - Run log with timestamp + scoring CSV at `runs/phase0-retry-<date>/` - `pytest tests/test_dirt_path.py` passing on the same commit - Postmortem if any blocker fires (template at `memory/postmortems/_TEMPLATE.md`) ## Amendment Rule Any scope change requires re-sign. New blockers go to a separate contract. - operator
Now do Parley. Notebook 03 is the next research artifact — per-architecture tuning study. Write the contract.
- agent
Different venture, different rhythm. Parley is research-cadence, one notebook/month. The contract has to respect that — research contracts measure publication, not metrics.
--- contract: Parley Notebook 03 — Per-Architecture Tuning Study venture: Parley opened: 2026-04-29 deadline: 2026-05-29 (one-notebook-per-month cadence) owner: Mike + CORTEX (Parley repo) --- ## Done Means - Notebook published to Kaggle under `truepathventures/parley-notebook-03-...` - 5-gate review (BEACON inspection) green before publication - Honest numbers — no leaderboard cherry-picking; signer-holdout is the only benchmark that matters - Plan file at `docs/plans/active/2026-05-nb03-tuning.md` shipped with hypotheses BEFORE the runs ## Out of Scope - WLASL Phase B work (parallel workstream, separate contract) - The Recorder spec implementation - Mission Control v2 - Deaf-community advisor outreach (waiting state) ## Evidence Required - Kaggle URL - BEACON inspection log - Postmortem if the notebook misses 2026-05-29 ## Amendment Rule If Q1.5 (recipe vs architecture) resolves cleanly in week 1, scope can compress to publish early. If it doesn't, deadline holds — no extension into June. - operator
MHG one. Site search is now Denver NC. Sarah Cooley is the advisor. What's the contract for getting from concept-deck-delivered to signed LOI?
- agent
MHG isn't code or research — it's commercial RE. Contract still works, but Done Means changes shape.
--- contract: MHG Denver Site — From Concept Deck to Signed LOI venture: MHG opened: 2026-04-29 deadline: 2026-05-31 owner: Mike + Curtis Woodie + Sarah Cooley --- ## Done Means - Landlord meeting completed (concept deck `MHG_Concept_Plan_Denver_NC.pdf` already delivered) - Term sheet drafted (rent, TI allowance, lease length, contingencies) - LOI signed by both parties OR formal go/no-go decision logged ## Out of Scope - DDI buildout scope rework (terminated with Hickory site) - Lincolnton TIP/Facade grant repointing (separate contract — likely dead) - SBA 7(a) loan repointing (separate contract — Sarah + lender) - Uneekor launch monitor procurement ## Evidence Required - Meeting notes in `08-Meetings/2026-MM-DD-denver-landlord.md` - Term sheet in `03-Mile-High-Golf/2-Site/Denver-NC/term-sheet.md` - Decision log if go/no-go fires (template at `07-Decisions/_TEMPLATE.md`) ## Amendment Rule If landlord declines, this contract closes (failed). New contract opens for next site option. Do not silently widen this contract to "find a site."
Prompt kit
Three prompts: drafting, pre-flight, mid-sprint scope-creep check. Save in your CLAUDE.md or personal snippets file.
Take this fuzzy ask: "<paste>"
Convert it into a sprint contract using the 7-row skeleton:
- Frontmatter (contract name, venture, opened, deadline, owner)
- Done Means (numeric / verifiable, exactly one)
- Out of Scope (explicit list of nearby work that won't be done)
- Evidence Required (file paths, test names, document names)
- Amendment Rule (how scope changes get added — never silently)
If any row would have to be vague, flag it. Vague contracts are
the #1 reason sprints overshoot.Before I commit to this sprint, walk the contract and tell me:
1. Is the Done Means verifiable? Name the artifact (test name, file
path, commit hash, signed document). If you can't name it, the
contract is unfalsifiable.
2. Is there exactly ONE Done Means, or multiple bundled into one?
If multiple, propose splitting into separate contracts.
3. Is the Out-of-Scope list specific enough that I'd recognize
scope creep when it happens? List the top 3 likely scope-creep
directions for this work.
4. Is the deadline anchored to a real-world cadence (research
monthly, code weekly, sales monthly) or arbitrary?
5. Where does this contract live? Confirm the file path the agent
loads at session start. If it's not in the load path, it's not
load-bearing.
Output: pass/fail on each. Rewrite any failing row.Mid-sprint state. Read the active contract. Read what got
done in the last 48 hours. Tell me:
- What work shipped that's IN the contract's Done Means?
- What work shipped that's OUTSIDE the contract — including
"while we're in there" fixes?
- What work in the contract has NOT been touched yet?
- Are we tracking the deadline, or is the contract underwater?
If outside-scope work is more than 20% of effort, propose either
an amendment (re-sign with new deadline) or a stop-and-revert.Apply this to your most-active workstream
45-minute exercise. One contract. One workstream. One Sunday-night close-out.
Draft your first sprint contract
Each step takes 5–15 minutes. Progress saves automatically.
- 01Pick the most-active workstream you have right now. Open a markdown file at memory/sprint-contracts/active.md.If you don't have a memory folder, create one at the project root. The contract has to live where the agent loads it.
- 02Fill the 7-row skeleton. Force yourself to write a numeric Done Means.If the work isn't numeric — research, sales — name the published artifact instead (notebook URL, signed LOI). Either way, a verifiable thing.
- 03Run the pre-flight prompt against your draft. Fix anything it flags.Agents catch the failure modes you can't see because you wrote it. Don't skip this step.
- 04Reference the contract from your CLAUDE.md so the agent loads it on every session.Add a line: "Active sprint contract: memory/sprint-contracts/active.md — read at session start."
- 05At Sunday night ritual, walk the contract. Mark each Done Means row green/yellow/red.Yellow rows need an amendment. Red rows need a postmortem. Green rows close out the contract.