agentleFS
SWEStashSWEStash/swe-workflow-skills/skills/feature-planning/SKILL.md

feature-planning

Skill1 starsChanged 5 days agoMITView on GitHub

Break features into well-scoped tasks with acceptance criteria, risk assessment, and dependency mapping. Triggers: plan this, break this down, scope this feature, create tasks for, sprint planning, how should I implement this feature, user stories, acceptance criteria, dependency mapping, feature breakdown. Creates the plan — executing an already-approved plan checkpoint by checkpoint → plan-execution.

10 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

11 rules. 0 are common, 8 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask clarifying questions to close knowledge gaps.

    line 14
  2. Distinctive:

    Never answer a planning request with questions alone when the draft branch applies.

    line 43
  3. Distinctive:

    Follow dependency order (what must exist before this task can start)

    line 65
  4. Distinctive:

    Use this structure for each task — see templates/task.md.

    line 68
  5. Distinctive:

    If the plan spans several sessions or milestones, fill its Tracking field from the project's working agreement (where task status will …

    line 96
  6. Distinctive:

    YAGNI: Only plan what's needed now.

    line 100
  7. Distinctive:

    KISS: Prefer the simplest approach that meets acceptance criteria.

    line 101
  8. Distinctive:

    Testability: Every task should specify how to verify it's done.

    line 103
  9. Very specific:

    If the feature involves architectural decisions (new services, database changes, API design), suggest using the architecture-design skill …

    line 107
  10. Very specific:

    If the feature requires data model changes, suggest using the data-modeling skill for that portion.

    line 109
  11. Very specific:

    If the idea itself is still fuzzy — the user is exploring what to build rather than how — run brainstorming first.

    line 111

“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Feature Planning

Guide the user through transforming a feature idea or requirement into a structured, actionable implementation plan. The goal is a plan that a developer (or Claude Code) can pick up and execute with minimal ambiguity.

Workflow

Step 1: Understand the Feature

Ask clarifying questions to close knowledge gaps. Focus on:

  • What problem does this solve? (user pain, business value)
  • Who is the user? (persona, role, access level)
  • What exists today? (current behavior, workarounds)
  • What are the constraints? (timeline, tech stack, backwards compatibility)
  • What's out of scope? (explicitly define boundaries)
  • How will we know it works? (what verification and test coverage this needs)

This step is not a gate on delivering. Whether you draft now or ask first is a condition, not a preference. Apply this test:

Can you write at least one Given/When/Then acceptance criterion without inventing the feature's core behavior?

  • Yes → draft now. The remaining unknowns are assumptions, not blockers: state them and carry the full plan in the same response. A draft the user corrects beats a question they must answer. ("Email and in-app notifications when someone comments on their posts" passes — the behavior is given.)
  • No → ask first, and say what you'd need to start drafting. A named stack plus a feature label is not enough on its own: "add dark mode to our Vue app" and "add authentication" both fail the test, because the core behavior (persistence? system-preference default? which auth methods, which protected resources, which roles?) would have to be invented rather than planned.

Exit condition for the draft branch — one line, then keep going in the same response: "Planning under these assumptions: <…> — correct any and I'll revise."

Never answer a planning request with questions alone when the draft branch applies. Unanswered questions belong in Step 5's open-questions list, not in place of the plan.

Step 2: Define Acceptance Criteria

For each user-facing behavior, write acceptance criteria using the Given/When/Then format:

Given [precondition]
When [action]
Then [expected outcome]

Aim for 3-7 acceptance criteria per feature. Each criterion should be independently testable.

Step 3: Break Down into Tasks

Decompose the feature into implementation tasks. Each task should:

  • Be completable in one focused session (roughly 1-4 hours of work) — state each task's estimate on the task itself, so granularity is visible rather than asserted
  • Have a single clear deliverable (a file, a test, a migration, etc.)
  • Follow dependency order (what must exist before this task can start)
  • Be independently verifiable

Use this structure for each task — see templates/task.md.

When a task adds a library, run dependency-management's Step 1 on it before writing the task, including a library an RFC, ADR or issue already names, and put the verdict in the plan's New dependencies section: own module, adopt, or a question for the user. A plan that lists a library with only a check that it exists hasn't done this, and neither has one that schedules the check as a later task.

Step 4: Map Dependencies

Identify and visualize dependencies between tasks:

  • Hard dependencies: Task B literally cannot start until Task A is done
  • Soft dependencies: Task B benefits from Task A but could start in parallel
  • External dependencies: Waiting on APIs, design assets, or decisions

Present dependencies as an ordered list or ASCII diagram showing the critical path.

Step 5: Identify Risks and Open Questions

Flag anything that could derail the plan:

  • Technical risks: Unproven technology, complex integration, performance concerns
  • Scope risks: Feature creep indicators, ambiguous requirements
  • Dependency risks: External team blockers, API availability

For each risk, suggest a mitigation strategy or a spike task to reduce uncertainty.

Step 6: Produce the Plan

Output the complete plan using the template at templates/plan.md — in the reply itself, not as a promise to produce one. Offer to save it as a markdown file in the project (e.g., docs/plans/feature-name.md); saving is a convenience, not the deliverable.

If the plan spans several sessions or milestones, fill its Tracking field from the project's working agreement (where task status will live). When the project has none, say so and hand off to working-agreement so status has a home before execution starts.

Principles Applied

  • YAGNI: Only plan what's needed now. Flag nice-to-haves separately.
  • KISS: Prefer the simplest approach that meets acceptance criteria.
  • Functional Independence: Each task should touch a single concern when possible.
  • Testability: Every task should specify how to verify it's done.

When to Go Deeper

If the feature involves architectural decisions (new services, database changes, API design), suggest using the architecture-design skill before finalizing the plan.

If the feature requires data model changes, suggest using the data-modeling skill for that portion.

If the idea itself is still fuzzy — the user is exploring what to build rather than how — run brainstorming first; this skill converges, that one diverges.

Once the plan is approved and execution begins, the plan-execution skill takes over: checkpointed batches, verification evidence per checkpoint, and drift-triggered re-planning (which loops back here).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.