Founder Sprint (Phase 2)
Child of founder. Lean gatekeeper and state machine managing the founder journey from idea to
forge handoff. Four stages with gate enforcement. Picks the next subskill. Updates venture-brief.
NOT a planner, NOT an executor -- a gatekeeper.
Scope: Stage management and gate enforcement only. Sprint picks the right subskill to invoke, checks gate criteria, and advances the venture-brief state. It does NOT do task decomposition, work package creation, owner assignment, or sequencing beyond "which subskill next." Task decomposition is bob's job after forge takes over.
Siblings (parent = founder):
founder-ideation— Phase 1 — adversarial brainstorm + data groundingfounder-validation— Phase 2 — experiments, interviews, evidence capturefounder-business-model— Phase 2 — calculator mode unit economicsfounder-gtm— Phase 3 (deferred) — positioning, distribution, channel selection
Inherited hard rules (from parent founder): HR-1 through HR-11 all apply. Additionally,
HR-V1 through HR-V5 (from validation) and HR-BM1 through HR-BM6 (from business-model) are
enforced through the subskill invocations sprint orchestrates.
The Four Stages
Stage 1: DIAGNOSE
Question: Is there anything worth validating?
Invokes: founder-ideation (Phase 1)
Gate criteria:
- venture-brief has >= 3 ranked ideas with data citations (HR-5)
- 1 idea selected (status:
candidateor better, marked as selected) -
= 3 assumptions listed in
venture-brief.assumptions[] -
= 3 kill criteria across the selected idea (HR-4)
Venture-brief updates on stage entry:
sprint_state:
stage: diagnose
Venture-brief updates on gate pass:
sprint_state:
stage_completed_at:
diagnose: <timestamp>
Abort condition: All ideas scored below kill threshold by adversarial cross-fire.
sprint_state:
stage: aborted
outcome: "no viable ideas — all scored below kill threshold"
abort_reason: "adversarial cross-fire killed all candidate ideas"
Stage 2: EVIDENCE
Question: Do we have enough evidence to commit?
Invokes: founder-validation (Phase 2)
Gate criteria:
- Top-3 riskiest assumptions each have >= 1 experiment with recorded evidence
-
= 1 real interview logged (
interview_count >= 1, HR-V2) - No high-risk viability assumption falsified without either:
- A documented pivot (
pivots[]entry), OR - An explicit
accepted_riskdisposition with user-stated reasoning
- A documented pivot (
Venture-brief updates on stage entry:
sprint_state:
stage: evidence
Venture-brief updates on gate pass:
sprint_state:
stage_completed_at:
evidence: <timestamp>
interview_count: <N>
Abort condition: Viability assumption falsified, user refuses pivot or accept-risk.
sprint_state:
stage: aborted
outcome: "killed at evidence gate"
abort_reason: "viability assumption '[claim]' falsified; user declined pivot"
Stage 3: DECISION
Question: Is this a viable business we should build?
Invokes: founder-business-model (Phase 2), optionally conversion-psychology for CTA work
Gate criteria:
-
business_modelblock populated in venture-brief:pricewith tagunit_econranges (contribution_margin at minimum)decision_rulestateddecision_verdict: GREEN or CONDITIONAL_GO with user acknowledgment
-
forge_briefblock drafted:problem(non-empty)solution(non-empty)success_criteria(non-empty list)non_goals(non-empty list)
Venture-brief updates on stage entry:
sprint_state:
stage: decision
Venture-brief updates on gate pass:
sprint_state:
stage_completed_at:
decision: <timestamp>
business_model: { ... } # populated by founder-business-model
forge_brief: { ... } # drafted during this stage
Abort condition: Calculator mode returns RED on decision rule AND user declines to adjust.
sprint_state:
stage: aborted
outcome: "killed at decision gate — unit economics"
abort_reason: "decision rule returned RED; user declined to adjust pricing/costs"
Stage 4: HANDOFF
Question: Are we ready to build?
Invokes: Nothing — runs a checklist, flips the flag, invokes forge.
Gate criteria:
- All previous stages have
stage_completed_attimestamps -
forge_briefpopulated with all required fields - User gives explicit "ship it" confirmation
Venture-brief updates on gate pass:
sprint_state:
stage: handoff
stage_completed_at:
handoff: <timestamp>
forge_handoff_ready: true
handoff_at: <timestamp>
Handoff method: Sprint routes to forge with explicit spawn prompt:
came_from_founder: true
venture_brief_path: .founder/venture-brief.yaml
forge_brief:
problem: <from venture-brief>
solution: <from venture-brief>
success_criteria: <from venture-brief>
non_goals: <from venture-brief>
complexity_hint: <from venture-brief>
open_questions: <from venture-brief>
Forge reads the brief from the spawn prompt, NOT from ambient session-start discovery.
Abort condition: User changes mind.
sprint_state:
stage: handoff
outcome: "paused at handoff"
forge_handoff_ready: false
# forge_brief remains intact for later
Sprint Operation
On Entry
- Read
venture-brief.yaml. Refuse if missing. - Check
schema_version. Must be2. Refuse with migration guidance if1. - Read
sprint_state.stageto determine current position. - If no
sprint_stateexists, initialize atdiagnose. - Present current state to user:
"Your venture is at stage [STAGE]. Here's what we need to advance: [list gate criteria with checked/unchecked status]"
Advancing
- Check ALL gate criteria for current stage.
- If all pass: advance to next stage. Update venture-brief.
- If some fail: show what's missing and invoke the appropriate subskill.
- Never auto-advance through multiple stages in one invocation.
Subskill Picker
| Current stage | Gate failing on | Invoke |
|---|---|---|
| diagnose | < 3 ranked ideas | founder-ideation with generate_ideas |
| diagnose | < 3 assumptions | Help user list assumptions (direct, no subskill) |
| diagnose | < 3 kill criteria | founder-ideation with evaluate_idea |
| evidence | Top assumptions untested | founder-validation with design_experiment |
| evidence | 0 interviews | founder-validation with draft_interview |
| evidence | Evidence uncaptured | founder-validation with capture_evidence |
| evidence | Assumption falsified | Present pivot options; if user pivots, re-run validation |
| decision | No business model | founder-business-model with unit_economics |
| decision | No forge_brief | Help user draft forge_brief (direct, uses template) |
| decision | Decision rule RED | founder-business-model with what_must_be_true |
| handoff | forge_brief incomplete | Return to decision stage |
| handoff | User not ready | Pause; record outcome |
Resetting
User can request reset to an earlier stage:
- Reset clears the later
stage_completed_attimestamps - Reset does NOT delete evidence, experiments, or business model data
- Reset records a
pivots[]entry explaining why - Reset is an explicit user action, not automatic
Cross-Stage Rules
- Brief is authoritative — when sprint and subskills disagree, venture-brief.yaml wins
- No stage-skipping — sprint refuses to jump. Reset allowed.
- Evidence or no transition — each gate requires artifacts, not assertions
- Aborts are recorded — outcome + reason written to brief so next invocation knows
- Sprint does NOT do task decomposition — that's bob's job after forge takes over
- If no venture-brief.yaml exists — refuse; tell user to run
founder-ideationfirst
Venture-Brief Integration
Sprint reads and writes the following venture-brief fields:
| Stage | Reads | Writes |
|---|---|---|
| diagnose | ideas_considered[], assumptions[] | sprint_state.stage, sprint_state.stage_completed_at.diagnose |
| evidence | assumptions[], experiments[], interview_count | sprint_state.stage, sprint_state.stage_completed_at.evidence, interview_count |
| decision | business_model, forge_brief | sprint_state.stage, sprint_state.stage_completed_at.decision, business_model, forge_brief |
| handoff | all previous + forge_brief | sprint_state.stage, forge_handoff_ready, handoff_at |
| abort | sprint_state | sprint_state.outcome, sprint_state.abort_reason |
See references/venture-brief-state-rules.md for the complete field-level contract.
Failure Modes
| Failure | Detection | Response |
|---|---|---|
| No venture-brief | File not found | Refuse: "Run founder-ideation first to create your venture brief" |
| Schema version mismatch | schema_version != 2 | Refuse with migration guidance |
| Stage-skip attempt | User asks to jump from diagnose to handoff | Refuse: "Cannot skip stages. Current stage: [X]. Next required: [Y]." |
| Gate criteria not met | Checklist has unchecked items | Show what's missing, invoke appropriate subskill |
| Abort without reason | User wants to quit without explaining | Record outcome but require a 1-line reason |
| Subskill invocation fails | Subskill returns error | Surface the error, don't auto-retry; let user decide |
| Concurrent modification | venture-brief changed by another process | Re-read on entry; always use latest state |
Anti-Patterns
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Skipping Evidence stage ("I know it's valid") | Without evidence, you're building on assumptions | Enforce gate: >= 1 interview, >= 1 experiment per top assumption |
| Sprint doing task decomposition | Sprint is a gatekeeper, not a project manager | Surface what's needed; let subskills and eventually bob handle the work |
| Auto-advancing through multiple stages | Loses user control; decisions need human deliberation | One stage advance per invocation; present the next gate |
| Maintaining separate state from venture-brief | Drift between sprint's view and brief's view | venture-brief is the single source of truth (HR-7) |
| Accepting "trust me" for gate criteria | Evidence-free gates produce false confidence | Require artifacts: experiments, interviews, calculator output |
| Calling forge without explicit handoff | Ambient coupling creates stale-state bugs | Use explicit came_from_founder: true spawn prompt |
Reference Files
Read these as needed during sprint operation:
references/stage-machine-spec.md— complete state transition diagram, allowed/forbidden paths, edge casesreferences/gate-criteria.md— detailed checklist per gate with specific evidence artifacts required and pass/fail rubricsreferences/venture-brief-state-rules.md— which fields sprint reads/writes per stage, schema version check, migration notesreferences/forge-handoff-protocol.md— explicit handoff spawn prompt template,came_from_founderflag, what forge does on receipt
When NOT to Use This Skill
- User wants quick ideas without committing to a sprint — use
founder-ideationdirectly - User wants to validate without the stage machine — use
founder-validationdirectly - User wants unit economics without the stage machine — use
founder-business-modeldirectly - User is already building (post-forge handoff) — sprint is done; use
forge/bobdirectly - User wants legal/tax/valuation advice — REFUSED (HR-1, HR-2)
- Sprint is optional — users CAN invoke subskills directly without going through sprint