product-prd
Skill8 starsChanged 49 days agoMITView on GitHub
Gate-checked, size-and-intent-tiered PRD authoring. Runs a gate-zero first (is a written doc even needed, or is a 3-line ticket or a prototype enough?), then a Brief, one-pager, or big-tier stack; the big tier branches on intent: a PR/FAQ for validation versus a numbered full PRD for execution. Enforces positive, mandatory non-goals at medium and up, ID'd testable traceable requirements, and ends in a hand-off plus a self-grade. Use for "write a PRD", "draft product requirements", or "spec out this product". Writes no code. Not for the design spec (use product-design-spec), the visual token system (use product-design-tokens), or a single decision record (use docs-adr or docs-rfc).
4 other projects use a version of this.
Adopted by
Most recently taken up by
- SuShuheng/making-thingstheir own version, first seen Jul 16, 2026
- Bosh-Kuo/awesome-agent-toolkittheir own version, first seen Jul 5, 2026
- d-wwei/Product-Prd-Skilltheir own version, first seen Apr 10, 2026
- levinchang/productdesign-skillstheir own version, first seen Apr 2, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- levinchang/productdesign-skills★ 4same name
- Bosh-Kuo/awesome-agent-toolkit★ 2same name
- d-wwei/Product-Prd-Skill★ 1same name
- SuShuheng/making-things★ 1same name
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 repository53 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-browserSkill
- anything-to-skillSkill
- ci-generateSkill
- ci-localSkill
- clotho-researchSkill
- codex-imagegenSkill
- create-ruleSkill
- create-skillSkill
- db-migrateSkill
- docker-initSkill
- docs-adrSkill
- docs-checkSkill
- docs-diagramSkill
- docs-initSkill
- docs-rfcSkill
- docs-updateSkill
- env-setupSkill
- find-skillsSkill
- fix-bugSkill
- git-commitSkill
- git-create-prSkill
- gitflowSkill
- git-releaseSkill
- git-syncSkill
- i18n-checkSkill
- implement-featureSkill
- improve-skillSkill
- inject-docsSkill
- jira-cliSkill
- motion-studioSkill
- optimize-ai-setupSkill
- orchestrateSkill
- oss-launchSkill
- prd-to-issuesSkill
- product-design-specSkill
- product-design-tokensSkill
- project-illustratorSkill
- project-plannerSkill
- refactorSkill
- renderSkill
- review-codeSkill
- review-depsSkill
- review-designSkill
- review-perfSkill
- review-planSkill
- review-securitySkill
- shipSkill
- stopslopSkill
- test-suiteSkill
- vrt-checkSkill
- wtfSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 4 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
4
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 84
Read the input source. If the repo is relevant (existing product), inspect it before asking the user anything: spawn an Explore/haiku agent …
- Distinctive: line 126
Stop here if the answer is no: revise and re-present.
- Distinctive: line 130
Create the single file, then fill it from the tier template:
- Very specific: line 168
When the PRD's downstream reader is an AI implementation agent (this repo's own implement-feature/fix-bug) rather than a human, switch …
- Distinctive: line 172
Never boundary list, then separately records the project's own conventions.
- Distinctive: line 179
Every externally-derived claim carries a source.
- Very specific: line 180
Never invent requirement IDs that don't trace to a decision or need.
“Common” is measured: kept by at least 6 in 10 of the 3 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 PRD
Author the right product doc for the work (sometimes a 3-line ticket, sometimes a full PRD), never more
than the work warrants. This skill writes no application code; it produces the requirements a build
(implement-feature) then works from. Output lands under docs/specs/prd/. <skill-dir> below is this skill's directory.
Input
$ARGUMENTS
Parse the source (first match wins), then read it:
| Pattern | Source | Read via |
PROJ-123 | Jira | jira issue view PROJ-123 |
#42 / owner/repo#42 | GitHub issue | gh issue view 42 --json title,body,labels,comments |
!123 / PR URL | GitHub PR | gh pr view 123 --json title,body,files |
| existing path | file/dir | Read it (dir: README, CLAUDE.md/AGENTS.md, key files) |
http(s):// | URL | WebFetch |
| anything else | plain text | the idea itself |
A trailing --tier brief|one-pager|big and/or --intent validation|execution overrides the assessment.
Prerequisites & fallback
Parallel research and discovery use the Task tool with Explore/haiku subagents. No Task tool? Run
every research and discovery step inline, sequentially: the phase → gate → phase structure below is the
workflow; subagents are just how it parallelizes.
Lean by default
The organizing principle. Default to a single docs/specs/prd/PRD.md and split a section into its own
file only when it outgrows itself. Length is not quality: a bloated PRD and a tight one get rated worlds
apart on content alone. Cut anything that doesn't trace back to the problem, a goal, or a success metric.
- Track position with a single
Phase: Xline in your working notes: no per-turn counters, no resume state. - Cost stop-condition: if the work seems to want a large multi-file tree, stop and ask before emitting
it. Never auto-generate a 12- or 37-file document set. That tree exists only behind
<skill-dir>/scripts/scaffold.py --enterprise <tier>, for a platform-scale program that has genuinely outgrown one file.
Tiers: size AND intent
Gate-zero decides whether to write a doc; the tier decides which doc. Full detail:
references/phase-workflow.md.
| Tier | When | Template |
| brief (small) | single feature/addition | assets/templates/brief.md, ticket-shaped, ~2-3 reqs, <30s read |
| one-pager (medium) | a module or small app | assets/templates/one-pager.md, mandatory non-goals, ≤2pp |
| big / validation | "should we build this?" | assets/templates/prfaq.md, press release + FAQ + mandatory top-3 failures |
| big / execution | "we've decided; build it" | assets/templates/prd-full.md, numbered reqs, baseline/target/window metrics, dated changelog |
Graduating guard: if a one-pager draft exceeds ~5-7 requirements or the scope touches more than one
team/system, stop and restart in prd-full.md rather than bloating the one-pager in place.
Workflow
Four phases: Discover → Decide → ═authorization gate═ → Author → Validate.
Phase: Discover
Read the input source. If the repo is relevant (existing product), inspect it before asking the user
anything: spawn an Explore/haiku agent (or do it inline):
Task (Explore, haiku): "Discover this repo's product surface & stack: read CLAUDE.md/AGENTS.md, README,
package/build files; map major components, data model, existing capabilities, and any current PRD/specs
under docs/. Return a structured summary, each finding tagged CONFIRMED | INFERRED | UNKNOWN."Tag every finding CONFIRMED / INFERRED / UNKNOWN: never present an inference as a fact. Pick the discovery mode by context: cold start → 3-5 lettered clarifying questions; warm start → synthesize from the conversation + a quick repo scan, then run a lightweight gap check.
Gate-zero: does this even need a written doc? For a one-line change, a bug-shaped fix, or anything faster to prototype than to spec, say so and stop:
"This doesn't need a PRD. Here's a 3-line ticket: {problem / change / acceptance}, or just prototype it and we'll spec from what we learn."
Being willing to talk the user out of a doc is the point of gate-zero.
Phase: Decide
- Pick the tier: assess size, then branch the big tier on intent (validation vs execution). Honor
--tier/--intentif passed. State the choice and why in one line. - Research: fan out one
Explore/haiku agent per workstream the open decisions actually need (competitors, technical options, regulatory, platform, accessibility). Each returns rowsfinding | source URL | date | confidence | implicationand invents nothing. Merge them asfindingrows in the one decision log (assets/templates/decision-log.md). Cite every externally-derived claim. - Interview: ask the open decisions in dependency order (vision → problem → users → scope → journeys →
architecture → non-functional → metrics), each via
AskUserQuestionwith thedecision-question.mdtemplate (decision, evidence, a recommendation with rationale, alternatives). Record answers asdecision/assumption/questionrows in the same log. Keep facts, assumptions, and recommendations separate: a recommendation never hardens into a requirement without an approved decision. For the users decision, capture persona and user evidence withproduct-design-spec'spersona.mdrulebook (via theSkilltool where available, else readpersona.mdfromproduct-design-spec'sassets/templates/) rather than duplicating persona guidance here. Alignment gate (authorization): assemble the ~1-page
alignment-summary.mdand present it:"Alignment summary for {product}: tier = {tier}, {N} approved decisions, {M} assumptions, {K} open. Do you authorize me to author
docs/specs/prd/PRD.md?"Stop here if the answer is no: revise and re-present. Author nothing before authorization.
Phase: Author
Create the single file, then fill it from the tier template:
python <skill-dir>/scripts/scaffold.py --dir docs/specs/prd # one PRD.md- Requirements use
assets/templates/requirement.md: a unique ID (PRD-<CAT>-NNN, six categories FR/NFR/UX/SEC/DATA/DES), RFC-2119 language, one behaviour per requirement, a 3-field evidence block (finding / evidence path / confidence), and Given/When/Then acceptance criteria. Rules:references/requirement-hygiene.md(the shared rulebook) andreferences/requirement-standards.md. - Non-goals are mandatory at medium+ and stated POSITIVELY: say where the excluded work lives or when it's revisited, never a bare "we won't do X" (a downstream agent can't infer scope from omission).
- Tag every unresolved gap
[NEEDS CLARIFICATION: ...]rather than guessing: it stays greppable. - Prioritization/metrics (JTBD/Kano/MoSCoW/RICE, NSM/HEART/AARRR) are opt-in: reach for
references/frameworks.mdonly when finer granularity is actually wanted. - Diagrams: delegate Mermaid to the
docs-diagramskill (via theSkilltool where available, otherwise apply its diagram conventions inline). Task breakdown once requirements exist: hand off toproject-planner. A decision worth a permanent record: offerdocs-adr(made) /docs-rfc(proposed).
Phase: Validate & hand off
python <skill-dir>/scripts/validate.py --dir docs/specs/prd # gate: 0 CRITICAL, 0 MAJOR
python <skill-dir>/scripts/hygiene.py --dir docs/specs/prd # advisory INVEST/EARS lintsFix every CRITICAL/MAJOR (missing/duplicate IDs, ACs without Given/When/Then, missing Non-Goals, unresolved
[NEEDS CLARIFICATION], compound requirements, dangling links, leftover placeholders). Then:
- Self-grade inline (no separate report file): does every requirement trace to a stated goal? Check for vague wording and missing sections, and confirm no requirement still bundles more than one behaviour. State the readiness verdict in a sentence or two.
- Hand off: write the file to its repo path (report the path), or, if the user works in a tracker, offer
to open the ticket/issue. Name the downstream consumer:
product-design-spec(design) andimplement-feature(build).
AI-agent-consumer mode (optional)
When the PRD's downstream reader is an AI implementation agent (this repo's own implement-feature/fix-bug)
rather than a human, switch modes. Use headings + lists over prose; state every non-goal positively; give every
requirement an independently-testable acceptance criterion. Optionally emit the companion
assets/templates/agent-contract.md. It pairs exact commands (with flags) with an Always / Ask-First /
Never boundary list, then separately records the project's own conventions.
Anti-hallucination
- Investigate the repo and search the web before asking the user: don't ask what the code already answers.
- Tag every finding CONFIRMED / INFERRED / UNKNOWN; never present an inference or a recommendation as a fact or an approved requirement.
- Every externally-derived claim carries a source. No fabricated counts or metrics, and no invented competitor data.
- Never invent requirement IDs that don't trace to a decision or need. Run
validate.pybefore declaring done. - The alignment gate is real: author files only after explicit authorization.
References
references/phase-workflow.md: the four phases, gate-zero, size+intent tiering, graduating guard, research fan-outreferences/requirement-hygiene.md: RFC-2119, the 8-term vague blocklist, INVEST, EARS, compound-split,[NEEDS CLARIFICATION](shared with product-design-spec)references/requirement-standards.md: the six-category ID scheme, requirement quality, the one decision logreferences/frameworks.md: opt-in prioritization (JTBD/Kano/MoSCoW/RICE) & metrics (NSM/HEART/AARRR) pipelinesassets/templates/: brief, one-pager, prfaq, prd-full, requirement, decision-question, decision-log, alignment-summary, agent-contract, prd-rootscripts/scaffold.py·scripts/validate.py·scripts/hygiene.py
Boundaries
- The design half (IA, flows, screens, states) →
product-design-spec. - The visual token system (DTCG / DESIGN.md) →
product-design-tokens. - A single architecture/decision record →
docs-adr(records a made decision) ordocs-rfc(proposes one). - A lightweight spec that immediately precedes coding →
implement-feature. - Auditing an existing design's UX →
review-design. Rendering visual assets →codex-imagegen. - WHAT/WHY only, never HOW. Writes no application code.
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.

