Skill Tracer
Skills › Knowledge Work Plugins › write-spec

write-spec

skill · 250 lines · Apache-2.0 · product-management/skills/write-spec/SKILL.md

The facts

Its description

Write a feature spec or PRD from a problem statement or feature idea. Use when turning a vague idea or user request into a structured document, scoping a feature with goals and non-goals, defining success metrics and acceptance criteria, or breaking a big ask into a phased spec.

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent only sees the name "write-spec" and a description about turning a vague idea, user request, or problem statement into a structured feature spec or PRD with goals, non-goals, success metrics, and acceptance criteria. So it fires when someone asks for a spec or PRD to be written, or asks to scope or phase a feature idea into a document.

Things a person might say (the model's guesses)

  • “Write a PRD for adding SSO support.”
  • “I want to spec out CSV export for our users.”
  • “Turn this vague onboarding drop-off idea into a phased spec.”

A model's summary of when it is used.

A model's reading

What it takes when started

<feature or problem statement>

What to type after its name when you start it.

From its settingsline 4

Stops for a person

4 lines stop to ask a person

Lines that stop and wait for a person before going on. Found by matching words, so treat them as pointers.

Found by matching wordsline 23 line 31 line 55 line 73

Licence

Apache-2.0, from product-management/LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: write-spec
3description: Write a feature spec or PRD from a problem statement or feature idea. Use when turning a vague idea or user request into a structured document, scoping a feature with goals and non-goals, defining success metrics and acceptance criteria, or breaking a big ask into a phased spec.
4argument-hint: "<feature or problem statement>"
5---
6
7# Write Spec
8
9> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
11Write a feature specification or product requirements document (PRD).

Write Spec

If you see unfamiliar placeholders or need to check which tools are connected, see CONNECTORS.md.

Write a feature specification or product requirements document (PRD).

Raw lines 1 to 12
Boilerplate, lines 13 to 18. The same text appears in 24 other files here. Close
13## Usage
15```
16/write-spec $ARGUMENTS
17```
19## Workflow
21### 1. Understand the Feature
23Ask the user what they want to spec. Accept any of:
24- A feature name ("SSO support")
25- A problem statement ("Enterprise customers keep asking for centralized auth")
26- A user request ("Users want to export their data as CSV")
27- A vague idea ("We should do something about onboarding drop-off")

1. Understand the Feature

Ask the user what they want to spec. Accept any of:

  • A feature name ("SSO support")
  • A problem statement ("Enterprise customers keep asking for centralized auth")
  • A user request ("Users want to export their data as CSV")
  • A vague idea ("We should do something about onboarding drop-off")
Raw lines 21 to 28
Involves a person Ask the user :23
29### 2. Gather Context
31Ask the user for the following. Be conversational — do not dump all questions at once. Ask the most important ones first and fill in gaps as you go:
33- **User problem**: What problem does this solve? Who experiences it?
34- **Target users**: Which user segment(s) does this serve?
35- **Success metrics**: How will we know this worked?
36- **Constraints**: Technical constraints, timeline, regulatory requirements, dependencies
37- **Prior art**: Has this been attempted before? Are there existing solutions?

2. Gather Context

Ask the user for the following. Be conversational — do not dump all questions at once. Ask the most important ones first and fill in gaps as you go:

  • User problem: What problem does this solve? Who experiences it?
  • Target users: Which user segment(s) does this serve?
  • Success metrics: How will we know this worked?
  • Constraints: Technical constraints, timeline, regulatory requirements, dependencies
  • Prior art: Has this been attempted before? Are there existing solutions?
Raw lines 29 to 38
Involves a person Ask the user :31
39### 3. Pull Context from Connected Tools
41If **~~project tracker** is connected:
42- Search for related tickets, epics, or features
43- Pull in any existing requirements or acceptance criteria
44- Identify dependencies on other work items
46If **~~knowledge base** is connected:
47- Search for related research documents, prior specs, or design docs
48- Pull in relevant user research findings
49- Find related meeting notes or decision records
51If **~~design** is connected:
52- Pull related mockups, wireframes, or design explorations
53- Search for design system components relevant to the feature
55If these tools are not connected, work entirely from what the user provides. Do not ask the user to connect tools — just proceed with available information.

3. Pull Context from Connected Tools

If ~~project tracker is connected:

  • Search for related tickets, epics, or features
  • Pull in any existing requirements or acceptance criteria
  • Identify dependencies on other work items

If ~~knowledge base is connected:

  • Search for related research documents, prior specs, or design docs
  • Pull in relevant user research findings
  • Find related meeting notes or decision records

If ~~design is connected:

  • Pull related mockups, wireframes, or design explorations
  • Search for design system components relevant to the feature

If these tools are not connected, work entirely from what the user provides. Do not ask the user to connect tools — just proceed with available information.

Raw lines 39 to 56
Uses an outside tool ~~project :41
Uses an outside tool ~~knowledge :46
Uses an outside tool ~~design :51
Involves a person ask the user :55
57### 4. Generate the PRD
59Produce a structured PRD with these sections. See **PRD Structure** below for detailed guidance on what each section should contain.
61- **Problem Statement**: The user problem, who is affected, and impact of not solving it (2-3 sentences)
62- **Goals**: 3-5 specific, measurable outcomes tied to user or business metrics
63- **Non-Goals**: 3-5 things explicitly out of scope, with brief rationale for each
64- **User Stories**: Standard format ("As a [user type], I want [capability] so that [benefit]"), grouped by persona
65- **Requirements**: Categorized as Must-Have (P0), Nice-to-Have (P1), and Future Considerations (P2), each with acceptance criteria
66- **Success Metrics**: Leading indicators (change quickly) and lagging indicators (change over time), with specific targets
67- **Open Questions**: Unresolved questions tagged with who needs to answer (engineering, design, legal, data)
68- **Timeline Considerations**: Hard deadlines, dependencies, and phasing

4. Generate the PRD

Produce a structured PRD with these sections. See PRD Structure below for detailed guidance on what each section should contain.

  • Problem Statement: The user problem, who is affected, and impact of not solving it (2-3 sentences)
  • Goals: 3-5 specific, measurable outcomes tied to user or business metrics
  • Non-Goals: 3-5 things explicitly out of scope, with brief rationale for each
  • User Stories: Standard format ("As a [user type], I want [capability] so that [benefit]"), grouped by persona
  • Requirements: Categorized as Must-Have (P0), Nice-to-Have (P1), and Future Considerations (P2), each with acceptance criteria
  • Success Metrics: Leading indicators (change quickly) and lagging indicators (change over time), with specific targets
  • Open Questions: Unresolved questions tagged with who needs to answer (engineering, design, legal, data)
  • Timeline Considerations: Hard deadlines, dependencies, and phasing
Raw lines 57 to 69
70### 5. Review and Iterate
72After generating the PRD:
73- Ask the user if any sections need adjustment
74- Offer to expand on specific sections
75- Offer to create follow-up artifacts (design brief, engineering ticket breakdown, stakeholder pitch)

5. Review and Iterate

After generating the PRD:

  • Ask the user if any sections need adjustment
  • Offer to expand on specific sections
  • Offer to create follow-up artifacts (design brief, engineering ticket breakdown, stakeholder pitch)
Raw lines 70 to 76
Involves a person Ask the user :73
77## PRD Structure

PRD Structure

Raw lines 77 to 78
79### Problem Statement
80- Describe the user problem in 2-3 sentences
81- Who experiences this problem and how often
82- What is the cost of not solving it (user pain, business impact, competitive risk)
83- Ground this in evidence: user research, support data, metrics, or customer feedback

Problem Statement

  • Describe the user problem in 2-3 sentences
  • Who experiences this problem and how often
  • What is the cost of not solving it (user pain, business impact, competitive risk)
  • Ground this in evidence: user research, support data, metrics, or customer feedback
Raw lines 79 to 84
85### Goals
86- 3-5 specific, measurable outcomes this feature should achieve
87- Each goal should answer: "How will we know this succeeded?"
88- Distinguish between user goals (what users get) and business goals (what the company gets)
89- Goals should be outcomes, not outputs ("reduce time to first value by 50%" not "build onboarding wizard")

Goals

  • 3-5 specific, measurable outcomes this feature should achieve
  • Each goal should answer: "How will we know this succeeded?"
  • Distinguish between user goals (what users get) and business goals (what the company gets)
  • Goals should be outcomes, not outputs ("reduce time to first value by 50%" not "build onboarding wizard")
Raw lines 85 to 90
91### Non-Goals
92- 3-5 things this feature explicitly will NOT do
93- Adjacent capabilities that are out of scope for this version
94- For each non-goal, briefly explain why it is out of scope (not enough impact, too complex, separate initiative, premature)
95- Non-goals prevent scope creep during implementation and set expectations with stakeholders

Non-Goals

  • 3-5 things this feature explicitly will NOT do
  • Adjacent capabilities that are out of scope for this version
  • For each non-goal, briefly explain why it is out of scope (not enough impact, too complex, separate initiative, premature)
  • Non-goals prevent scope creep during implementation and set expectations with stakeholders
Raw lines 91 to 96
97### User Stories
98Write user stories in standard format: "As a [user type], I want [capability] so that [benefit]"
100Guidelines:
101- The user type should be specific enough to be meaningful ("enterprise admin" not just "user")
102- The capability should describe what they want to accomplish, not how
103- The benefit should explain the "why" — what value does this deliver
104- Include edge cases: error states, empty states, boundary conditions
105- Include different user types if the feature serves multiple personas
106- Order by priority — most important stories first
108Example:
109- "As a team admin, I want to configure SSO for my organization so that my team members can log in with their corporate credentials"
110- "As a team member, I want to be automatically redirected to my company's SSO login so that I do not need to remember a separate password"
111- "As a team admin, I want to see which members have logged in via SSO so that I can verify the rollout is working"

User Stories

Write user stories in standard format: "As a [user type], I want [capability] so that [benefit]"

Guidelines:

  • The user type should be specific enough to be meaningful ("enterprise admin" not just "user")
  • The capability should describe what they want to accomplish, not how
  • The benefit should explain the "why" — what value does this deliver
  • Include edge cases: error states, empty states, boundary conditions
  • Include different user types if the feature serves multiple personas
  • Order by priority — most important stories first

Example:

  • "As a team admin, I want to configure SSO for my organization so that my team members can log in with their corporate credentials"
  • "As a team member, I want to be automatically redirected to my company's SSO login so that I do not need to remember a separate password"
  • "As a team admin, I want to see which members have logged in via SSO so that I can verify the rollout is working"
Raw lines 97 to 112
113### Requirements
115**Must-Have (P0)**: The feature cannot ship without these. These represent the minimum viable version of the feature. Ask: "If we cut this, does the feature still solve the core problem?" If no, it is P0.
117**Nice-to-Have (P1)**: Significantly improves the experience but the core use case works without them. These often become fast follow-ups after launch.
119**Future Considerations (P2)**: Explicitly out of scope for v1 but we want to design in a way that supports them later. Documenting these prevents accidental architectural decisions that make them hard later.
121For each requirement:
122- Write a clear, unambiguous description of the expected behavior
123- Include acceptance criteria (see below)
124- Note any technical considerations or constraints
125- Flag dependencies on other teams or systems

Requirements

Must-Have (P0): The feature cannot ship without these. These represent the minimum viable version of the feature. Ask: "If we cut this, does the feature still solve the core problem?" If no, it is P0.

Nice-to-Have (P1): Significantly improves the experience but the core use case works without them. These often become fast follow-ups after launch.

Future Considerations (P2): Explicitly out of scope for v1 but we want to design in a way that supports them later. Documenting these prevents accidental architectural decisions that make them hard later.

For each requirement:

  • Write a clear, unambiguous description of the expected behavior
  • Include acceptance criteria (see below)
  • Note any technical considerations or constraints
  • Flag dependencies on other teams or systems
Raw lines 113 to 126
127### Open Questions
128- Questions that need answers before or during implementation
129- Tag each with who should answer (engineering, design, legal, data, stakeholder)
130- Distinguish between blocking questions (must answer before starting) and non-blocking (can resolve during implementation)

Open Questions

  • Questions that need answers before or during implementation
  • Tag each with who should answer (engineering, design, legal, data, stakeholder)
  • Distinguish between blocking questions (must answer before starting) and non-blocking (can resolve during implementation)
Raw lines 127 to 131
132### Timeline Considerations
133- Hard deadlines (contractual commitments, events, compliance dates)
134- Dependencies on other teams' work or releases
135- Suggested phasing if the feature is too large for one release

Timeline Considerations

  • Hard deadlines (contractual commitments, events, compliance dates)
  • Dependencies on other teams' work or releases
  • Suggested phasing if the feature is too large for one release
Raw lines 132 to 136
137## User Story Writing
139Good user stories are:
140- **Independent**: Can be developed and delivered on their own
141- **Negotiable**: Details can be discussed, the story is not a contract
142- **Valuable**: Delivers value to the user (not just the team)
143- **Estimable**: The team can roughly estimate the effort
144- **Small**: Can be completed in one sprint/iteration
145- **Testable**: There is a clear way to verify it works

User Story Writing

Good user stories are:

  • Independent: Can be developed and delivered on their own
  • Negotiable: Details can be discussed, the story is not a contract
  • Valuable: Delivers value to the user (not just the team)
  • Estimable: The team can roughly estimate the effort
  • Small: Can be completed in one sprint/iteration
  • Testable: There is a clear way to verify it works
Raw lines 137 to 146
147### Common Mistakes in User Stories
148- Too vague: "As a user, I want the product to be faster" — what specifically should be faster?
149- Solution-prescriptive: "As a user, I want a dropdown menu" — describe the need, not the UI widget
150- No benefit: "As a user, I want to click a button" — why? What does it accomplish?
151- Too large: "As a user, I want to manage my team" — break this into specific capabilities
152- Internal focus: "As the engineering team, we want to refactor the database" — this is a task, not a user story

Common Mistakes in User Stories

  • Too vague: "As a user, I want the product to be faster" — what specifically should be faster?
  • Solution-prescriptive: "As a user, I want a dropdown menu" — describe the need, not the UI widget
  • No benefit: "As a user, I want to click a button" — why? What does it accomplish?
  • Too large: "As a user, I want to manage my team" — break this into specific capabilities
  • Internal focus: "As the engineering team, we want to refactor the database" — this is a task, not a user story
Raw lines 147 to 153
154## Requirements Categorization

Requirements Categorization

Raw lines 154 to 155
156### MoSCoW Framework
157- **Must have**: Without these, the feature is not viable. Non-negotiable.
158- **Should have**: Important but not critical for launch. High-priority fast follows.
159- **Could have**: Desirable if time permits. Will not delay delivery if cut.
160- **Won't have (this time)**: Explicitly out of scope. May revisit in future versions.

MoSCoW Framework

  • Must have: Without these, the feature is not viable. Non-negotiable.
  • Should have: Important but not critical for launch. High-priority fast follows.
  • Could have: Desirable if time permits. Will not delay delivery if cut.
  • Won't have (this time): Explicitly out of scope. May revisit in future versions.
Raw lines 156 to 161
162### Tips for Categorization
163- Be ruthless about P0s. The tighter the must-have list, the faster you ship and learn.
164- If everything is P0, nothing is P0. Challenge every must-have: "Would we really not ship without this?"
165- P1s should be things you are confident you will build soon, not a wish list.
166- P2s are architectural insurance — they guide design decisions even though you are not building them now.

Tips for Categorization

  • Be ruthless about P0s. The tighter the must-have list, the faster you ship and learn.
  • If everything is P0, nothing is P0. Challenge every must-have: "Would we really not ship without this?"
  • P1s should be things you are confident you will build soon, not a wish list.
  • P2s are architectural insurance — they guide design decisions even though you are not building them now.
Raw lines 162 to 167
168## Success Metrics Definition

Success Metrics Definition

Raw lines 168 to 169
170### Leading Indicators
171Metrics that change quickly after launch (days to weeks):
172- **Adoption rate**: % of eligible users who try the feature
173- **Activation rate**: % of users who complete the core action
174- **Task completion rate**: % of users who successfully accomplish their goal
175- **Time to complete**: How long the core workflow takes
176- **Error rate**: How often users encounter errors or dead ends
177- **Feature usage frequency**: How often users return to use the feature

Leading Indicators

Metrics that change quickly after launch (days to weeks):

  • Adoption rate: % of eligible users who try the feature
  • Activation rate: % of users who complete the core action
  • Task completion rate: % of users who successfully accomplish their goal
  • Time to complete: How long the core workflow takes
  • Error rate: How often users encounter errors or dead ends
  • Feature usage frequency: How often users return to use the feature
Raw lines 170 to 178
179### Lagging Indicators
180Metrics that take time to develop (weeks to months):
181- **Retention impact**: Does this feature improve user retention?
182- **Revenue impact**: Does this drive upgrades, expansion, or new revenue?
183- **NPS / satisfaction change**: Does this improve how users feel about the product?
184- **Support ticket reduction**: Does this reduce support load?
185- **Competitive win rate**: Does this help win more deals?

Lagging Indicators

Metrics that take time to develop (weeks to months):

  • Retention impact: Does this feature improve user retention?
  • Revenue impact: Does this drive upgrades, expansion, or new revenue?
  • NPS / satisfaction change: Does this improve how users feel about the product?
  • Support ticket reduction: Does this reduce support load?
  • Competitive win rate: Does this help win more deals?
Raw lines 179 to 186
187### Setting Targets
188- Targets should be specific: "50% adoption within 30 days" not "high adoption"
189- Base targets on comparable features, industry benchmarks, or explicit hypotheses
190- Set a "success" threshold and a "stretch" target
191- Define the measurement method: what tool, what query, what time window
192- Specify when you will evaluate: 1 week, 1 month, 1 quarter post-launch

Setting Targets

  • Targets should be specific: "50% adoption within 30 days" not "high adoption"
  • Base targets on comparable features, industry benchmarks, or explicit hypotheses
  • Set a "success" threshold and a "stretch" target
  • Define the measurement method: what tool, what query, what time window
  • Specify when you will evaluate: 1 week, 1 month, 1 quarter post-launch
Raw lines 187 to 193
194## Acceptance Criteria
196Write acceptance criteria in Given/When/Then format or as a checklist:
198**Given/When/Then**:
199- Given [precondition or context]
200- When [action the user takes]
201- Then [expected outcome]
203Example:
204- Given the admin has configured SSO for their organization
205- When a team member visits the login page
206- Then they are automatically redirected to the organization's SSO provider
208**Checklist format**:
209- [ ] Admin can enter SSO provider URL in organization settings
210- [ ] Team members see "Log in with SSO" button on login page
211- [ ] SSO login creates a new account if one does not exist
212- [ ] SSO login links to existing account if email matches
213- [ ] Failed SSO attempts show a clear error message

Acceptance Criteria

Write acceptance criteria in Given/When/Then format or as a checklist:

Given/When/Then:

  • Given [precondition or context]
  • When [action the user takes]
  • Then [expected outcome]

Example:

  • Given the admin has configured SSO for their organization
  • When a team member visits the login page
  • Then they are automatically redirected to the organization's SSO provider

Checklist format:

  • [ ] Admin can enter SSO provider URL in organization settings
  • [ ] Team members see "Log in with SSO" button on login page
  • [ ] SSO login creates a new account if one does not exist
  • [ ] SSO login links to existing account if email matches
  • [ ] Failed SSO attempts show a clear error message
Raw lines 194 to 214
215### Tips for Acceptance Criteria
216- Cover the happy path, error cases, and edge cases
217- Be specific about the expected behavior, not the implementation
218- Include what should NOT happen (negative test cases)
219- Each criterion should be independently testable
220- Avoid ambiguous words: "fast", "user-friendly", "intuitive" — define what these mean concretely

Tips for Acceptance Criteria

  • Cover the happy path, error cases, and edge cases
  • Be specific about the expected behavior, not the implementation
  • Include what should NOT happen (negative test cases)
  • Each criterion should be independently testable
  • Avoid ambiguous words: "fast", "user-friendly", "intuitive" — define what these mean concretely
Raw lines 215 to 221
222## Scope Management

Scope Management

Raw lines 222 to 223
224### Recognizing Scope Creep
225Scope creep happens when:
226- Requirements keep getting added after the spec is approved
227- "Small" additions accumulate into a significantly larger project
228- The team is building features no user asked for ("while we're at it...")
229- The launch date keeps moving without explicit re-scoping
230- Stakeholders add requirements without removing anything

Recognizing Scope Creep

Scope creep happens when:

  • Requirements keep getting added after the spec is approved
  • "Small" additions accumulate into a significantly larger project
  • The team is building features no user asked for ("while we're at it...")
  • The launch date keeps moving without explicit re-scoping
  • Stakeholders add requirements without removing anything
Raw lines 224 to 231
232### Preventing Scope Creep
233- Write explicit non-goals in every spec
234- Require that any scope addition comes with a scope removal or timeline extension
235- Separate "v1" from "v2" clearly in the spec
236- Review the spec against the original problem statement — does everything serve it?
237- Time-box investigations: "If we cannot figure out X in 2 days, we cut it"
238- Create a "parking lot" for good ideas that are not in scope

Preventing Scope Creep

  • Write explicit non-goals in every spec
  • Require that any scope addition comes with a scope removal or timeline extension
  • Separate "v1" from "v2" clearly in the spec
  • Review the spec against the original problem statement — does everything serve it?
  • Time-box investigations: "If we cannot figure out X in 2 days, we cut it"
  • Create a "parking lot" for good ideas that are not in scope
Raw lines 232 to 239
240## Output Format
242Use markdown with clear headers. Keep the document scannable — busy stakeholders should be able to read just the headers and bold text to get the gist.

Output Format

Use markdown with clear headers. Keep the document scannable — busy stakeholders should be able to read just the headers and bold text to get the gist.

Raw lines 240 to 243
244## Tips
246- Be opinionated about scope. It is better to have a tight, well-defined spec than an expansive vague one.
247- If the user's idea is too big for one spec, suggest breaking it into phases and spec the first phase.
248- Success metrics should be specific and measurable, not vague ("improve user experience").
249- Non-goals are as important as goals. They prevent scope creep during implementation.
250- Open questions should be genuinely open — do not include questions you can answer from context.

Tips

  • Be opinionated about scope. It is better to have a tight, well-defined spec than an expansive vague one.
  • If the user's idea is too big for one spec, suggest breaking it into phases and spec the first phase.
  • Success metrics should be specific and measurable, not vague ("improve user experience").
  • Non-goals are as important as goals. They prevent scope creep during implementation.
  • Open questions should be genuinely open — do not include questions you can answer from context.
Raw lines 244 to 250

From anthropics/knowledge-work-plugins at 2574e29, 2026-10-27. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.