From sage
Generates Product Requirements Documents (PRDs) from JTBD analyses into prioritized, testable requirements. Use to define product scope, align teams, or translate customer needs into specs.
npx claudepluginhub xoai/sageThis skill uses the workspace's default tool permissions.
<!-- sage-metadata
Writes structured, evidence-based PRDs with measurable goals, prioritized requirements, success metrics, and scope boundaries. Use for PRD, product spec, or feature requirements requests.
Generates engineering-ready PRDs with problem statement, personas, MoSCoW features, success metrics, and timeline. For full product specs or major feature sets.
Generates Product Requirements Documents (PRDs) with user stories, success metrics, scope, technical considerations, and risks for product features.
Share bugs, ideas, or general feedback.
Produce a brief that is grounded in JTBD outcomes, not feature wish lists. Every requirement traces back to a customer need. The output is a document deliverable — not code.
Deliverable type: document
FIX (update): Update specific parts of an existing PRD — revise requirements after new research, update acceptance criteria after design review, add/remove scope items after stakeholder feedback. Don't rewrite the whole document. Locate the section, make the change, update the traceability table if affected. Minutes.
BUILD (light): Light PRD (1-2 pages). Problem statement, 3-5 requirements in job story format with acceptance criteria, success metrics, and out-of-scope list. Skip detailed constraints, open questions, and the appendix. Sufficient for well-scoped features where the team has strong shared context. 15 minutes.
ARCHITECT (full): Full PRD (3-6 pages). All seven sections: problem statement with evidence, goals and success metrics with baselines and targets, segments and context, requirements with traceability table and MoSCoW tiers, constraints and dependencies, open questions with owners, out-of-scope with rationale. 30-45 minutes.
This skill requires a JTBD analysis as input. If no JTBD analysis exists:
.sage/docs/jtbd-analysis.md)jtbd skill firstFind the JTBD analysis that this PRD will be grounded in. Confirm with the user:
If the user provides all of this upfront, proceed. If not, ask in ONE message.
Read first: references/prd-methodology.md (Problem Statement section)
Write the problem statement using ONLY information from the JTBD analysis:
Every claim must cite its source (JTBD outcome #, survey data, interview quote). If the JTBD analysis is labeled "hypothesized," carry that label forward.
Read first: references/prd-methodology.md (Goals and Success Metrics)
Derive the primary goal from the main job statement. Derive success metrics from the desired outcome statements:
Write non-goals explicitly. Ask: "What might someone expect this initiative to do that it will NOT do?" Non-goals prevent scope creep.
Read first: references/requirements-writing.md (all sections)
Requirements are written for TWO audiences: humans (PMs, designers, stakeholders who read the brief to understand what we're building and why) and agents (AI or developers who translate requirements into implementation). Write for the human reader first — clear language, customer perspective, evident reasoning. The structure also serves agents — Given/When/Then scenarios translate directly into tests.
For each high-opportunity desired outcome from the JTBD analysis, write a requirement with these parts:
Job story: Convert the JTBD outcome into a job story: "When [situation from job map], [performer] wants to [outcome], so that [benefit from emotional/functional job]." The job story leads because the requirement exists to serve a customer need.
Why this priority: Justify the MoSCoW priority with evidence — the opportunity score, what depends on this requirement, and why this tier. Assign priority using:
Delivers value independently: State whether this requirement provides user value on its own (can be shipped and demoed independently) or is foundational (enables other requirements but isn't user-visible alone). This maps directly to milestones in the implementation plan — requirements that deliver value independently are natural ship points.
Acceptance scenarios: Write testable Given/When/Then scenarios. Include at least one boundary or negative case per requirement (what happens when conditions aren't met). Each scenario should be specific enough that a developer can turn it directly into a test.
Inline clarification markers: When a requirement contains an unresolved decision, mark it INLINE with ⚠️ NEEDS CLARIFICATION (Q[N]) right where the ambiguity lives. Don't leave ambiguity discoverable only in the Open Questions table — make it visible where it matters.
Some requirements are system-level: performance thresholds, accuracy targets, processing windows, data retention rules. These don't fit naturally into job story format because they describe system behavior, not user experiences.
Write these separately as "System must [capability] when [condition]" statements. Include priority and inline clarification markers where needed. These complement job stories — job stories define what users experience, functional requirements constrain how the system delivers it.
After writing individual requirements, identify cross-cutting boundary conditions that affect multiple requirements. "What happens when..." and "How does the system handle..." questions that don't fit neatly into a single requirement's acceptance scenarios.
Build the overview table linking each requirement to its JTBD source, priority, and whether it delivers value independently. This is the quick-scan summary for stakeholders who don't read every requirement.
Enforce the limit: Must-haves ≤40% of total requirements (job stories + functional requirements combined).
Identify constraints and dependencies:
Write the "Out of Scope" section explicitly. For each major capability NOT included, explain why and when to revisit.
Identify open questions — unresolved decisions that need answers before or during implementation. Each question needs an owner, a deadline, AND a "Where it appears" column pointing to the inline ⚠️ marker in the requirement that contains the ambiguity.
Read first: references/requirements-writing.md (Quality Checklist)
Before presenting the brief, validate:
If issues are found, fix before presenting.
Save to .sage/work/<YYYYMMDD>-<slug>/brief.md using the template from
templates/prd-template.md.
Append to .sage/decisions.md recording the brief
scope (which opportunity, how many requirements per priority tier),
key decisions, and open questions. Update the "Current Artifacts" section
to list the new file as Active.
Present to user: "Here's the brief grounded in the JTBD analysis. The [N] Must-have requirements target the top unmet needs: [X, Y, Z]. There are [M] open questions that need resolution before implementation. Want to refine any section?"
MUST:
references/prd-methodology.md before writing any PRDSHOULD:
MAY:
No JTBD input available: Don't produce an ungrounded PRD. Recommend
running the jtbd skill first. If the user insists, proceed but label
every requirement as "ungrounded" and flag this prominently.
JTBD analysis has no high-opportunity outcomes: The JTBD either didn't find significant unmet needs (rare) or didn't apply opportunity scoring. Ask the user to apply scoring to the outcomes before proceeding.
Requirements drift into solution space: The most common failure mode during writing. Check: does the requirement mention any specific UI element, technology, or implementation approach? If yes, rewrite as the underlying need. "Show a red banner" → "Communicate that spending exceeds threshold."
Everything is a Must-have: Push back. "If everything is a Must, nothing is. Which 2-3 outcomes would make this initiative fail if unaddressed?" Those are the Musts. Everything else is Should or Could.
Stakeholder adds requirements without JTBD backing: Ask: "Which customer need does this address?" If they can point to a pain or outcome, add it with the trace. If they can't, add it to the open questions or out-of-scope with a note: "Needs customer validation before inclusion."
Communication style: Product language. Emphasize user impact, business value, and measurable outcomes. Requirements should be understandable by non-technical stakeholders.
Good PRD output:
Before presenting your output, check each quality criterion above. For each, confirm it's met or note what's missing. Present your findings AND your self-assessment:
"Self-review: [X/Y criteria met]. [Note any gaps and why they exist.]"