From claude-dev-kit
Autonomously implements, reviews, and ships all issues in issues.md with dynamic issue management, parallel worktrees, and checkpoint verification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-dev-kit:sprintThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- AUTO-GENERATED by scripts/gen_skills.py — DO NOT EDIT. Edit SKILL.md.tmpl instead. -->
Run silently at the start:
python3 scripts/kit_update_check.py 2>/dev/null
If exit code is 1 (update available), show the output to the user once. Do not block the workflow.
Run these checks silently at the start. Use results to adapt behavior:
[ -f issues.md ] — if true, this project uses the sprint system. Respect issue numbering and STATUS.md.[ -f docs/sprint_state.md ] — if true and Status shows running, a sprint is active. Be aware of parallel work in worktrees.[ -f docs/prd_digest.md ] — if true, read it for quick project context before starting.gh auth status before any GitHub operation.Every phase has a mandatory checkpoint. Run the verification command and check exit code. If exit code is not 0, STOP immediately and report failure. Do NOT proceed to the next phase. Standard prefix:
bash scripts/checkpoint.sh
Append --skill <name> --phase <phase> --issue <ID> for the specific check.
checkpoint.sh resolves the main repo root internally, so the command stays
a single prefix-matchable form (safe to allowlist as Bash(bash scripts/checkpoint.sh *)).
Pipeline skills operate in git worktrees to isolate changes from main.
WT="$(bash scripts/wt_setup.sh <branch>)" — creates the
worktree via scripts/worktree.sh create and writes .claude-kit/freeze-dir.txt
inside it in a single step.bash scripts/worktree.sh rootbash scripts/wt_cleanup.sh <branch> — cd's to main root
inside a subshell, then removes the worktree (never leaves CWD dangling).
All file operations happen inside $WT/. Shared files live on main only.Shared files (issues.md, STATUS.md, CHANGELOG.md) are managed on main only.
Always use registry_edit.sh for concurrent-safe writes — it resolves the
main repo root internally and delegates to flock_edit.sh:
bash scripts/registry_edit.sh issues.md -- bash -c '<update command>'
Never commit these files to feature branches.
Before completing any major phase, pause and verify:
--parallel N limit for concurrent subagent tasks.docs/sprint_state.md.registry_edit.sh for any shared file writes (issues.md, STATUS.md).Status: waiting, Reason: <failure-type> in sprint_state.md.At the start of this skill, check if contributor mode is enabled:
python3 scripts/kit_config.py get contributor_mode
If the result is true:
python3 scripts/contributor_report.py --skill <name> --step "<step>" --rating <N> --notes "<friction or suggestion>"
issues.md must exist with at least one issue in backlog status.gh auth status must succeed.--parallel N: Max parallel issues (default: 3)--max-iterations N: Max loop iterations (default: 20)$ARGUMENTS for --parallel N and --max-iterations N:
--parallel is present, validate N is an integer between 1 and 10. If invalid, stop with: "Invalid --parallel value: must be an integer between 1 and 10."--max-iterations is present, validate N is an integer between 1 and 100. If invalid, stop with: "Invalid --max-iterations value: must be an integer between 1 and 100."Every issue MUST pass through all three phases in order. No exceptions.
implemented or reviewed) are retried via standalone REVIEW or SHIP actions.implemented or reviewed status. Clear the pipeline first.Pipeline priority order (enforced by scripts/sprint_queue.py — do NOT override):
reviewed status (highest priority)implemented statusbacklog issuesViolation = sprint failure: If at sprint end, ANY issue has Status=implemented or Status=reviewed (not shipped), the sprint is considered incomplete. Report these as unfinished pipeline items.
Validate pre-conditions:
issues.md — if no backlog issues, report "nothing to sprint" and stop.gh auth status — if fails, stop and instruct user to authenticate.Check for existing sprint state:
docs/sprint_state.md exists with Status=running, ask user: resume or start fresh?templates/sprint_state.md.Gather context (read once, reuse across iterations): Read all context files via parallel Read tool calls in a single message. Do NOT read them sequentially.
issues.md — full contentdocs/sprint_state.md — current statedocs/review_lessons.md — if existsdocs/architecture.md — if existsdocs/data_model.md — if existsdocs/prd_digest.md — if exists (use as quick PRD context instead of full PRD)Sprint loop (iteration = 0; repeat while iteration < max-iterations):
a) Read fresh state: Re-read docs/sprint_state.md and issues.md every iteration.
b-c) Compute next action (deterministic — do NOT override):
Run the pipeline queue script:
python3 scripts/sprint_queue.py next-action --sprint-state docs/sprint_state.md --issues issues.md --max-parallel {MAX_PARALLEL}
If the script exits with non-zero and no JSON output: STOP the sprint and report the error. This indicates a parsing failure or circular dependency — do NOT proceed.
Parse the JSON output. The result contains action, targets, and reason fields.
reason. Increment attempt counts for stuck issues in sprint_state.md. If attempts ≥ 3, escalate. Otherwise continue to next iteration.IMPORTANT: Do NOT manually compute queues or override the script's action choice. The script enforces strict priority ordering (SHIP > REVIEW > PIPELINE) to prevent phase skipping.
For reference, the script computes these queues internally:
ship_ready= issues where Phase =reviewedreview_ready= issues where Phase =implementedpipeline_ready= issues inbacklogwhere Manual ≠ true AND all Depends-On are resolvedin_flight= issues where Phase ∈ {implementing,reviewing,shipping}
d) Invoke team-lead agent via Task tool with this exact prompt structure:
You are the team-lead agent. Execute the {action} phase for these issues.
## Phase: {PIPELINE | SHIP | REVIEW}
## Target Issues
{For each target: full issue spec from issues.md — ID, title, AC, all fields}
## Current Sprint State
{Full content of docs/sprint_state.md}
## Max Parallel: {N}
## Project Context
{Content of architecture.md, data_model.md, review_lessons.md, prd_digest.md}
Execute this phase, update docs/sprint_state.md with results, then STOP.
Do NOT loop.
Phase meanings:
implemented status (recovery only).reviewed status (recovery only).e) After team-lead returns:
docs/sprint_state.md to confirm phase transitions happened=== Iteration {N} complete: {action} phase for {count} issues ===f) Validate phase transition (deterministic — do NOT skip):
Run the validation script:
python3 scripts/sprint_queue.py validate --sprint-state docs/sprint_state.md --action {ACTION} --targets {COMMA_SEPARATED_TARGETS}
Parse the JSON output:
valid = true: all targets transitioned successfully (or stopped at a phase with logged error). Continue loop.valid = false: log the errors array in sprint_state.md. The stuck list shows which issues failed to transition — they will be retried in the next iteration via REVIEW or SHIP action.Continue loop from step 4a.
Pipeline completion gate (before exiting):
docs/sprint_state.mdimplemented or reviewed (not shipped)Report sprint results to user:
Team-lead uses this table to determine which agent(s) to dispatch per issue:
| Issue characteristic | Agent(s) | Skill reference |
|---|---|---|
| General backend/logic | developer | skills/implement/SKILL.md |
| UI/frontend (web) | uiux-developer | skills/implement/SKILL.md + UI context |
| UI/frontend (mobile) | mobile-uiux-developer | skills/implement/SKILL.md + mobile context |
| Infrastructure/CI/CD | devops | skills/devops/SKILL.md |
| Bug fix | diagnostician | skills/diagnose/SKILL.md |
| Refactoring | refactorer | skills/refactor/SKILL.md |
| DB migration | migrator | skills/migrate/SKILL.md |
| Architecture change needed | architect → data-modeler → developer | sequential |
| Any completed implementation | reviewer | skills/review/SKILL.md |
| UI implementation completed | reviewer + ui-reviewer | skills/review/SKILL.md |
| Reviewed and approved | (ship steps) | skills/ship/SKILL.md |
How to determine: Read the issue's title, Track field, and Implementation Notes. Keywords like "UI", "screen", "component" → UI agent. "Dockerfile", "CI", "deploy" → devops. "migrate", "schema change" → migrator.
Each issue progresses through these phases in docs/sprint_state.md:
backlog → implementing → implemented → reviewing → reviewed → shipping → shipped
Phase meanings:
implementing: implement in progressimplemented: implement done, checkpoint passed — MUST review nextreviewing: review in progressreviewed: review approved — MUST ship nextshipping: ship in progressshipped: PR merged, smoke test passed — doneThe team-lead reads these phases to enforce pipeline ordering:
implemented → team-lead MUST review before implementing new issuesreviewed → team-lead MUST ship before reviewing or implementing/sprint to resume.waiting with escalation reason and skip it. Report at sprint end.docs/sprint_state.md to reset sprint state.npx claudepluginhub pillip/claude-dev-kit --plugin claude-dev-kitManages agile sprints with Skeleton → Muscles → Skin layers, checkpoints, status checks, and quality gates for iterative development. Triggers on 'start sprint', 'checkpoint', or /agile commands.
Plans a sprint from backlog issues using capacity constraints and priority ranking. Supports dry-run, apply, yolo, and release planning with --all.
Guides an 8-step agentic development workflow for issues: parsing, loading issue-type skills, reading specs, planning, implementing, testing, opening PRs/MRs, and addressing review.