Sprint-scoped MVP builder that consumes clone-research output. Decomposes research into a beads task DAG (epics per bounded context, subtasks per feature slice), spawns worktree-isolated builder agents in batches of 2-3, merges via bd merge-slot, and reports progress. Idempotent: first invocation creates the DAG; subsequent invocations run the next sprint via bd ready. Keywords: clone, build, sprint, MVP, beads, worktree, parallel, task DAG, feature slice
Resources
1Install
npx skillscat add wcygan/dotfiles/clone-sprint Install via the SkillsCat registry.
clone-sprint
Sprint-scoped MVP builder. Consumes clone-research/{slug}/ output, decomposes into a beads
task DAG, and executes one sprint per invocation.
Prerequisites
- Research output must exist:
clone-research/$ARGUMENTS/with 9 standardized docs - Beads CLI installed:
bdmust be on PATH - Git repo initialized: working directory must be a git repository
If research is missing, tell the user to run /clone-research $ARGUMENTS first.
If bd is not installed, instruct: npm install -g @beads/bd
Execution Mode
Detect state and execute the appropriate phase:
| State | Phase | Action |
|---|---|---|
No clone-research/{slug}/ |
Error | Abort — research required |
Research exists, no .beads/ |
Phase 1 | Initialize DAG + first sprint |
.beads/ exists, bd ready has tasks |
Phase 2 | Execute next sprint |
.beads/ exists, only in_progress tasks |
Phase 2b | Recovery — reset orphaned tasks |
.beads/ exists, all tasks closed |
Phase 3 | Final completion report |
References: workflow.md
Research Contract
Clone-sprint expects clone-research output in a specific format. If these change,
both skills must be updated together.
| Doc | Required Sections |
|---|---|
00-INDEX.md |
Executive Summary, Cross-Reference Map (optional Known Gaps) |
02-feature-priority-matrix.md |
Feature Inventory table with columns: ID, Feature, Priority (P0-P3), Effort (S/M/L/XL) |
03-mvp-scope-contract.md |
In Scope table with Acceptance Criteria column |
04-core-user-journeys.md |
Journey tables with Step/Action/Screen columns |
05-domain-model.md |
REQUIRED. Bounded Contexts table with Context/Entities/Responsibility columns |
06-system-architecture.md |
Recommended Clone Architecture tables (Frontend, Backend, Infrastructure) |
08-api-surface-spec.md |
Resource Endpoints table with Method/Endpoint/Description/Feature columns |
09-design-system-brief.md |
Color Palette, Typography, Component Inventory tables |
Docs 01 and 07 provide context but have no strict structural requirements.
Phase 1: Initialize & Decompose
When: First invocation — no .beads/ directory exists.
- Verify research completeness — read
00-INDEX.md, check all docs exist, abort if doc 05 missing - Read all available research docs from
clone-research/$ARGUMENTS/ - Initialize beads:
bd init --quiet - Create scaffold epic (priority 1, labeled
scaffold) with subtasks for project init, database, design system, CI - Extract bounded contexts from
05-domain-model.md→ create one epic per context - Extract P0 features from
02-feature-priority-matrix.md→ create subtasks grouped by context - Build rich task descriptions embedding entities (doc 05), API endpoints (doc 08),
acceptance criteria (doc 03), design tokens (doc 09), suggested file targets (doc 06) - Wire dependencies: scaffold blocks all epics; follow entity relationships and user journeys
- Validate DAG:
bd swarm validate— check for cycles and compute parallelism - Report DAG summary to user (epic count, task count, estimated sprints)
- Immediately proceed to Phase 2 with ready scaffold tasks
References: task-decomposition.md, beads-integration.md
Phase 2: Sprint Execution
When: bd ready --json returns tasks.
- Query ready tasks:
bd ready --json - Select batch (2-3 tasks):
- Higher priority first
- From different bounded contexts (minimize file overlap)
- Check file targets for overlap — never assign overlapping tasks to same sprint
- Hard limit: 3 agents maximum
- Claim tasks:
bd update <id> --claimfor each selected task - Determine agent type per task from labels (fullstack/data/api/ui/infra)
- Compose agent prompts with common preamble + type-specific instructions + task description
- Spawn all agents in ONE message using Task tool:
subagent_type: "general-purpose"isolation: "worktree"- All agents launched in parallel
- Wait for all agents to complete
- Merge results serially using
bd merge-slot:- Order: data → API → fullstack → UI → infra
- Tier 1: fast-forward (happy path)
- Tier 2: rebase + retry (another agent merged first)
- Tier 3: escalate to user (genuine conflict)
- Close merged tasks:
bd close <id> --reason "Merged" - Report sprint results:
- Tasks merged vs failed
- Overall progress (completed/total, percentage)
- Ready tasks for next sprint
- Estimated remaining sprints
References: agent-roles.md, merge-strategy.md, workflow.md
Phase 3: Completion
When: All tasks are closed (bd ready empty, no in_progress tasks).
- Run
bd stats --jsonfor final statistics - Present completion report:
- Total tasks and sprints used
- Epic-by-epic summary (all checkmarks)
- Merge conflict count
- Suggest next steps:
- Code review
- Full test suite run
- Dev server startup
- P1/P2 feature planning
References: workflow.md
Anti-Patterns
DO NOT decompose by horizontal layer (all migrations → all APIs → all UI).
Each task must be a vertical slice within one bounded context.
DO NOT create tasks with thin descriptions. Every task must embed entity
definitions, API specs, acceptance criteria, design tokens, and file targets.
DO NOT spawn more than 3 agents per sprint. Merge conflicts scale quadratically.
DO NOT skip bd merge-slot. Direct parallel merges cause race conditions.
DO NOT create more than ~30 tasks for an MVP. If you have more, combine
related features into broader slices.
DO NOT assign tasks from the same bounded context to the same sprint
unless they have zero file overlap.
Example Invocations
# First run: creates DAG from research + runs scaffold sprint
/clone-sprint linear
# Subsequent runs: executes next sprint
/clone-sprint linear
# After all sprints complete: shows final report
/clone-sprint linearTypical MVP: 15-20 tasks across 6-8 sprint invocations.