Skip to content
Back to skills

Sprint Plan

ASecurity

Decompose an MVP vision into a sprint manifest — a prioritized feature list where every feature carries explicit done-criteria (a done-record reference, named edge tests, and a wiring test). Produces the sprint manifest that `sprint-oracle` checks for completeness. Use when planning a sprint of parallel work (Slice A of the sprint-mode epic). Not a workflow phase; the manifest it writes is the completeness contract a sprint is held to.

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 4, 2026
ai-agentsgonodegit

Security analysis

A100/100

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

Scanned October 4, 2026

npx -y skills add friedbotstudio/baseline --skill sprint-plan --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sprint Plan?

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

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

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-plan
owner: baseline
description: Decompose an MVP vision into a sprint manifest — a prioritized feature list where every feature carries explicit done-criteria (a done-record reference, named edge tests, and a wiring test). Produces the sprint manifest that `sprint-oracle` checks for completeness. Use when planning a sprint of parallel work (Slice A of the sprint-mode epic). Not a workflow phase; the manifest it writes is the completeness contract a sprint is held to.
disable-model-invocation: true
---

# sprint-plan — author a sprint manifest with per-feature done-criteria

`sprint-plan` turns an MVP vision into a **sprint manifest**: a prioritized list of features, each carrying the done-criteria that make "done" mechanically checkable. The manifest is the input contract for `sprint-oracle`, which fails a sprint until every feature meets its criteria. This is Slice A of the `mvp-sprint-parallel-cycles` epic — the completeness half of the parallel-sprint goal (a sprint can be fast yet provably not partial).

## What the manifest is

A JSON document (`template-manifest.json` is the shape). Each feature declares three done-criteria dimensions so completeness is a grep, not a judgment call:

- **`done_record`** — a reference proving the feature is specified (a spec AC id, e.g. `AC-012`). Non-empty.
- **`edge_tests`** — names of tests covering error / empty / edge states. A non-empty array.
- **`wiring_test`** — the name of one integration test exercising the feature end-to-end.

```json
{
  "sprint": "<sprint name>",
  "features": [
    {
      "id": "search",
      "priority": "P0",
      "done_record": "AC-012",
      "edge_tests": ["search_empty_query", "search_unicode"],
      "wiring_test": "search_end_to_end"
    }
  ]
}
```

## The test-tag convention (how `sprint-oracle` resolves the names)

A named test counts toward a feature only when the test file tags it. Immediately above the `test('<name>', …)` call, place:

```js
// @sprint-feature:<feature-id> @kind:edge|wiring|happy
test('<name>', () => { /* … */ });
```

`sprint-oracle` builds a map of `testName → {feature, kind}` from these tags and resolves each manifest reference against it. A test tagged `@kind:happy` does **not** satisfy an `edge` or `wiring` requirement — that is the deliberate, mechanical line (no script can prove a test is *semantically* an edge case; the tag is the author's crisp claim, and the oracle verifies the claim resolves).

## How to use

1. Decompose the MVP vision into features. Decide priority (`P0`/`P1`/…) per feature — scoping, not implementation.
2. For each feature, name its `done_record` (the spec AC it traces to), the `edge_tests` it must carry, and its `wiring_test`.
3. Write the manifest (default location: `.claude/state/sprint/<sprint>/manifest.json`, gitignored runtime state).
4. Validate the shape before handing it to the oracle:

   ```
   node .claude/skills/sprint-plan/validate-manifest.mjs validate <manifest-path>   # wraps validate-manifest.mjs -> validateManifest
   ```

   `validateManifest(obj)` returns `{valid, errors:[{feature, field, reason}]}` — it flags missing required fields per feature and duplicate feature ids. It checks **shape**, not completeness; completeness is `sprint-oracle`'s job.

## Constraints

- The manifest is a scoping artifact, not a design. `sprint-plan` decides *what* features and *which* done-criteria, never *how* a feature is built.
- Decisions live in main context (Article II). This skill is invoked there; it delegates nothing to a subagent.
- Completeness is enforced by `sprint-oracle`, not here — keep the two concerns separate.

Files in this skill

  • SKILL.md3.6 KB
  • template-manifest.json342 B
  • validate-manifest.mjs4.1 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.