product-spec
Skill4 starsChanged 46 days agoMITView on GitHub
Authors the product specification (goals, users, scope, NFRs, risks, MVP acceptance) section by section with the user. Produces docs/specs/product-spec.md. Required before feature specs.
12 other projects use a version of this.
Adopted by
Most recently taken up by
- idaibin/skillstheir own version, first seen Nov 8, 2026
- fainir/agent-harnesstheir own version, first seen Nov 1, 2026
- edilson-silva/codridetheir own version, first seen Oct 15, 2026
- matiopala/skillstheir own version, first seen Oct 15, 2026
- arfar-x/agent-skillstheir own version, first seen Oct 13, 2026
- sunnybhara/claude-startertheir own version, first seen Aug 14, 2026
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- firatcand/founder-skills★ 37same name
- Hassaan146/claude-skills★ 18same name
- arfar-x/agent-skills★ 14same name
- yasunori0418/skills★ 9same name
- idaibin/skills★ 6same name
- levinchang/productdesign-skills★ 4same name
- vndee/engineering-skills★ 3same name
- edilson-silva/codride★ 2same name
- matiopala/skills★ 2same name
- T4LEL/Claude-Arsenal★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository52 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- testing/CLAUDE.mdCLAUDE.md
- a11y-auditSkill
- adoptSkill
- api-contractSkill
- architecture-decisionSkill
- architecture-reviewSkill
- backlogSkill
- brainstormSkill
- changelogSkill
- code-reviewSkill
- collaboration-protocolSkill
- create-storiesSkill
- data-modelSkill
- dependency-auditSkill
- deploySkill
- design-systemSkill
- dev-storySkill
- docsSkill
- feature-specSkill
- game-conceptSkill
- hardenSkill
- helpSkill
- hotfixSkill
- impactSkill
- incidentSkill
- initSkill
- migrateSkill
- pentestSkill
- perf-auditSkill
- qa-planSkill
- refactorSkill
- release-checklistSkill
- retrospectiveSkill
- security-auditSkill
- setup-stackSkill
- skill-improveSkill
- skill-testSkill
- sprint-planSkill
- sprint-statusSkill
- stack-updateSkill
- startSkill
- story-doneSkill
- team-featureSkill
- team-gameSkill
- team-releaseSkill
- team-securitySkill
- tech-debtSkill
- test-setupSkill
- threat-modelSkill
- updateSkill
- ux-specSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
1
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
- Very specific: line 18
Stack: When the stack is not configured, suggest /setup-stack before or after this skill (not blocking).
- Very specific: line 19
No clear product: When there is no concept brief and the user cannot say what the product is and for whom, stop before any section: suggest …
- Very specific: line 45
After the "write" answer: touch .claude/.write-consent (rule 7 — the consent-guard hook checks the marker), then write.
- Distinctive: line 51
When HEAD is a story branch, name it and offer: switch to the default branch and commit there (Recommended — a pipeline-wide document) · …
“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.
Files
Product Spec
Reply in the project conversation language (CLAUDE.md → Language); code, identifiers, paths and commit messages stay in English.
Template: .claude/docs/templates/product-spec.md (sections 1–10). Section by section: questions → section draft → edits → next.
The file is written once at the end (or per section, the user's choice), always after "May I write?". In the commands below, <hooks> is .claude/hooks/ in copy mode and ${CLAUDE_PLUGIN_ROOT}/hooks/ in plugin mode.
Phase 1: Context
- Read
docs/specs/concept-brief.md(if any),technical-preferences.md,production/roadmap.mdandproduction/stage.txt. - Stack. When the stack is not configured, suggest
/setup-stackbefore or after this skill (not blocking). - No clear product. When there is no concept brief and the user cannot say what the product is and for whom, stop before any section: suggest
/brainstormand write nothing. - Pick the mode.
- Retrofit mode — stage
buildor later, with code and a deployment that already exist. The spec documents what runs, not what is planned. Sources areCLAUDE.md, the roadmap, the deployed configuration and the code. Phase 2 becomes one pass: draft all sections from those sources, show the draft as a whole, and ask questions only where the facts are silent (goals, audience, out-of-scope). The Phase 3 review verifies claims against the repository: a claimed fact the repository contradicts is BLOCKING. - New spec — every other case: Phase 2 as written.
- Retrofit mode — stage
Phase 2: Sections 1–10
For each section, in template order:
- Ask 1–3
AskUserQuestions. - Draft the section and ask "like this?"; apply the edits.
- Section-specific rules:
- §4 Scope: insist on In / Later / Out. Every Out item has a reason; a feature the user places out of scope is recorded under Out with that reason, never dropped.
- §6 Non-functional requirements: propose the studio defaults (CWV, WCAG 2.2 AA, OWASP baseline); the user confirms. §6 always answers localisation, SEO and product analytics explicitly —
n/a — reasonis an answer, silence is not. Analytics events map to the §2 metrics when there are any.
Phase 3: Review
- Mode:
--review, elseproduction/review-mode.txt, elselean.full:technical-director(feasibility, stack risks) andsecurity-lead(data, jurisdiction) in parallel via Task, each with a verdict PASS/CONCERNS/FAIL and reasons.lean:technical-directoronly if there are non-trivial NFRs or integrations.solo: no review.
- CONCERNS/FAIL: show the findings and propose edits. Never advance the stage automatically.
- Re-review the edits. The edits go back to the same verifier (same contract, a short answer to one question: "do the findings still stand?"). The document's verdict is the verdict of the last review, not the first one with a list of fixes claimed against it: a spec rewritten "according to all eight comments" has been checked by nobody. When the user chooses to skip the second review, say so plainly and record the verdict as
FAIL (edits unverified). - The skill verdict follows the last review's. PASS →
APPROVED. CONCERNS →APPROVEDwith the concerns listed in the verdict line, orNEEDS REVISIONwhen a concern is on §1–3 (goals, users, scope — a concern there changes what every later section is about). FAIL, includingFAIL (edits unverified), →NEEDS REVISION, the qualifier carried over. No review ran (solo, orleanwith nothing to review) →APPROVED, and the verdict line says "no review". - Open items reach
production/findings.md. For every BLOCKING and HIGH item of the verdict, oneAskUserQuestion: record it inproduction/findings.md(templatefindings.md; idARCH-NNN, severity, area/feature, the decision needed) (Recommended) · story stubs — through/feature-spec F-NNNfor the first feature the item touches (a hand-off: this skill does not run it; the stories come from/create-storiesonce that spec has acceptance criteria, and/create-storiesblocks without a feature spec with criteria — the closing question names/feature-spec F-NNNwhen this option was chosen) · keep it in the spec only. Write the row only after the "record" answer; that answer is the write consent, sotouch .claude/.write-consentfirst (rule 7). Record the gate before asking —<hooks>session-state.sh set Gate "/product-spec Phase 3: record ARCH-NNN?"— and clear it after the answer (<hooks>session-state.sh set Gate "—"). A BLOCKING that is neither recorded nor turned into a story is named as such in the verdict line:/create-stories,/sprint-planand/helpreadproduction/findings.md, and nobody reads §8 of the spec for open decisions.
Phase 4: Write
- Render the draft (or the diff) in the chat.
- "May I write
docs/specs/product-spec.md?" — oneAskUserQuestion: write (Recommended) · show the draft/diff first · not now. - After the "write" answer:
touch .claude/.write-consent(rule 7 — the consent-guard hook checks the marker), then write. - Stage. Propose
production/stage.txt=specificationonly when the current stage is earlier thanspecificationin the catalog. On a project already inbuild/operatethe stage is never proposed backwards.
Phase 5: Commit (documents lane)
Right after the write, one commit gate (rule 7 (4), .claude/docs/git-workflow.md § Documents): one AskUserQuestion offering docs: product spec, staging exactly the written files — docs/specs/product-spec.md, the production/findings.md rows recorded in Phase 3 and production/stage.txt when it changed; a spec written per section gets one gate, after the last section. Record the gate before asking — <hooks>session-state.sh set Gate "/product-spec Phase 5: commit?" — and clear it after the answer (<hooks>session-state.sh set Gate "—").
- On the default branch when no story work is in progress.
- When HEAD is a story branch, name it and offer: switch to the default branch and commit there (Recommended — a pipeline-wide document) · commit here (the document belongs to this story) · leave uncommitted.
- Code, configs, workflows and scripts never ride the
docs:commit.
Nothing is committed without the answer.
Verdict: APPROVED | NEEDS REVISION. Next step — one AskUserQuestion: /feature-spec for the Must features (Recommended) · /game-concept (game) · revise the spec. When Phase 3 step 5 chose story stubs for an item, the first option reads /feature-spec F-NNN for that feature (Recommended) and says that /create-stories follows once the spec has acceptance criteria — it blocks without them.
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
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.

