Skip to content
Back to skills

Feature Plan

ASecurity

Slices a finished design into stories and an ordered, dependency-aware task checklist. Owns STORIES.md and PLAN.md in the feature's plan folder, and delegates to the user-stories and bdd-specs skills. Use once feature-design has decided how to build the feature and it's time to break it into reviewable, committable units of work for feature-build.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 15, 2026
developmentapi

Works with

  • api

Security analysis

A100/100

Scanned October 15, 2026

npx -y skills add mattbrailsford/umbraco-devkit --skill feature-plan --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Feature Plan?

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

Security grade badge for Feature Plan
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/mattbrailsford-feature-plan/badge)](https://www.skillsdirectory.com/skills/mattbrailsford-feature-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: feature-plan
description: >-
  Slices a finished design into stories and an ordered, dependency-aware task checklist. Owns
  STORIES.md and PLAN.md in the feature's plan folder, and delegates to the user-stories and
  bdd-specs skills. Use once feature-design has decided how to build the feature and it's time to
  break it into reviewable, committable units of work for feature-build.
user-invocable: true
argument-hint: [scope to plan, optional]
---

# feature-plan

> 🎯 **Design for change.** Slice tasks so each one touches one seam. A task that edits five
> unrelated files, or straddles both a Management API controller and an unrelated UUI
> component, is a coupling smell β€” re-slice before handing it to `feature-build`.

Turn the design into something `feature-build` can execute. This command **transforms**
`SPEC.md` β€” it does not re-elicit requirements.

## Where this writes

The same per-feature plan folder. Owns two files:

- **`STORIES.md`** β€” via the `user-stories` skill; Given/When/Then acceptance criteria per
  story.
- **`PLAN.md`** β€” the dependency-ordered task checklist `feature-build` executes.

Read `ARCHITECTURE.md` and `SPEC.md` β€” this is confirmation and slicing, not a fresh
interview.

Also updates its own two lines in `README.md` β€” same append-only discipline as
`DECISION-LOG.md`: never touch a line owned by another phase.

A checklist of small, dependency-ordered, independently reviewable tasks forces sizing and
sequencing decisions up front and gives `feature-build` something mechanically parseable to
gate against. Keep this discipline (small, ordered, reviewable units) even for a project that
tracks completion via issues instead of an in-doc checklist.

## Scope

- IN: derive user stories from `SPEC.md`, order tasks into a dependency-aware checklist,
  mark what can run concurrently, then generate executable specs via `bdd-specs` β€”
  always, no asking.
- OUT: gathering requirements (`feature-explore`/`feature-design`), building
  (`feature-build`).

## Preflight

1. Resolve which feature this run is for. If more than one plan folder exists, prefer a match
   between the current branch/worktree name and a folder name (see `CLAUDE.md`'s "Finding the
   current feature's plan folder" rule) β€” this is the normal case once `feature-build` has
   started. If nothing matches, fall back to the one plan folder present, or ask if more than
   one is ambiguous.
2. Read `SPEC.md` (and `ARCHITECTURE.md` for context) in the resolved folder. If `SPEC.md` is
   still a stub or full of `TODO`, **stop** β€” send the user back to `feature-design`.
3. Read any existing `STORIES.md`/`PLAN.md`. Re-entrant: reconcile and extend; never silently
   drop or renumber completed (`- [x]`) tasks.

## Stories

Delegate to `user-stories` to produce/refine `STORIES.md` (Given/When/Then acceptance
criteria per story, formatted so `bdd-specs` can consume it directly). Don't hand-roll the
format.

## Specs (always, no asking)

Once `STORIES.md` is finalized and `PLAN.md` is written, always delegate to `bdd-specs` to
generate executable, pending spec files from the stories. This is part of `feature-plan`'s
contract, not optional. The generated specs should fail (or be marked pending) until
`feature-build` turns them green.

## Interview

Light β€” confirmation, not elicitation. ~3–5 questions, batched:

1. Here's how `SPEC.md` was sliced into stories β€” anything mis-cut or missing?
2. Priority/sequence right? What's the first shippable slice?
3. Any task marked parallel that actually shares a file or a migration?
4. Hard external dependencies that gate ordering (a CMS API only available from a certain
   version, a package that must ship first)?

## Produce

Write every file this phase produces following `plain-writing`: a person reads it before the
next phase runs, so it should be quick to read without leaving anything out.

`PLAN.md`, a checklist `feature-build` can execute:

- Every task is `- [ ]`, top-to-bottom in dependency order.
- Each task line carries: a short id, the story it implements, explicit `depends-on:` ids,
  and a `parallel-group:` tag for tasks with no ordering between them.
- One task = one reviewable, committable unit of work.
- No task references a file, extension point, or decision not already in `ARCHITECTURE.md`/
  `SPEC.md`.
- **Wire tasks are first-class.** For every feature that touches a real entry point β€” a
  Management API controller, a Composer-registered service, a backoffice manifest entry β€”
  include an explicit `wire: <feature> into <entry point>` task whose acceptance is a real
  request or resolution through the deployed artifact, not just "unit tests pass." A task
  whose only acceptance criterion is unit-test-green is not allowed for anything on that
  path β€” that's how stubs ship.

Update the `STORIES.md` and `PLAN.md` lines in `README.md`: check each box and replace
`<pending>` with one plain-English line (e.g. "N stories" / "M tasks, first parallel group
is...").

Append dated `DECISION-LOG.md` entries for non-obvious sequencing decisions (why task X
blocks task Y, why a slice was deferred).

## Hand off

Summarize: N stories, M tasks, S spec files generated, the first parallel group, then:
`Suggested next: feature-build β€” specs are in place and pending.`

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.