develop-feature
A project management orchestrator for spec-driven feature development. It scaffolds folders and manages gated approval phases from specification to implementation.
Install
mkdir -p .claude/skills/develop-feature && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17954" && unzip -o skill.zip -d .claude/skills/develop-feature && rm skill.zipInstalls to .claude/skills/develop-feature
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use when starting spec-driven development on any change, large or trivial — triggers: \"create a spec for X\", \"start a new feature: Z\", \"use SDD for this\", \"write a spec before we code\". Proposes a right-sized workflow track for approval, then orchestrates Specify -> Plan -> Tasks -> Analyze -> (Tests red -> Implement green -> Review) through dedicated agents, gating each phase on human approval.Key capabilities
- →Scaffold feature folders with canonical templates
- →Route work to dedicated agents for specification, planning, and task decomposition
- →Manage human approval gates for each phase
- →Orchestrate the Specify -> Plan -> Tasks workflow
- →Handle resuming and reopening in-progress or completed features
How it works
This skill orchestrates a spec-driven development workflow by scaffolding feature folders, routing tasks to specialized agents for each phase, and enforcing human approval gates at critical junctures.
Inputs & outputs
When to use develop-feature
- →Initialize a new feature development process with a technical specification
- →Break down complex features into actionable task lists
- →Resume work on an existing feature by diffing new requirements against approved documentation
- →Create a decision log for feature-related technical choices
- →Manage gated development phases to ensure spec alignment before coding
About this skill
Spec-Driven Feature
Runs the Specify → Plan → Tasks workflow described in this project's
AGENTS.md, populating specs/<NNN-feature-slug>/{spec.md,plan.md,tasks.md}
from the canonical templates in templates/. This skill is a thin
orchestrator: it routes the work, scaffolds the folder, and owns every
approval gate and decision-log.md entry, but the actual drafting of each
document is delegated to a dedicated agent — specifier (spec.md),
planner (plan.md), task-decomposer (tasks.md) — each invoked fresh, so
none of them carries the other phases' revision back-and-forth into its own
context, and each can be pinned to the model tier its phase actually needs
(AGENTS.md Model Routing). Three gated phases —
never skip a gate, and never merge two phases into one turn.
This file is intentionally short: it covers routing and the rules that apply
throughout the whole session. Each phase's actual protocol lives in its own
file under references/, read only when you reach that phase — see
"Phases" below. A feature commonly spans days across many separate
conversation turns; re-reading the phase file at the point of use, rather
than relying on one big upfront read, is what keeps the protocol from
decaying as the session grows.
Behavioral guardrails (apply throughout this skill session)
These rules are active from Step R through Phase 5 — routing, drafting, analysis, and implementation alike.
<!-- GUARDRAILS:skill -->- No guessing. Where input leaves something unspecified, write
[NEEDS CLARIFICATION: specific question]and surface it — never silently invent an assumption. - Investigate before claiming. Never make statements about the codebase without first reading the relevant files. If a claim requires looking at code, look first.
- Conservative by default. Recommend before you write; stop and ask before anything irreversible (deleting files, force-pushing, dropping tables, external service calls).
- The human owns every approval gate — you never self-approve. Each
drafting phase (1, 2, 3) and the Analyze gate (3.5) ends by stopping for
explicit human approval; never flip a document's Status to
Approved, merge two phases into one turn, or proceed on your own judgment because the draft "looks fine." This is the kit's core promise ("agent proposes, human approves") and it holds for the whole session, not just when a phase reference file happens to be freshly in context. - Route fixes to the owning phase — never hand-apply a finding. When
artifact-analyzer(or any check) reports an issue, loop it back to the agent that owns that artifact —specifierforspec.md,plannerforplan.md,task-decomposerfortasks.md— and re-run the gate after the human approves the fix. The analyzer is read-only and reports; you are the orchestrator and route. Don't editspec.md/plan.md/tasks.mdyourself to clear a finding (small wording fixes aside) — the drafting agent stays responsible for its artifact's quality. - No over-engineering. Only specify, plan, and build what is directly requested — no abstractions, extra projects, or flexibility for hypothetical future requirements unless the user explicitly asks.
- Template fidelity.
spec.md,plan.md,tasks.md, anddecision-log.mdfollow their canonical templates intemplates/exactly — no invented sections, fields, or status values beyond what the template defines. This binds the orchestrator's own edits (the Status header,decision-log.mdrows) just as much as whatspecifier/planner/task-decomposerdraft into the body — a freelanced addition is a template deviation whether it's a paragraph or a single field. If a template genuinely seems to be missing something a feature needs, raise it as a question back to the human rather than freelancing a fix. - Don't reprint drafted documents in chat. Every drafting phase (1, 2, 3) ends the same way: an agent already wrote the document to disk, so tell the human the file path and the agent's summary — retyping the content doubles output-token cost for no benefit. If the human asks to see it inline ("show me", "print it"), read the file and relay it then; otherwise let them review it in the file directly.
- Every prompt gets routed, not just the first one. No matching
specs/<NNN>-<slug>/folder → Step R fresh. Mid-session on a feature in progress → the resume diff-check ("Resuming an in-progress feature" below) before anything else. A feature that already finished — every documentApproved, every story cleared Phase 5 — is not exempt: it goes through "Reopening a completed feature" below. Never skip straight to editing code because the request "sounds small," "sounds urgent," repeats something said earlier, or because every gate already showsApproved— routing and the diff-check determine that, not your own in-the-moment judgment.
Before starting
Confirm templates/spec.template.md, templates/plan.template.md,
templates/tasks.template.md, templates/decision-log.template.md, and
templates/learnings.template.md exist at the project root. If not, stop
— tell the user to copy templates/ from this kit first. One source of
truth: the project root, not this skill.
Resuming an in-progress feature
If specs/<NNN>-<slug>/ already exists: resume, don't start — Step 0
refuses to overwrite by design.
-
Diff the triggering prompt against what's already drafted, before anything else — including before touching any code. Check
spec.md,plan.md, andtasks.mdfar enough to answer one question: does this prompt describe something already captured there (rephrasing aside), or is it introducing something new — a requirement, an acceptance criterion, a changed scope, a different approach than what was approved? If it's already covered, go to step 1. If it's new, don't hand-apply it: route it to whichever phase owns the affected artifact, per the "route fixes to the owning phase" guardrail above — a human's new instruction is a finding like any other; the source doesn't change who owns the fix. Two capture rules before invoking the owning agent, both for the same reason (agents run in fresh contexts — a file they can read is a durable input, a remark in this conversation is not):- Implementation-specific input (existing-system context, a candidate
approach — not a WHAT/WHY change) goes into
research.mdfirst (create fromtemplates/research.template.mdif it doesn't exist), before invokingplanner. Follow that file's own revision-discipline note: if the new input contradicts or corrects an entry already there, edit that entry in place rather than appending beside it. - A change to a currently-
Approveddocument follows "Reopening a completed feature" steps 1-4 below for the exact mechanics — record the pending amendment, flip to the literalDraftstring before the owning agent touches it, re-gate, cascade. Those mechanics govern amending anyApproveddocument, whether or not the rest of the feature is done. Get the human's approval on the amended document (flipping its Status and logging the gate like any other approval) before resuming below.
- Implementation-specific input (existing-system context, a candidate
approach — not a WHAT/WHY change) goes into
-
Read each document's Status header (
spec.md,plan.md,tasks.md):Draft= drafted but not yet approved;Approved= that gate is cleared. A document still full of placeholders hasn't been started. -
Resume at the first phase whose document is not
Approved; honour the approval gate before moving on. Any[NEEDS CLARIFICATION]markers still in the documents are the open questions left to settle. Read that phase's reference file (below) before acting — don't resume from memory of an earlier read. One special case: a document atDraftthat already has an approval row for its gate indecision-log.mdis a reopen in flight, not an unapproved first draft — a prior session flipped it and was interrupted before the amendment landed. Look for its entry underresearch.md→ Pending Amendments and hand that to the owning agent as the amendment input. If there's no entry and the triggering prompt carries no detail, the reason for the flip is gone with the old conversation — ask the human what changed; never re-present the stale body for approval as if nothing was pending. -
Cross-check
decision-log.md— it carries one committed row per approved gate. -
If
learnings.mdhas entries, skim it before re-invokingimplementorordebugger— it may already record why a prior attempt at this story went sideways. If it's grown large or repetitive across many prior stories and no compaction pass has run recently, this is also a good moment to offer one (seereferences/phase-5-review.md's compaction step) before it's handed, unread in full, into another fresh sub-agent context. -
Re-read all three Status headers before relying on
decision-log.md— don't carry step 1's conclusion forward. This step applies only ifspec.md,plan.md, andtasks.mdeach read exactlyApproved — <who>, <date>; if even one doesn't, go to step 2 instead. Only then is the resume point inside the per-story loop (3.7 → 4 → 5), not at a document gate.With the precondition actually confirmed, use
decision-log.md's row history to find the story and its state, and act on it:- No rows at all for a story → it hasn't started. Invoke
test-writer(Phase 3.7) — never jump straight toimplementorbefore tests exist; that skips tests-first. - A Tests (red) row but no Implement row → mid-implementation. Invoke
implementorfor that story and let it find the exact task itself, via its own step 1 (run each task's test in order; the
- No rows at all for a story → it hasn't started. Invoke
Content truncated.
When not to use it
- →When guessing or inventing assumptions where input is unspecified
- →When making statements about the codebase without reading relevant files
- →When self-approving or merging phases without human approval
Limitations
- →Does not allow self-approval or merging phases into one turn
- →Enforces strict template fidelity for all generated documents
How it compares
This skill provides a gated, multi-agent orchestrated workflow for feature development, ensuring human approval at each stage and strict adherence to templates, which is more structured than a typical ad-hoc development process.
Compared to similar skills
develop-feature side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| develop-feature (this skill) | 0 | 18d | Review | Advanced |
| agent-project-board-sync | 0 | 5mo | Review | Intermediate |
| task-management | 0 | 2mo | No flags | Beginner |
| swarm-planner | 1 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by saptarshibasu
View all by saptarshibasu →You might also like
agent-project-board-sync
ruvnet
Agent skill for project-board-sync - invoke with $agent-project-board-sync
task-management
rjchien728
管理 ~/tasks/(或使用者指定路徑)下的進行中工作項目資料夾。每個 task 是一個資料夾,README.md 是純狀態 dashboard(status frontmatter + 一句 headline + 一行狀態 + 檔案清單 + 下一步),實際的設計 / 規劃 / 調查文件用獨立 .md 檔,腳本與 reproduce 也存獨立檔。負責命名(YYMMDD-<slug>)、建資料夾、寫 README dashboard、更新狀態、總覽掃描。當使用者說「開新 task」「開個 task」「新增 task」「new task」「記錄到 tasks 下」「把目前設計記下來開個 task
swarm-planner
am-will
[EXPLICIT INVOCATION ONLY] Creates dependency-aware implementation plans optimized for parallel multi-agent execution.
wg
graphwork
Use this skill for task coordination with WG. Triggers include "wg", task graphs, multi-step projects, tracking dependencies, coordinating agents, or when you see a .wg directory.
run-tasks
JeremyKalmus
Orchestrate task execution via beads and sub-agents. Gets ready work from beads, spawns appropriate agents based on labels, monitors completion, and updates status. Use after /approve-spec has created tasks.
linear-core-workflow-b
jeremylongshore
Project and cycle management workflows with Linear. Use when implementing sprint planning, managing projects and roadmaps, or organizing work into cycles. Trigger with phrases like "linear project", "linear cycle", "linear sprint", "linear roadmap", "linear planning", "organize linear work".