Specify
Skill pooyagolchian/specforge/plugins/specforge/skills/specify
Write a feature specification (the WHAT and WHY, never the HOW) for a new feature. Use when the user wants to specify a feature, capture requirements, write a spec, define user stories, or start a new feature in SpecForge. Creates specforge/specs/NNN-slug/spec.md, sets it active, and marks unknowns with [NEEDS CLARIFICATION].From its SKILL.md
npx -y skills add pooyagolchian/specforge --skill specifyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 19 days oldThe repository was created 19 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.4 KB, 811 tokens by cl100k_base, as published. Nobody here has run it
/specforge:specify — capture WHAT to build
Turn a feature request into a testable specification. This is the Inception phase: describe
the problem, users, and requirements — not the implementation. Delegate the drafting to the
spec-analyst subagent when the feature is non-trivial.
When to use
- The user describes a new feature or capability to build.
- Trigger words: "specify", "write a spec", "requirements", "user stories", "new feature".
Preconditions
- A
specforge/workspace must exist. If not, run/specforge:initfirst.
Steps
- Allocate the feature. Determine the next number
NNN(highest existing underspecforge/specs/+ 1) and a 3–4 word kebab slug from the request. Createspecforge/specs/NNN-slug/andspecforge/specs/NNN-slug/contracts/. You may run the helper${CLAUDE_SKILL_DIR}/../../scripts/new-feature.sh "<description>"which prints{feature_num, branch, feature_dir, spec_file}and creates the dirs — but doing it manually is fine. - Draft
spec.mdfrom the template at${CLAUDE_SKILL_DIR}/../_shared/spec-template.md(or the inline structure below). Fill: Summary, Goals/Non-Goals, User Stories with Given/When/Then acceptance, Functional Requirements (FR-001…, each testable + uniquely IDed), Non-Functional Requirements (NFR-001…), conceptual Data/Domain, Edge Cases, Open Questions. - Never guess. For anything underspecified, insert
[NEEDS CLARIFICATION: <question>]inline and list it under Open Questions. Do not invent stack, APIs, or file names — that is HOW. - Set the feature active in
specforge/state.md: change the marker to<!-- active: NNN-slug -->and add/ensure a table row| NNN-slug | specify | done | <date> |(statusdone, notapproved— approval is a separate human step). - Audit: append
| <today ISO-8601> | NNN-slug | specify | Spec drafted (<n> open questions) |. - Tell the user the spec is drafted, how many
[NEEDS CLARIFICATION]markers remain, and offer/specforge:clarifyto resolve them, or/specforge:approve specifyonce they've reviewed it.
Spec skeleton (if the shared template is unavailable)
# Feature Specification: <name>
- Feature ID: NNN · Branch: NNN-slug · Status: Draft · Created: <date>
## Summary
## Goals & Non-Goals
## User Stories (US1 … with Given/When/Then acceptance)
## Functional Requirements (FR-001 …, testable, uniquely IDed)
## Non-Functional Requirements (NFR-001 …)
## Data & Domain (conceptual entities only)
## Edge Cases & Error Handling
## Open Questions ([NEEDS CLARIFICATION] markers)
## Review Checklist (gate)
Guardrails
- WHAT/WHY only. If you catch yourself naming a library, table, or endpoint, move it to the plan.
- Every requirement must be independently testable and carry a stable ID for traceability.
- Marking
specifydone does not unblock coding — the gate needsspecifyapproved andplanapproved. Approvals are made by the human via/specforge:approve.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.