generate-prd
Generates Product Requirements Documents for new features through guided discovery. Use when starting a new feature, creating specifications, or when user needs help defining requirements with clarifying questions.
What this skill does
<objective>
Generate detailed, actionable Product Requirements Documents (PRDs) for new features. Guide users through clarifying questions, then produce specifications suitable for implementation by developers or AI agents.
**Important**: This skill creates PRDs only—it does NOT begin implementation.
</objective>
<quick_start>
1. Ask 3-5 clarifying questions with lettered options (A, B, C, D)
2. Generate structured PRD based on answers
3. Save to `tasks/prd-[feature-name].md`
</quick_start>
<process>
<step name="1_clarifying_questions">
Ask 3-5 essential questions using AskUserQuestion tool. Cover:
- **Problem/Goal**: What problem does this solve? Who benefits?
- **Core Functionality**: What are the must-have features?
- **Scope/Boundaries**: What is explicitly NOT included?
- **Success Criteria**: How will we know this worked?
Each question should have 3-4 concrete options (A, B, C, D format) plus "Other" for custom input.
</step>
<step name="2_generate_prd">
Create the PRD document with these sections:
1. **Introduction/Overview** – Brief feature description and problem statement
2. **Goals** – Specific, measurable objectives
3. **User Stories** – Each with title, description, and verifiable acceptance criteria
4. **Functional Requirements** – Numbered explicitly (FR-1, FR-2, etc.)
5. **Non-Goals** – Clear scope boundaries
6. **Design Considerations** – UI/UX requirements (if applicable)
7. **Technical Considerations** – Constraints and dependencies (if applicable)
8. **Success Metrics** – Measurable outcomes
9. **Open Questions** – Remaining clarifications needed
</step>
<step name="3_save_document">
Save the PRD to: `tasks/prd-[feature-name].md`
Use kebab-case for feature name (e.g., `prd-user-authentication.md`).
</step>
</process>
<principles>
<principle name="explicitness">
Avoid jargon or explain it. Provide concrete examples. A junior developer should understand every requirement without additional context.
</principle>
<principle name="verifiability">
Acceptance criteria must be testable and specific.
**Good**: "Login button redirects to /dashboard on success"
**Bad**: "Login works correctly"
</principle>
<principle name="ui_stories">
Every UI-focused user story MUST include this acceptance criterion:
`"Verify in browser using dev-browser skill"`
</principle>
<principle name="atomic_stories">
Each user story should be small enough to implement in one session. If a story feels too large, break it into smaller stories.
</principle>
</principles>
<prd_template>
```markdown
# PRD: {{Feature Name}}
## 1. Introduction
{{Brief description of the feature and the problem it solves}}
## 2. Goals
- {{Goal 1: Specific, measurable objective}}
- {{Goal 2: Specific, measurable objective}}
## 3. User Stories
### US-1: {{Story Title}}
**As a** {{user type}}, **I want** {{feature}} **so that** {{benefit}}.
**Acceptance Criteria:**
- {{Specific, testable criterion}}
- {{Specific, testable criterion}}
- Verify in browser using dev-browser skill (for UI stories)
### US-2: {{Story Title}}
...
## 4. Functional Requirements
- **FR-1**: {{Explicit requirement}}
- **FR-2**: {{Explicit requirement}}
- **FR-3**: {{Explicit requirement}}
## 5. Non-Goals
- {{What this feature explicitly does NOT do}}
- {{Scope boundary}}
## 6. Design Considerations
{{UI/UX requirements, wireframe references, design patterns}}
## 7. Technical Considerations
{{Constraints, dependencies, integration points, performance requirements}}
## 8. Success Metrics
- {{Measurable outcome 1}}
- {{Measurable outcome 2}}
## 9. Open Questions
- [ ] {{Unresolved question needing clarification}}
```
</prd_template>
<examples>
<example name="good_acceptance_criteria">
**Good:**
- "Search results display within 2 seconds"
- "Error message shows 'Invalid email format' for malformed input"
- "Clicking 'Save' disables button and shows spinner until complete"
**Bad:**
- "Search is fast"
- "Shows appropriate error messages"
- "Good UX on save"
</example>
<example name="good_functional_requirements">
- **FR-1**: System shall validate email format using RFC 5322 pattern
- **FR-2**: Password must be minimum 8 characters with at least one number
- **FR-3**: Session expires after 30 minutes of inactivity
</example>
</examples>
<success_criteria>
PRD is complete when:
- [ ] 3-5 clarifying questions were asked and answered
- [ ] All 9 PRD sections are filled with concrete content
- [ ] User stories have verifiable acceptance criteria
- [ ] UI stories include browser verification criterion
- [ ] Functional requirements are numbered (FR-1, FR-2, etc.)
- [ ] Non-goals clearly define scope boundaries
- [ ] Document saved to `tasks/prd-[feature-name].md`
- [ ] No implementation has begun (PRD only)
</success_criteria>
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.