Skip to content
Back to skills

Sprint

ASecurity

Autonomously implements, reviews, and ships all issues in issues.md, with dynamic issue management.

  • 11 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 9, 2026
developmentpythongoshellbashdockerrefactoringgitfrontendbackenddevops

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 9, 2026

npx -y skills add pillip/claude-dev-kit --skill sprint --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sprint?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sprint
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pillip-sprint/badge)](https://www.skillsdirectory.com/skills/pillip-sprint)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sprint
description: Autonomously implements, reviews, and ships all issues in issues.md, with dynamic issue management.
argument-hint: '[--parallel N] [--max-iterations N]'
disable-model-invocation: true
allowed-tools: Task, Read, Glob, Grep, Write, Edit, Bash(bash scripts/checkpoint.sh *), Bash(bash scripts/wt_setup.sh *), Bash(bash scripts/wt_cleanup.sh *), Bash(bash scripts/registry_edit.sh *), Bash(bash scripts/flock_edit.sh *), Bash(bash scripts/worktree.sh *), Bash(python3 scripts/*), Bash(git *), Bash(gh *), Bash(pytest *), Bash(npm *), Bash(bash ${CLAUDE_PLUGIN_ROOT}/scripts/*), Bash(python3 ${CLAUDE_PLUGIN_ROOT}/scripts/*)
---
<!-- AUTO-GENERATED by scripts/gen_skills.py — DO NOT EDIT. Edit SKILL.md.tmpl instead. -->

## Kit Preamble — sprint

### Kit Script Root
Kit root: `${CLAUDE_PLUGIN_ROOT}`
- Absolute path above → plugin install (substituted at load time; no project
  `scripts/` dir): prefix every kit script command with it, e.g.
  `bash <kit-root>/scripts/checkpoint.sh …`. Absolute paths also work from worktrees.
- Literal `${…}` placeholder above → standalone layout: run commands as written.

### Project Context Detection
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.

### Kit Rules
- Verify `gh auth status` before any GitHub operation.

### Checkpoint Verification Pattern
Every phase has a checkpoint. Run the verification command and check the exit code.
- Exit non-zero (blocking gate): **STOP immediately**, report failure, do NOT proceed.
- Exit 0 with an `ADVISORY:` line (advisory gate): report the gap, self-correct, continue.
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 *)`).

### Worktree Setup Pattern
Pipeline skills operate in git worktrees to isolate changes from main.
- Create + freeze: `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.
- Resolve main root: `bash scripts/worktree.sh root`
- Remove safely: `bash 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.

### Registry Update Pattern
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
bash scripts/registry_edit.sh issues.md -- bash -c '<update command>'
```
Never commit these files to feature branches.

### Parallel Management Rules
- Respect the `--parallel N` limit for concurrent subagent tasks.
- Use the Task tool for subagent dispatch; track completion in `docs/sprint_state.md`.
- Each parallel track is independent; do not share mutable state between tracks.
- Use `registry_edit.sh` for any shared file writes (issues.md, STATUS.md).

### Escalation and Retry Logic
- If a subagent fails: retry once with the same context.
- If the retry fails: mark the issue as `Status: waiting`, `Reason: <failure-type>` in sprint_state.md.
- After 2 consecutive review failures on the same issue, defer it and move to the next.
- After 3 total failures across any issues, escalate to the user with a summary.
- Report all escalations and deferred issues in the sprint summary.
## Pre-conditions
1) `issues.md` must exist with at least one issue in `backlog` status.
2) `gh auth status` must succeed.
3) All planning docs should exist (docs/architecture.md, etc.) — warn if missing.

## Arguments
- `--parallel N`: Max parallel issues (default: 3)
- `--max-iterations N`: Max loop iterations (default: 20)

## Argument Validation (run before anything else)
1) Parse `$ARGUMENTS` for `--parallel N` and `--max-iterations N`:
   - If `--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."
   - If `--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."
   - Unknown flags should be warned but not block execution.

## IRON LAW: implement → review → ship (NEVER SKIP)

**Every issue MUST pass through all three phases in order. No exceptions.**

- An issue is NOT "done" until it is **shipped** (PR merged + smoke test passed).
- New backlog issues are dispatched as **PIPELINE** (implement→review→ship in one invocation). This structurally prevents phase skipping — there is no decision point between phases.
- Issues stuck mid-pipeline (`implemented` or `reviewed`) are retried via standalone REVIEW or SHIP actions.
- You MUST NOT start a new PIPELINE if there are issues stuck in `implemented` or `reviewed` status. **Clear the pipeline first.**

**Pipeline priority order** (enforced by `scripts/sprint_queue.py` — do NOT override):
1. Ship any issues in `reviewed` status (highest priority)
2. Review any issues in `implemented` status
3. Only then: PIPELINE new `backlog` issues

**Violation = 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.

## Algorithm

1) Validate pre-conditions:
   - Read `issues.md` — if no backlog issues, report "nothing to sprint" and stop.
   - Run `gh auth status` — if fails, stop and instruct user to authenticate.
   - Check for planning docs (architecture.md, requirements.md) — warn if missing but continue.

2) Check for existing sprint state:
   - If `docs/sprint_state.md` exists with Status=running, ask user: resume or start fresh?
   - If resuming, load existing state.
   - If fresh, delete old sprint_state.md and create a new one from `templates/sprint_state.md`.

3) 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 content
   - `docs/sprint_state.md` — current state
   - recalled **review lessons** (native memory) — if exists
   - `docs/architecture.md` — if exists
   - `docs/data_model.md` — if exists
   - `docs/prd_digest.md` — if exists (use as quick PRD context instead of full PRD)
   - Parse --parallel and --max-iterations from arguments

4) **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:
      ```bash
      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.

      - If action = **DONE** → **Go to step 5.**
      - If action = **STUCK** → Log warning with the `reason`. Increment attempt counts for stuck issues in sprint_state.md. If attempts ≥ 3, escalate. Otherwise continue to next iteration.
      - If action = **PIPELINE**, **SHIP**, **REVIEW**, or **FINALIZE** → proceed to step 4d with the action and targets from the script output.

      **IMPORTANT**: Do NOT manually compute queues or override the script's action choice. The script enforces strict priority ordering (FINALIZE > SHIP > REVIEW > PIPELINE) to prevent phase skipping. **FINALIZE** is a crash-recovery action (ISSUE-052): the queue detected a `reviewed` issue whose PR is already merged (a ship-phase interruption between the merge and the smoke checkpoint), so only smoke + registry remain — it must NOT be re-shipped/re-merged.

      > For reference, the script computes these queues internally:
      > - `ship_ready`    = issues where Phase = `reviewed`
      > - `review_ready`  = issues where Phase = `implemented`
      > - `pipeline_ready` = issues in `backlog` where Manual ≠ true AND all Depends-On are resolved
      > - `in_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 | FINALIZE}

      ## 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 (native memory), prd_digest.md}

      Execute this phase, update docs/sprint_state.md with results, then STOP.
      Do NOT loop.
      ```

      **Phase meanings:**
      - **PIPELINE**: Full implement→review→ship for backlog issues. Each issue goes through all three phases in one invocation. No phase can be skipped.
      - **REVIEW**: Retry review for issues stuck in `implemented` status (recovery only).
      - **SHIP**: Retry ship for issues stuck in `reviewed` status (recovery only).
      - **FINALIZE** (crash recovery, ISSUE-052): a `reviewed` issue whose PR is already merged. Route it to the team-lead **ship** executor — its merge step is idempotent (`python3 scripts/sprint_queue.py ship-merge-decision --pr <n>` returns `skip`), so it skips the already-done merge and completes only the post-merge smoke checkpoint + registry finalization. Never re-merge. Validate in step 4f with `--action FINALIZE` (expected end phase `shipped`).

   **e) After team-lead returns**:
      - Re-read `docs/sprint_state.md` to confirm phase transitions happened
      - Log: `=== Iteration {N} complete: {action} phase for {count} issues ===`
      - Increment iteration

   **f) Validate phase transition (deterministic — do NOT skip):**

      Run the validation script:
      ```bash
      python3 scripts/sprint_queue.py validate --sprint-state docs/sprint_state.md --action {ACTION} --targets {COMMA_SEPARATED_TARGETS}
      ```
      Parse the JSON output:
      - If `valid` = true: all targets transitioned successfully (or stopped at a phase with logged error). Continue loop.
      - If `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.**

5) **Pipeline completion gate** (before exiting):
   - Read final `docs/sprint_state.md`
   - Count issues still in `implemented` or `reviewed` (not shipped)
   - If count > 0 AND iteration < max-iterations: **return to step 4** to drain the pipeline
   - If count > 0 AND iterations exhausted: report as **INCOMPLETE PIPELINE** items

6) Report sprint results to user:
   - Issues shipped (completed)
   - Issues stuck in pipeline (implemented/reviewed but not shipped) — flagged as **INCOMPLETE**
   - Issues escalated (3+ failures)
   - Issues waiting (blocked/deferred)
   - New issues discovered during sprint

## Agent Selection

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 | (run the diagnose skill) | skills/diagnose/SKILL.md |
| Refactoring | (run the refactor skill) | skills/refactor/SKILL.md |
| DB migration | (run the migrate skill) | 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.

## Pipeline Phase Tracking

Each issue progresses through these phases in `docs/sprint_state.md`:

```
backlog → implementing → implemented → reviewing → reviewed → shipping → shipped
```

**Phase meanings:**
- `implementing`: implement in progress
- `implemented`: implement done, checkpoint passed — **MUST review next**
- `reviewing`: review in progress
- `reviewed`: review approved — **MUST ship next**
- `shipping`: ship in progress
- `shipped`: PR merged, smoke test passed — **done**

The team-lead reads these phases to enforce pipeline ordering:
- Any issue in `implemented` → team-lead MUST review before implementing new issues
- Any issue in `reviewed` → team-lead MUST ship before reviewing or implementing

## Error Handling
- If team-lead Task fails (returns error): log the error in sprint_state.md, then **continue the sprint loop** with the next iteration. The failed issues remain in their current phase and will be retried.
- If pre-conditions fail: stop with clear instructions on how to fix.
- Sprint state file ensures progress is never lost — user can re-run `/sprint` to resume.
- **Per-phase recovery**: Each team-lead invocation handles one phase. If it fails, the sprint loop retries that phase in the next iteration. Successful phases are never re-run.
- **Escalation**: If the same issue fails the same phase 3 times (tracked via Attempts column in sprint_state.md), mark as `waiting` with escalation reason and skip it. Report at sprint end.
- **Review rework**: After 2 consecutive review failures on the same issue, mark Status=waiting, Reason=review-rework, defer to human.

## Rollback
- Sprint is composed of individual implement→review→ship cycles, each with their own rollback.
- If sprint must be fully abandoned: issues.md still reflects accurate status per issue.
- Delete `docs/sprint_state.md` to reset sprint state.

Files in this skill

  • SKILL.md14.7 KB
  • SKILL.md.tmpl11.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.