Operating · Lesson 11 — Sprint contracts in practice
O11Operating
Operating · Lesson 11● live

Sprint contracts in practice

The 7-row skeleton, with three real examples from three different ventures.

20 min read · 45 min applyprereq: Operating 01

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.

RowJobWhat goes wrong if missing
FrontmatterContract name, venture, opened date, deadline, ownerAgent can’t filter or surface the contract. No deadline = no urgency.
Done MeansThe single verifiable artifact that closes the contractSprint never closes. Agent declares victory; you have no language to push back.
Out of ScopeExplicit list of nearby work that’s NOT in this contractScope creep happens silently. “While we’re in there” eats the deadline.
Evidence RequiredFile paths, test names, signed-document namesDone Means is verifiable in principle but not in practice. No artifact to point at.
Amendment RuleHow 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 deadlineSurprises arrive without warning. Postmortem says “should have flagged X.”
Close-outSunday-night status walk: green / yellow / red per Done Means rowContract 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.

01

The vibes contract

claim looks like"Build the smart-board firmware. Should take a couple days."
what’s missingNo success criterion that's measurable. No artifact list. No exit rule. Day three the agent declares victory and you have no way to push back without sounding like the bad guy.
the moveEvery contract has a Done Means row that names a verifiable artifact: a passing test, a hash, a screenshot, a numeric threshold. If you can't write it, you don't have a contract — you have a wish.
02

The kitchen-sink contract

claim looks like"Phase 0: ship CV pipeline + LLM coach + voice stack + sensor pivot + patent draft."
what’s missingFive contracts pretending to be one. Each has its own Done Means, its own failure mode, its own evidence trail. Bundling them means none of them can fail cleanly — partial wins masquerade as progress.
the moveOne contract = one Done Means. If you have five Done Means, you have five contracts. Sequence them. Phase-0 success means contract #1 ships before #2 starts.
03

The runaway contract

claim looks like"While we're in there, also fix the heartbeat retry, refactor the pair-window, and update the ArUco calibration UX."
what’s missingMid-sprint scope creep is the #1 reason contracts overshoot. The original Done Means becomes unreachable; the new work has no contract at all.
the moveAmendment protocol. New work either gets added explicitly to the current contract (re-sign with a new deadline) or written as a separate contract for the next sprint. Never silently merged.
04

The contract with no exit

claim looks like"Done when the model is good."
what’s missingGood is unfalsifiable. "Good" today is "better" tomorrow. The agent can always find one more thing to tune. You burn another week.
the moveNumeric exit. F1 ≥ 0.95 on a named holdout. P95 latency < 800ms. 48 throws scored without a SIGSEGV. The number is the gate; the number is the exit.
05

The contract no agent reads

claim looks likeDoc lives in Notion. Agent never sees it. Sprint runs on chat history.
what’s missingIf the agent doesn't load the contract at session start, it's not a contract — it's a status doc you wrote for yourself.
the moveContract lives in the repo or vault as a markdown file the agent reads on session start. CLAUDE.md or a soul file points to <code>memory/sprint-contracts/active.md</code>. If it's not in the agent's load path, it's not load-bearing.

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.

Pre-flight a sprint contract
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.

One operator, three ventures, one skeleton

QC Phase 0 retry · Parley Notebook 03 · MHG Denver landlord LOI

  1. 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?

  2. agent

    Pulling current state from memory/projects/quantum-caddy.md and 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.
  3. operator

    Now do Parley. Notebook 03 is the next research artifact — per-architecture tuning study. Write the contract.

  4. 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.
  5. 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?

  6. 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.

Draft a contract from a fuzzy ask
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.
Pre-flight (run before committing)
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 scope-creep check
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.

0/5
  1. 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.
  2. 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.
  3. 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.
  4. 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."
  5. 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.
Operating tier · what's next

After this lesson