Use when creating a PRD, defining features, prioritizing requirements, or scoping an MVP. Also triggers on 'product requirements', 'feature list', 'what should we build first', 'MoSCoW', 'prioritize features', or 'define the product scope'.
From pmnpx claudepluginhub etusdigital/etus-plugins --plugin pmThis skill uses the workspace's default tool permissions.
knowledge/guide.mdknowledge/template.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
Reference: .claude/skills/orchestrator/dependency-graph.yaml
BLOCKS (required — auto-invoke if missing):
docs/ets/projects/{project-slug}/discovery/product-vision.md — Provides the BO-# business objectives that get transformed into features. Without these, there is nothing to prioritize.docs/ets/projects/{project-slug}/planning/prioritization.md — Opportunity ranking determines which problems deserve delivery scope.docs/ets/projects/{project-slug}/planning/solution-discovery.md — Delivery requirements should only be written after the chosen solution direction is explicit.ENRICHES (improves output — warn if missing):
docs/ets/projects/{project-slug}/discovery/project-context.md — Tech stack and constraints help assess feature feasibility more accurately.docs/ets/projects/{project-slug}/discovery/opportunity-pack.md — Provides the full
problem-space coverage that should be converted into structured requirements.docs/ets/projects/{project-slug}/state/coverage-matrix.yaml — Helps verify that actors,
JTBDs, journeys, use cases, edge cases, and assumptions are represented in
the PRD scope.Resolution protocol:
dependency-graph.yaml → prd.requires: [product-vision]product-vision.md exist, non-empty, not DRAFT?product-vision skill → wait → continueproject-context.md → warn if missing, proceed regardlessWhy this matters: The PRD is the single source of truth for scope and priorities. If it only exists in chat, downstream skills (user-stories, feature-spec, architecture) cannot read it, and traceability breaks.
mkdir -p if neededIf the Write fails: Report the error to the user and do not proceed to the next skill — downstream documents depend on this file existing.
This skill follows the ETUS interaction standard. Your role is a thinking partner, not an interviewer — suggest alternatives, challenge assumptions, and explore what-ifs instead of only extracting information.
One question per message — Ask one question, wait for the answer, then ask the next. Use the AskUserQuestion tool when available for structured choices. Batching multiple questions overwhelms the user and leads to shallow answers.
3-4 suggestions for choices — When the user needs to choose a direction, present 3-4 concrete options with a brief description of each. Highlight your recommendation. Let the user pick before proceeding.
Propose approaches before generating — Before generating any content section, propose 2-3 approaches with tradeoffs and a recommendation. For example, before the feature list: propose "minimal MVP" vs "balanced" vs "ambitious" scope approaches.
Present output section-by-section — Do not generate the full PRD at once. Present each major section (executive summary, feature list, scope boundaries, success criteria, etc.), ask "Does this capture it well? Anything to adjust?" and only proceed after approval.
Track outstanding questions — If something cannot be answered now, classify it:
Multiple handoff options — At completion, present 3-4 next steps as options (see CLOSING SUMMARY).
Resume existing work — Before starting, check if the target artifact already exists at the expected path. If it does, ask the user: "I found an existing prd.md at [path]. Should I continue from where it left off, or start fresh?" If resuming, read the document, summarize the current state, and continue from outstanding gaps.
Assess if full process is needed — If the user's input is already detailed with clear requirements, specific acceptance criteria, and defined scope, don't force the full interview. Confirm understanding briefly and offer to skip directly to document generation. Only run the full interactive process when there's genuine ambiguity to resolve.
This skill reads and writes persistent memory to maintain context across sessions.
On start (before any interaction):
docs/ets/.memory/project-state.md — know where the project isdocs/ets/.memory/decisions.md — don't re-question closed decisionsdocs/ets/.memory/preferences.md — apply user/team preferences silentlydocs/ets/.memory/patterns.md — apply discovered patternsOn finish (after saving artifact, before CLOSING SUMMARY):
project-state.md is updated automatically by the PostToolUse hook — do NOT edit it manually.python3 .claude/hooks/memory-write.py decision "<decision>" "<rationale>" "<this-skill-name>" "<phase>" "<tag1,tag2>"python3 .claude/hooks/memory-write.py preference "<preference>" "<this-skill-name>" "<category>"python3 .claude/hooks/memory-write.py pattern "<pattern>" "<this-skill-name>" "<applies_to>"The .memory/*.md files are read-only views generated automatically from memory.db. Never edit them directly.
Before generating content, challenge the framing with these questions (ask the most relevant 1-2, not all):
The goal is to sharpen the problem framing, not to block progress. If the user's framing is solid, acknowledge it and move on quickly. Only dig deeper when genuine misframing signals appear.
Transform product vision into prioritized, traceable requirements. This skill bridges Discovery (what we're building) and Design (how we'll build it) by identifying all features, prioritizing them through MoSCoW, and establishing scope boundaries. It now assumes ideation has already mapped the covered problem space, so the PRD should convert that coverage into requirements rather than discover it from scratch.
Load context in this order of priority:
docs/ets/projects/{project-slug}/planning/solution-discovery.md first.[upstream-path], read that file directly (typically product-vision.md).docs/ets/projects/{project-slug}/state/reports/ for any upstream planning artifacts or feature lists.docs/ets/projects/{project-slug}/discovery/ for existing product-vision.md to extract BO-#.Transform each Business Objective (BO-#) into features using How Might We — one BO at a time, one feature at a time:
Result: A comprehensive feature list (typically 10-25 features for MVP scope), built collaboratively one feature at a time.
Classify each feature into one of four buckets — presenting each feature individually for prioritization:
Prioritization flow — one feature at a time:
Healthy distribution guideline (share with user if distribution is skewed):
PRD-F-# Pattern: Product Requirements Features. Format: PRD-F-1, PRD-F-2, etc. Each PRD-F-# must:
Maintain traceability: BO-# → PRD-F-# → US-# → acceptance criteria (Given/When/Then)
Feature definitions and MoSCoW priorities live only in prd.md.
Why: if priorities are scattered across documents, teams get conflicting instructions and scope creep goes undetected. By keeping scope decisions here, any change is visible in one place. Downstream documents (user-stories.md, feature-spec-*.md, api-spec.md, implementation-plan.md) reference PRD-F-# but rely on this document for priority and scope definitions.
The generated docs/ets/projects/{project-slug}/planning/prd.md contains:
references/template.md for the prd.md document template and standard structure.references/guide.md for feature brainstorming and prioritization best practices.Upon completion, present handoff options to the user (see CLOSING SUMMARY). Validate PRD-F-# to BO-# traceability before proceeding.
product-vision.md (BLOCKS):
BO-# identifier — without business objectives there is nothing to decompose into features## Business Objectives, ## Target Users — these drive the HMW brainstormproject-context.md (ENRICHES):
## WHAT, ## WHY — provides constraints that improve feature feasibility assessmentBefore marking this document as COMPLETE:
If any check fails → mark document as DRAFT with <!-- STATUS: DRAFT --> at top.
After saving and validating, display the summary and offer multiple next steps:
prd.md saved to `docs/ets/projects/{project-slug}/planning/prd.md`
Status: [COMPLETE | DRAFT]
IDs generated: [list PRD-F-# IDs, e.g., PRD-F-1, PRD-F-2, PRD-F-3]
What would you like to do next?
1. Proceed to User Stories (Recommended) — Start decomposing features into testable stories (US-#)
2. Refine this PRD — Review and improve specific sections
3. Run Discovery Gate first — Validate discovery artifacts before continuing
4. Pause for now — Save and return later
Wait for the user's choice before proceeding. Do not auto-advance to the next skill.
product-vision.md (BLOCKS), project-context.md (ENRICHES)user-stories skilldocs/ets/projects/{project-slug}/planning/ — create if missingdocs/ets/projects/{project-slug}/planning/prd.md using the Write tooldocs/ets/projects/{project-slug}/planning/prd.md) + paths to upstream documents (BLOCKS: docs/ets/projects/{project-slug}/discovery/product-vision.md)"Document saved to
docs/ets/projects/{project-slug}/planning/prd.md. The spec reviewer approved it. Please review and let me know if you want any changes before we proceed." Wait for the user's response. If they request changes, make them and re-run the spec review. Only proceed to validation after user approval.
| Error | Severity | Recovery | Fallback |
|---|---|---|---|
| BLOCKS dep missing (product-vision.md) | Critical | Auto-invoke product-vision skill | Block execution |
| product-vision.md has no BO-# | Critical | Re-invoke product-vision with feedback | Block — PRD cannot trace without BO-# |
| User can't prioritize features | Medium | Suggest default: all Could Have except first 3 Must | Proceed with tentative priorities |
| Output validation fails | High | Mark as DRAFT, flag gaps | Proceed with DRAFT status |
| Conflicting PRD-F-# IDs | Medium | Renumber starting from max+1 | Append suffix |
This skill supports iterative quality improvement when invoked by the orchestrator or user.
| Condition | Action | Document Status |
|---|---|---|
| Completeness ≥ 90% | Exit loop | COMPLETE |
| Improvement < 5% between iterations | Exit loop (diminishing returns) | DRAFT + notes |
| Max 3 iterations reached | Exit loop | DRAFT + iteration log |
--quality-loop on any skill invocation--no-quality-loop to disable (generates once, validates once)When the self-evaluation identifies a weakness (score < 7/10 on any criterion):
Example: If "MVP boundary not clearly defined" is identified:
Before finalizing the document, run this internal metacognitive check:
| Confidence | Action |
|---|---|
| LOW on any section | Ask the user ONE targeted question before finalizing |
| MEDIUM | Flag inline with <!-- CONFIDENCE: MEDIUM — [reason] --> and proceed |
| HIGH | Proceed directly to OUTPUT VALIDATION |