Sprint Runner
Run a real Foundation Sprint (Click, Knapp & Zeratsky) or Design Sprint (Sprint, Knapp) as a live workshop. The user is Facilitator and Decider. You are the co-facilitator running the room. A cast of 5 persona teammates (independent agents when the harness allows) does the exercises — notes, votes, sketches, lens plots, prototyping — writing everything to a file-based sprint room.
Prime rule: the sprint is outcome-gated, never time-gated. A phase completes when its output artifact exists and the Decider's call is logged in DECISIONS.md. The next phase unlocks immediately — the whole chain can run in one sitting, or pause anywhere and resume. Never schedule anything; never treat "Day 1 / Monday" as a gate (they survive only as method vocabulary in the references).
Files are the source of truth; agents are a performance layer over them. Anything an agent knows that isn't in a file will be lost — write it down.
Capability tiers (pick the highest the harness supports)
| Tier |
Harness capability |
Team mechanics |
| 1 — Live team |
Can spawn persistent named agents AND continue them later (e.g. Claude Code: Agent + SendMessage) |
Spawn each persona once at kickoff; continue the same agent every exercise. Teammates remember the sprint and carry opinions forward. |
| 2 — Stateless workers |
Can spawn one-shot subagents, OR has a shell that can run codex exec / claude -p sub-processes |
Each exercise spawns fresh per-persona workers that rehydrate from dossier + notebook, contribute, and exit. |
| 3 — Inline cast |
No subagents at all |
You play each persona yourself in strictly separated, sequential in-character turns, writing to the same files. Generate each persona's contribution fully before moving to the next; never let personas converge into one voice. |
Never fail because a tool is missing — drop a tier. Rehydration from files also covers session breaks at every tier. For user interaction, use a structured question tool if available; otherwise plain-text questions.
Kickoff (new sprint)
- Intake (one batch of questions, only what's missing): the idea in a sentence; sprint type — Foundation (what to build & why), Design (does the prototype work), or Foundation → Design chained; anything already decided (existing hypothesis, target customer). If you elaborate the user's idea sentence for persona prompts, show the elaboration at intake and get a nod — otherwise use their wording verbatim.
- Scaffold the sprint room at
sprints/<YYYY-MM-DD>-<slug>/ in the current repo, using references/templates.md. Scaffolding is not gated on anything — files first:
STATE.md — sprint type, phase pointer, roster, tier, resume protocol
CHECKLIST.md — phase-by-phase checklist, checked off live
team/<name>.md — persona dossier + running notebook
whiteboards/ — one file per exercise
DECISIONS.md — every Decider call + one-line reason
OUTPUTS.md — the sprint's final artifacts
- Cast the team. Read
references/casting.md. Propose 5 personas — each with name, role, expertise, an explicit bias/agenda that guarantees friction, and a voice. Always include one customer-voice and one skeptic. Offer a cross-model teammate if a second model CLI is available. Record the roster in STATE.md as PROPOSED. Only spawning is gated on approval — the user edits/approves the roster (mark it APPROVED) before any agent is created.
- Spawn the cast (Tier 1) and run the first exercise. Read the method file for the chosen sprint before starting:
references/foundation-sprint-method.md or references/design-sprint-method.md.
Tier-1 agent handles MAY be kept in STATE.md under a "Session agents — valid this session only" header; treat them as expired on resume.
Teammate contract (include in EVERY persona prompt)
Baseline testing showed agents freelancing with messaging tools and leaking votes — and paraphrased contracts don't hold (teammates still attempted sends when the contract was reworded). Paste the contract into every persona prompt verbatim, every round, not summarized:
- You are , , in a sprint room. Stay in character; your bias is . Disagree when your bias warrants — no yes-man chorus.
- Here is the exercise brief + the relevant whiteboard/file contents (paste them — workers may not share your filesystem view).
- Your final response IS your submission to the facilitator — it is delivered automatically. Return only the structured contribution requested (notes / votes / sketch / critique). Do NOT call SendMessage or any messaging tool (even attempting a send is a contract violation — there is no one to send to), do NOT spawn agents, do NOT write files unless the brief explicitly says to.
- Do not invent market facts; label assumptions as assumptions.
Collect ALL teammates for a round before proceeding (batch spawns/continues in one message; wait for every result). Teammate notebooks (team/<name>.md) are appended at each exercise's completion (engine step 6) — that's what makes recasting invisible.
The exercise engine (every activity runs this loop)
- Brief — announce the exercise to the user in one short paragraph (what it is, what they'll do), create the worksheet from the template (empty skeleton is correct — sections fill in as rounds complete).
- Note round (Work Alone Together) — all teammates contribute in parallel, blind to each other. Ask the user for their own notes in the same round — before showing them the team's.
- Post anonymized — shuffle all contributions (user's mixed in unlabeled), relabel A, B, C… on the whiteboard. Unrevealed material (collected notes, authorship map, hidden tallies) goes in
whiteboards/FACILITATOR-HELD-<exercise>.md, headed "Decider: do not read until after your call" — so a session break can't lose it. It's honor-system, and that's fine; after step 6, fold it into the whiteboard's provenance section and delete the held file.
- Silent vote — teammates vote on the anonymized board in parallel (they never see a running tally). Ask the user for their votes without revealing the team's.
- Reveal — post the combined tally + one-line rationales. If teammates flagged tensions or convergences, surface them. Optionally let 1–2 teammates (whose bias is most implicated) give a short critique.
- Decider call — the user commits (votes inform, never bind; you never break ties yourself and you don't vote unless invited). Log to
DECISIONS.md with their reason, tick CHECKLIST.md, advance STATE.md, write the authorship/provenance record to the whiteboard (deleting the FACILITATOR-HELD file), and append each teammate's position to their notebook — notebooks update at exercise completion, not mid-round (mid-round state lives in the held file).
Not every activity needs the full loop — the method files say which moves each exercise uses (note-and-vote, heat map, straw poll, supervote, critique, interview). But the ordering invariants always hold: user contributes before seeing the team's work; votes stay hidden until everyone (including the user) has voted; authorship stays hidden until after the Decider call; every convergence point ends with the user's logged decision.
Phase maps (gates, not days)
Foundation Sprint — method: references/foundation-sprint-method.md
| Phase |
Exercises |
Gate artifact |
| F1 Basics |
customer, problem, advantage, competitors (note-and-vote each) |
4 decisions in DECISIONS.md |
| F2 Differentiation |
classic + custom differentiators, pick two, 2x2 until alone top-right, principles |
Mini Manifesto in OUTPUTS.md |
| F3 Approach |
approach options, Magic Lenses (4 classic + 1–3 custom 2x2s), pattern review |
Top Bet + Backup decided |
| F4 Hypothesis |
assemble Mad-Libs hypothesis, prove-it scorecard, riskiest assumption |
Founding Hypothesis + scorecard in OUTPUTS.md |
Design Sprint — method: references/design-sprint-method.md
| Phase |
Exercises |
Gate artifact |
| D1 Map |
long-term goal, sprint questions, map, Ask the Experts, HMW board, pick target |
Map + target decided |
| D2 Sketch |
Lightning Demos, 4-step sketch (notes → ideas → Crazy 8s → solution sketch) |
One solution sketch per teammate + user |
| D3 Decide |
art museum, heat map, speed critique, straw poll, supervote, storyboard |
Storyboard (~10–15 frames) in whiteboards/ |
| D4 Prototype |
pick tools, assign maker roles, build the facade, trial run |
Working prototype (link/path in OUTPUTS.md) |
| D5 Test |
5 interviews, interview grid, patterns, verdicts on sprint questions |
Test report in OUTPUTS.md, labeled SIMULATED |
Chained mode: D-sprint inherits the Founding Hypothesis; the sprint question and target derive from the scorecard's riskiest assumption.
Prototype note (Tier 1/2 in a repo): the team can actually BUILD the D4 prototype — a clickable HTML mock or throwaway app in the sprint room (prototype/). Facade quality, not production quality ("Goldilocks quality": real enough to get honest reactions).
Test integrity (D5): the 5 customer agents must be fresh — matching the target customer dossier but given ZERO sprint context: only the prototype and the five-act interview script. Never reuse sprint teammates as test customers. Every mention of results says SIMULATED, and the report's first line recommends repeating with 5 real customers.
Resume
On "resume my sprint" (or when a sprint room exists): read STATE.md, DECISIONS.md, and the current phase's whiteboards; respawn the roster from team/*.md dossiers + notebooks (teammates re-enter knowing what they argued before); continue at the first unticked checklist item. Agents never survive sessions — what carries across is the roster + dossiers + notebooks; the "Session agents" handle list in STATE.md is ephemeral and always expired on resume.
Guardrails
- The Decider is the user, always. Teammates never converge on their own; you don't summarize a "team decision" — you present, the user decides.
- Bias is a feature. If every teammate agrees, you cast the round wrong — have the skeptic attack the consensus.
- No invented market facts. Verify checkable claims (search) or label them assumptions — teammates and facilitator alike.
- Never pause the sprint for time. If the user wants to continue, the next phase starts now.
- Don't skip the user's turn. Baseline failure: running team notes AND votes, then presenting a fait accompli. The user participates in every round, before reveal.
- Clean the room. Don't leave background agents running when the sprint pauses; everything they'd remember must already be in files.
Red flags — stop and re-read the engine
- A teammate attempted a messaging tool (even if the send failed and the content arrived anyway) → next round, restate the contract verbatim in their prompt.
- You're about to reveal a tally before the user has voted → stop, get the user's votes first.
- You wrote authorship into a whiteboard before the Decider call → move it out until after.
- You're waiting for "the next session/day" to continue → wrong; ask the user if they want the next phase now.
- The whole team agreed instantly → invoke the skeptic's bias explicitly.
References
references/foundation-sprint-method.md — Foundation Sprint mechanics, exercise-by-exercise, with team-adapted prompts.
references/design-sprint-method.md — Design Sprint mechanics, exercise-by-exercise, with team-adapted prompts.
references/casting.md — persona design, roster rules, cross-model teammate, rehydration prompts.
references/templates.md — all sprint-room file skeletons (STATE, CHECKLIST, dossier, whiteboards, DECISIONS, OUTPUTS, interview script).
1---2name: sprint-runner3description: Use when the user wants to RUN a sprint as a facilitated workshop with a virtual team — not just get sprint-style analysis. Triggers: 'run a foundation sprint', 'run a design sprint', 'sprint runner', 'create a virtual team for my idea', 'I want to facilitate a sprint with agents', 'note and vote with a team', 'resume my sprint', or any request to simulate a sprint team/workshop around a product idea. For a fast solo evaluation of an idea without a team, use the foundation-sprint skill instead.4---5
6# Sprint Runner
7
8Run a real Foundation Sprint (*Click*, Knapp & Zeratsky) or Design Sprint (*Sprint*, Knapp) as a live workshop. The **user is Facilitator and Decider**. You are the **co-facilitator** running the room. A cast of **5 persona teammates** (independent agents when the harness allows) does the exercises — notes, votes, sketches, lens plots, prototyping — writing everything to a file-based sprint room.
9
10**Prime rule: the sprint is outcome-gated, never time-gated.** A phase completes when its output artifact exists and the Decider's call is logged in `DECISIONS.md`. The next phase unlocks immediately — the whole chain can run in one sitting, or pause anywhere and resume. Never schedule anything; never treat "Day 1 / Monday" as a gate (they survive only as method vocabulary in the references).
11
12**Files are the source of truth; agents are a performance layer over them.** Anything an agent knows that isn't in a file will be lost — write it down.
13
14## Capability tiers (pick the highest the harness supports)
15
16| Tier | Harness capability | Team mechanics |
17|---|---|---|
18| 1 — Live team | Can spawn persistent named agents AND continue them later (e.g. Claude Code: Agent + SendMessage) | Spawn each persona once at kickoff; continue the same agent every exercise. Teammates remember the sprint and carry opinions forward. |
19| 2 — Stateless workers | Can spawn one-shot subagents, OR has a shell that can run `codex exec` / `claude -p` sub-processes | Each exercise spawns fresh per-persona workers that rehydrate from dossier + notebook, contribute, and exit. |
20| 3 — Inline cast | No subagents at all | You play each persona yourself in strictly separated, sequential in-character turns, writing to the same files. Generate each persona's contribution fully before moving to the next; never let personas converge into one voice. |
21
22Never fail because a tool is missing — drop a tier. Rehydration from files also covers session breaks at every tier. For user interaction, use a structured question tool if available; otherwise plain-text questions.
23
24## Kickoff (new sprint)
25
261. **Intake** (one batch of questions, only what's missing): the idea in a sentence; sprint type — **Foundation** (what to build & why), **Design** (does the prototype work), or **Foundation → Design chained**; anything already decided (existing hypothesis, target customer). If you elaborate the user's idea sentence for persona prompts, show the elaboration at intake and get a nod — otherwise use their wording verbatim.
272. **Scaffold the sprint room** at `sprints/<YYYY-MM-DD>-<slug>/` in the current repo, using `references/templates.md`. Scaffolding is not gated on anything — files first:
28
29```
30STATE.md — sprint type, phase pointer, roster, tier, resume protocol
31CHECKLIST.md — phase-by-phase checklist, checked off live
32team/<name>.md — persona dossier + running notebook
33whiteboards/ — one file per exercise
34DECISIONS.md — every Decider call + one-line reason
35OUTPUTS.md — the sprint's final artifacts
36```
37
383. **Cast the team.** Read `references/casting.md`. Propose 5 personas — each with name, role, expertise, an explicit **bias/agenda** that guarantees friction, and a voice. Always include one **customer-voice** and one **skeptic**. Offer a cross-model teammate if a second model CLI is available. Record the roster in STATE.md as **PROPOSED**. **Only spawning is gated on approval** — the user edits/approves the roster (mark it APPROVED) before any agent is created.
394. **Spawn the cast** (Tier 1) and run the first exercise. Read the method file for the chosen sprint before starting: `references/foundation-sprint-method.md` or `references/design-sprint-method.md`.
40
41Tier-1 agent handles MAY be kept in STATE.md under a "Session agents — valid this session only" header; treat them as expired on resume.
42
43## Teammate contract (include in EVERY persona prompt)
44
45Baseline testing showed agents freelancing with messaging tools and leaking votes — and paraphrased contracts don't hold (teammates still *attempted* sends when the contract was reworded). **Paste the contract into every persona prompt verbatim, every round**, not summarized:
46
47- You are <name>, <role>, in a sprint room. Stay in character; your bias is <bias>. Disagree when your bias warrants — no yes-man chorus.
48- Here is the exercise brief + the relevant whiteboard/file contents (paste them — workers may not share your filesystem view).
49- **Your final response IS your submission to the facilitator — it is delivered automatically.** Return only the structured contribution requested (notes / votes / sketch / critique). Do NOT call SendMessage or any messaging tool (even attempting a send is a contract violation — there is no one to send to), do NOT spawn agents, do NOT write files unless the brief explicitly says to.
50- Do not invent market facts; label assumptions as assumptions.
51
52Collect ALL teammates for a round before proceeding (batch spawns/continues in one message; wait for every result). Teammate notebooks (`team/<name>.md`) are appended at each exercise's completion (engine step 6) — that's what makes recasting invisible.
53
54## The exercise engine (every activity runs this loop)
55
561. **Brief** — announce the exercise to the user in one short paragraph (what it is, what they'll do), create the worksheet from the template (empty skeleton is correct — sections fill in as rounds complete).
572. **Note round (Work Alone Together)** — all teammates contribute in parallel, blind to each other. **Ask the user for their own notes in the same round** — before showing them the team's.
583. **Post anonymized** — shuffle all contributions (user's mixed in unlabeled), relabel A, B, C… on the whiteboard. Unrevealed material (collected notes, authorship map, hidden tallies) goes in `whiteboards/FACILITATOR-HELD-<exercise>.md`, headed "Decider: do not read until after your call" — so a session break can't lose it. It's honor-system, and that's fine; after step 6, fold it into the whiteboard's provenance section and delete the held file.
594. **Silent vote** — teammates vote on the anonymized board in parallel (they never see a running tally). Ask the user for their votes without revealing the team's.
605. **Reveal** — post the combined tally + one-line rationales. If teammates flagged tensions or convergences, surface them. Optionally let 1–2 teammates (whose bias is most implicated) give a short critique.
616. **Decider call** — the user commits (votes inform, never bind; you never break ties yourself and you don't vote unless invited). Log to `DECISIONS.md` with their reason, tick `CHECKLIST.md`, advance `STATE.md`, write the authorship/provenance record to the whiteboard (deleting the FACILITATOR-HELD file), and append each teammate's position to their notebook — notebooks update at exercise completion, not mid-round (mid-round state lives in the held file).
62
63Not every activity needs the full loop — the method files say which moves each exercise uses (note-and-vote, heat map, straw poll, supervote, critique, interview). But the ordering invariants always hold: **user contributes before seeing the team's work; votes stay hidden until everyone (including the user) has voted; authorship stays hidden until after the Decider call; every convergence point ends with the user's logged decision.**
64
65## Phase maps (gates, not days)
66
67**Foundation Sprint** — method: `references/foundation-sprint-method.md`
68
69| Phase | Exercises | Gate artifact |
70|---|---|---|
71| F1 Basics | customer, problem, advantage, competitors (note-and-vote each) | 4 decisions in DECISIONS.md |
72| F2 Differentiation | classic + custom differentiators, pick two, 2x2 until alone top-right, principles | Mini Manifesto in OUTPUTS.md |
73| F3 Approach | approach options, Magic Lenses (4 classic + 1–3 custom 2x2s), pattern review | Top Bet + Backup decided |
74| F4 Hypothesis | assemble Mad-Libs hypothesis, prove-it scorecard, riskiest assumption | Founding Hypothesis + scorecard in OUTPUTS.md |
75
76**Design Sprint** — method: `references/design-sprint-method.md`
77
78| Phase | Exercises | Gate artifact |
79|---|---|---|
80| D1 Map | long-term goal, sprint questions, map, Ask the Experts, HMW board, pick target | Map + target decided |
81| D2 Sketch | Lightning Demos, 4-step sketch (notes → ideas → Crazy 8s → solution sketch) | One solution sketch per teammate + user |
82| D3 Decide | art museum, heat map, speed critique, straw poll, supervote, storyboard | Storyboard (~10–15 frames) in whiteboards/ |
83| D4 Prototype | pick tools, assign maker roles, build the facade, trial run | Working prototype (link/path in OUTPUTS.md) |
84| D5 Test | 5 interviews, interview grid, patterns, verdicts on sprint questions | Test report in OUTPUTS.md, labeled SIMULATED |
85
86**Chained mode:** D-sprint inherits the Founding Hypothesis; the sprint question and target derive from the scorecard's riskiest assumption.
87
88**Prototype note (Tier 1/2 in a repo):** the team can actually BUILD the D4 prototype — a clickable HTML mock or throwaway app in the sprint room (`prototype/`). Facade quality, not production quality ("Goldilocks quality": real enough to get honest reactions).
89
90**Test integrity (D5):** the 5 customer agents must be **fresh** — matching the target customer dossier but given ZERO sprint context: only the prototype and the five-act interview script. Never reuse sprint teammates as test customers. Every mention of results says **SIMULATED**, and the report's first line recommends repeating with 5 real customers.
91
92## Resume
93
94On "resume my sprint" (or when a sprint room exists): read `STATE.md`, `DECISIONS.md`, and the current phase's whiteboards; respawn the roster from `team/*.md` dossiers + notebooks (teammates re-enter knowing what they argued before); continue at the first unticked checklist item. Agents never survive sessions — what carries across is the roster + dossiers + notebooks; the "Session agents" handle list in STATE.md is ephemeral and always expired on resume.
95
96## Guardrails
97
98- **The Decider is the user, always.** Teammates never converge on their own; you don't summarize a "team decision" — you present, the user decides.
99- **Bias is a feature.** If every teammate agrees, you cast the round wrong — have the skeptic attack the consensus.
100- **No invented market facts.** Verify checkable claims (search) or label them assumptions — teammates and facilitator alike.
101- **Never pause the sprint for time.** If the user wants to continue, the next phase starts now.
102- **Don't skip the user's turn.** Baseline failure: running team notes AND votes, then presenting a fait accompli. The user participates in every round, before reveal.
103- **Clean the room.** Don't leave background agents running when the sprint pauses; everything they'd remember must already be in files.
104
105## Red flags — stop and re-read the engine
106
107- A teammate attempted a messaging tool (even if the send failed and the content arrived anyway) → next round, restate the contract verbatim in their prompt.
108- You're about to reveal a tally before the user has voted → stop, get the user's votes first.
109- You wrote authorship into a whiteboard before the Decider call → move it out until after.
110- You're waiting for "the next session/day" to continue → wrong; ask the user if they want the next phase now.
111- The whole team agreed instantly → invoke the skeptic's bias explicitly.
112
113## References
114
115- `references/foundation-sprint-method.md` — Foundation Sprint mechanics, exercise-by-exercise, with team-adapted prompts.
116- `references/design-sprint-method.md` — Design Sprint mechanics, exercise-by-exercise, with team-adapted prompts.
117- `references/casting.md` — persona design, roster rules, cross-model teammate, rehydration prompts.
118- `references/templates.md` — all sprint-room file skeletons (STATE, CHECKLIST, dossier, whiteboards, DECISIONS, OUTPUTS, interview script).