{"id":"3a5dd81c-ae38-426b-b718-3752b51eafe5","shortId":"66cLde","kind":"skill","title":"writing-prds","tagline":"Write a decision-ready PRD for cross-functional alignment. See also: writing-specs-designs (build-ready spec).","description":"# Writing PRDs\n\n## Scope\n\n**Covers**\n- Turning a product idea into a **decision-ready PRD** with unambiguous scope, requirements, and success metrics\n- Optionally producing a **PR/FAQ** (press release + FAQ) to force customer-centric narrative first\n- For AI features: adding a **Prompt Set** + **Eval Spec** so “requirements” are testable and continuously checkable\n\n**When to use**\n- “Write a PRD / product spec / requirements doc for this feature.”\n- “Turn these messy notes into a PRD we can align on.”\n- “Create a PR/FAQ and then a PRD.”\n- “This is an AI feature; I need evals + prompts to define behavior.”\n\n**When NOT to use**\n- You’re still choosing *what strategy/market to pursue* (do product vision / strategy first)\n- You need discovery from scratch (research plan, problem validation) more than requirements -> use `problem-definition`\n- You need a detailed engineering design doc (APIs, schemas, low-level architecture)\n- You’re prioritizing among many initiatives -> use `working-backwards` or roadmap prioritization first\n- You need build-ready interaction specs, user flows, or prototype briefs -> use `writing-specs-designs`\n- You need to define or refresh the success metric / North Star before writing requirements -> use `writing-north-star-metrics`\n\n## Inputs\n\n**Minimum required**\n- Product + target user/customer segment\n- Problem statement + why now (what changed, what’s broken, or what opportunity exists)\n- Goal(s) + non-goal(s) + key constraints (timeline, policy/legal, platform, dependencies)\n- Success metric(s) + 2–5 guardrails (quality, safety, cost, latency, trust)\n\n**If it’s an AI feature (additionally)**\n- What the model/system should do vs must never do (policy + safety)\n- Concrete examples of desired and undesired outputs\n- How correctness will be evaluated (offline tests, human review, online metrics)\n\n**Missing-info strategy**\n- Ask up to 5 questions from [references/INTAKE.md](references/INTAKE.md).\n- If answers are still missing, proceed with clearly labeled assumptions and provide 2–3 options (scope, metric, rollout).\n\n## Outputs (deliverables)\n\nProduce a **PRD Pack** in Markdown (in-chat; or as files if the user requests):\n\n1) **Context snapshot** (what decision we’re making, constraints, stakeholders)\n2) **Artifact selection** (PR/FAQ vs PRD vs AI add-ons)\n3) **PR/FAQ** (optional) — customer narrative + FAQs\n4) **PRD** — goals/non-goals, requirements (R1…Rn), UX flows, metrics, rollout\n5) **AI Prompt Set** (if AI) — versioned prompts + examples + guardrails\n6) **AI Eval Spec** (if AI) — acceptance tests + judge prompts + pass/fail criteria\n7) **Risks / Open questions / Next steps** (always included)\n\nTemplates: [references/TEMPLATES.md](references/TEMPLATES.md)\n\n## Workflow (8 steps)\n\n### 1) Decide the artifact set (don’t over-document)\n- **Inputs:** User request + constraints.\n- **Actions:** Choose: PR/FAQ only, PRD only, PR/FAQ → PRD, or PRD + AI add-ons (Prompt Set + Eval Spec).\n- **Outputs:** Artifact selection + rationale.\n- **Checks:** The artifacts match the decision being made and the audience.\n\n### 2) Intake + clarify decision and success\n- **Inputs:** [references/INTAKE.md](references/INTAKE.md).\n- **Actions:** Ask up to 5 questions; confirm decision owner, timeline, constraints, and success metrics/guardrails.\n- **Outputs:** Context snapshot.\n- **Checks:** You can state “what we’re deciding” and “how we’ll measure success” in 1–2 sentences.\n\n### 3) Write the customer narrative first (PR/FAQ or PRD narrative)\n- **Inputs:** Context snapshot.\n- **Actions:** Draft a customer-centric narrative (problem → solution → why now). If using PR/FAQ, draft the press release headline/summary and top FAQs.\n- **Outputs:** Narrative section (and PR/FAQ if selected).\n- **Checks:** A stakeholder can restate the customer benefit and urgency without jargon.\n\n### 4) Lock scope boundaries (goals, non-goals, out of scope)\n- **Inputs:** Narrative + constraints.\n- **Actions:** Define goals, non-goals, and explicit exclusions; call out dependencies and assumptions.\n- **Outputs:** Scope section(s) in the PRD.\n- **Checks:** “What we are NOT doing” is as clear as what we are doing.\n\n### 5) Convert scope into testable requirements (R1…Rn)\n- **Inputs:** Goals + user journeys.\n- **Actions:** Write numbered requirements with acceptance criteria, edge cases, and non-functional needs (privacy, latency, reliability). Mark “must/should/could”.\n- **Outputs:** Requirements table/list.\n- **Checks:** An engineer or QA can turn requirements into test cases without asking you to interpret intent.\n\n### 6) Define UX flows + instrumentation plan\n- **Inputs:** Requirements + current product surfaces/events.\n- **Actions:** Describe key user flows/states; specify success metrics, guardrails, and event/data needs (what to log, where, who owns).\n- **Outputs:** UX/flows section + metrics & instrumentation section.\n- **Checks:** Every goal has at least one measurable metric and a realistic data source.\n\n### 7) If AI feature: ship prompts + evals as “living requirements”\n- **Inputs:** Requirements + examples.\n- **Actions:** Create a versioned Prompt Set and an Eval Spec (judge prompts + test set + pass thresholds). Include red-team/failure modes.\n- **Outputs:** Prompt Set + Eval Spec drafts.\n- **Checks:** The eval suite can fail when behavior regresses and pass when requirements are met.\n\n### 8) Quality gate + finalize for circulation\n- **Inputs:** Full draft pack.\n- **Actions:** Run [references/CHECKLISTS.md](references/CHECKLISTS.md) and score with [references/RUBRIC.md](references/RUBRIC.md). Add Risks/Open questions/Next steps.\n- **Outputs:** Final PRD Pack (shareable as-is).\n- **Checks:** Decisions, owners, metrics, and open questions are explicit.\n\n## Quality gate (required)\n- Use [references/CHECKLISTS.md](references/CHECKLISTS.md) and [references/RUBRIC.md](references/RUBRIC.md).\n- Always include: **Risks**, **Open questions**, **Next steps**.\n\n## Examples\n\n**Example 1 (B2B SaaS feature):** “Write a PR/FAQ + PRD for ‘Saved views’ in our analytics dashboard for admins.”  \nExpected: PR/FAQ narrative, a scoped PRD with R1…Rn, metrics/guardrails, and a rollout plan.\n\n**Example 2 (AI feature):** “Write a PRD + Prompt Set + Eval Spec for an ‘AI email reply’ assistant with brand tone constraints.”  \nExpected: requirements that include safety/brand constraints, a prompt set with examples, and an eval spec with judge prompts + pass/fail thresholds.\n\n**Boundary example (redirect):** “Create a detailed interaction spec with user flows and acceptance criteria for our checkout redesign.”\nResponse: redirect to `writing-specs-designs` — this request needs build-ready specs with flows/states and prototype briefs, not a decision-level PRD.\n\n**Boundary example (insufficient context):** “Write a PRD for ‘make onboarding better’ (no product context).”\nResponse: ask the minimum intake questions; if context remains missing, produce 2–3 scoped options + assumptions and recommend discovery before committing to requirements.\n\n## Anti-patterns\n\nAvoid these common failure modes when writing PRDs:\n\n1. **Requirements-as-solutions** — Writing “build a modal dialog” instead of “user must confirm destructive actions before execution.” Requirements should describe *what* and *why*, not *how*.\n2. **Missing non-goals** — A PRD without explicit non-goals invites scope creep. Every PRD must state what is deliberately excluded from this version.\n3. **Vanity success metrics** — Choosing metrics that always go up (e.g., “total signups”) rather than metrics that reflect actual value delivery. Pair volume metrics with quality guardrails.\n4. **Spec-level detail in a PRD** — Including pixel-level UI descriptions, API schemas, or interaction states that belong in a spec/design doc. Keep the PRD at decision level.\n5. **Stakeholder alignment theater** — Listing stakeholders without clarifying who is the decision-maker (DRI) vs. consulted vs. informed. Ambiguous ownership leads to PRDs that never ship.","tags":["writing","prds","lenny","skills","plus","liqiongyu","agent-skills","ai-agents","automation","claude","codex","prompt-engineering"],"capabilities":["skill","source-liqiongyu","skill-writing-prds","topic-agent-skills","topic-ai-agents","topic-automation","topic-claude","topic-codex","topic-prompt-engineering","topic-refoundai","topic-skillpack"],"categories":["lenny_skills_plus"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/liqiongyu/lenny_skills_plus/writing-prds","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add liqiongyu/lenny_skills_plus","source_repo":"https://github.com/liqiongyu/lenny_skills_plus","install_from":"skills.sh"}},"qualityScore":"0.474","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 49 github stars · SKILL.md body (7,990 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:26.580Z","embedding":null,"createdAt":"2026-04-18T22:17:16.828Z","updatedAt":"2026-04-22T00:56:26.580Z","lastSeenAt":"2026-04-22T00:56:26.580Z","tsv":"'/failure':743 '1':343,416,504,824,987 '2':251,319,353,463,505,856,964,1014 '3':320,364,507,965,1040 '4':370,561,1067 '5':252,302,380,476,610,1098 '6':390,661 '7':402,710 '8':414,766 'accept':396,627,908 'action':430,472,520,575,622,672,723,776,1003 'actual':1058 'ad':63 'add':362,442,785 'add-on':361,441 'addit':265 'admin':840 'ai':61,110,263,360,381,385,391,395,440,712,857,868 'align':14,98,1100 'also':16 'alway':408,815,1047 'ambigu':1117 'among':168 'analyt':837 'answer':308 'anti':977 'anti-pattern':976 'api':159,1081 'architectur':164 'artifact':354,419,449,454 'as-i':794 'ask':299,473,656,954 'assist':871 'assumpt':316,588,968 'audienc':462 'avoid':979 'b2b':825 'backward':174 'behavior':118,758 'belong':1087 'benefit':556 'better':949 'boundari':564,896,939 'brand':873 'brief':190,932 'broken':231 'build':22,182,925,993 'build-readi':21,181,924 'call':584 'case':630,654 'centric':57,525 'chang':228 'chat':335 'check':452,489,549,596,644,696,751,797 'checkabl':75 'checkout':912 'choos':126,431,1044 'circul':771 'clarifi':465,1105 'clear':314,604 'commit':973 'common':981 'concret':277 'confirm':478,1001 'constraint':243,351,429,482,574,875,881 'consult':1114 'context':344,487,518,942,952,960 'continu':74 'convert':611 'correct':285 'cost':256 'cover':28 'creat':100,724,899 'creep':1028 'criteria':401,628,909 'cross':12 'cross-funct':11 'current':669 'custom':56,367,510,524,555 'customer-centr':55,523 'dashboard':838 'data':708 'decid':417,496 'decis':7,36,347,457,466,479,798,936,1096,1110 'decision-level':935 'decision-mak':1109 'decision-readi':6,35 'defin':117,199,576,662 'definit':151 'deliber':1035 'deliver':326 'deliveri':1060 'depend':247,586 'describ':673,1008 'descript':1080 'design':20,157,195,920 'desir':280 'destruct':1002 'detail':155,901,1071 'dialog':996 'discoveri':138,971 'doc':85,158,1091 'document':425 'draft':521,534,750,774 'dri':1112 'e.g':1050 'edg':629 'email':869 'engin':156,646 'eval':67,114,392,446,716,731,748,753,864,889 'evalu':288 'event/data':682 'everi':697,1029 'exampl':278,388,722,822,823,855,886,897,940 'exclud':1036 'exclus':583 'execut':1005 'exist':235 'expect':841,876 'explicit':582,805,1022 'fail':756 'failur':982 'faq':52,369,541 'featur':62,88,111,264,713,827,858 'file':338 'final':769,790 'first':59,135,178,512 'flow':187,377,664,906 'flows/states':676,929 'forc':54 'full':773 'function':13,634 'gate':768,807 'go':1048 'goal':236,240,565,568,577,580,619,698,1018,1025 'goals/non-goals':372 'guardrail':253,389,680,1066 'headline/summary':538 'human':291 'idea':32 'in-chat':333 'includ':409,739,816,879,1075 'info':297 'inform':1116 'initi':170 'input':216,426,469,517,572,618,667,720,772 'instead':997 'instrument':665,694 'insuffici':941 'intak':464,957 'intent':660 'interact':184,902,1084 'interpret':659 'invit':1026 'jargon':560 'journey':621 'judg':398,733,892 'keep':1092 'key':242,674 'label':315 'latenc':257,637 'lead':1119 'least':701 'level':163,937,1070,1078,1097 'list':1102 'live':718 'll':500 'lock':562 'log':686 'low':162 'low-level':161 'made':459 'make':350,947 'maker':1111 'mani':169 'mark':639 'markdown':332 'match':455 'measur':501,703 'messi':91 'met':765 'metric':45,204,215,249,294,323,378,679,693,704,800,1043,1045,1055,1063 'metrics/guardrails':485,850 'minimum':217,956 'miss':296,311,962,1015 'missing-info':295 'modal':995 'mode':744,983 'model/system':268 'must':272,1000,1031 'must/should/could':640 'narrat':58,368,511,516,526,543,573,843 'need':113,137,153,180,197,635,683,923 'never':273,1123 'next':406,820 'non':239,567,579,633,1017,1024 'non-funct':632 'non-goal':238,566,578,1016,1023 'north':205,213 'note':92 'number':624 'offlin':289 'on':363,443 'onboard':948 'one':702 'onlin':293 'open':404,802,818 'opportun':234 'option':46,321,366,967 'output':283,325,448,486,542,589,641,690,745,789 'over-docu':423 'own':689 'owner':480,799 'ownership':1118 'pack':330,775,792 'pair':1061 'pass':737,761 'pass/fail':400,894 'pattern':978 'pixel':1077 'pixel-level':1076 'plan':142,666,854 'platform':246 'polici':275 'policy/legal':245 'pr/faq':49,102,356,365,432,436,513,533,546,830,842 'prd':9,38,81,95,106,329,358,371,434,437,439,515,595,791,831,846,861,938,945,1020,1030,1074,1094 'prds':3,26,986,1121 'press':50,536 'priorit':167,177 'privaci':636 'problem':143,150,223,527 'problem-definit':149 'proceed':312 'produc':47,327,963 'product':31,82,132,219,670,951 'prompt':65,115,382,387,399,444,715,727,734,746,862,883,893 'prototyp':189,931 'provid':318 'pursu':130 'qa':648 'qualiti':254,767,806,1065 'question':303,405,477,803,819,958 'questions/next':787 'r1':374,616,848 'rather':1053 'rational':451 're':124,166,349,495 'readi':8,23,37,183,926 'realist':707 'recommend':970 'red':741 'red-team':740 'redesign':913 'redirect':898,915 'references/checklists.md':778,779,810,811 'references/intake.md':305,306,470,471 'references/rubric.md':783,784,813,814 'references/templates.md':411,412 'reflect':1057 'refresh':201 'regress':759 'releas':51,537 'reliabl':638 'remain':961 'repli':870 'request':342,428,922 'requir':42,70,84,147,209,218,373,615,625,642,651,668,719,721,763,808,877,975,989,1006 'requirements-as-solut':988 'research':141 'respons':914,953 'restat':553 'review':292 'risk':403,817 'risks/open':786 'rn':375,617,849 'roadmap':176 'rollout':324,379,853 'run':777 'saa':826 'safeti':255,276 'safety/brand':880 'save':833 'schema':160,1082 'scope':27,41,322,563,571,590,612,845,966,1027 'score':781 'scratch':140 'section':544,591,692,695 'see':15 'segment':222 'select':355,450,548 'sentenc':506 'set':66,383,420,445,728,736,747,863,884 'shareabl':793 'ship':714,1124 'signup':1052 'skill' 'skill-writing-prds' 'snapshot':345,488,519 'solut':528,991 'sourc':709 'source-liqiongyu' 'spec':19,24,68,83,185,194,393,447,732,749,865,890,903,919,927,1069 'spec-level':1068 'spec/design':1090 'specifi':677 'stakehold':352,551,1099,1103 'star':206,214 'state':492,1032,1085 'statement':224 'step':407,415,788,821 'still':125,310 'strategi':134,298 'strategy/market':128 'success':44,203,248,468,484,502,678,1042 'suit':754 'surfaces/events':671 'table/list':643 'target':220 'team':742 'templat':410 'test':290,397,653,735 'testabl':72,614 'theater':1101 'threshold':738,895 'timelin':244,481 'tone':874 'top':540 'topic-agent-skills' 'topic-ai-agents' 'topic-automation' 'topic-claude' 'topic-codex' 'topic-prompt-engineering' 'topic-refoundai' 'topic-skillpack' 'total':1051 'trust':258 'turn':29,89,650 'ui':1079 'unambigu':40 'undesir':282 'urgenc':558 'use':78,122,148,171,191,210,532,809 'user':186,341,427,620,675,905,999 'user/customer':221 'ux':376,663 'ux/flows':691 'valid':144 'valu':1059 'vaniti':1041 'version':386,726,1039 'view':834 'vision':133 'volum':1062 'vs':271,357,359,1113,1115 'without':559,655,1021,1104 'work':173 'workflow':413 'working-backward':172 'write':2,4,18,25,79,193,208,212,508,623,828,859,918,943,985,992 'writing-north-star-metr':211 'writing-prd':1 'writing-specs-design':17,192,917","prices":[{"id":"42e8f1a2-4f38-41d3-acb7-34b05fe617b9","listingId":"3a5dd81c-ae38-426b-b718-3752b51eafe5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"liqiongyu","category":"lenny_skills_plus","install_from":"skills.sh"},"createdAt":"2026-04-18T22:17:16.828Z"}],"sources":[{"listingId":"3a5dd81c-ae38-426b-b718-3752b51eafe5","source":"github","sourceId":"liqiongyu/lenny_skills_plus/writing-prds","sourceUrl":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/writing-prds","isPrimary":false,"firstSeenAt":"2026-04-18T22:17:16.828Z","lastSeenAt":"2026-04-22T00:56:26.580Z"}],"details":{"listingId":"3a5dd81c-ae38-426b-b718-3752b51eafe5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"liqiongyu","slug":"writing-prds","github":{"repo":"liqiongyu/lenny_skills_plus","stars":49,"topics":["agent-skills","ai-agents","automation","claude","codex","prompt-engineering","refoundai","skillpack"],"license":"apache-2.0","html_url":"https://github.com/liqiongyu/lenny_skills_plus","pushed_at":"2026-04-04T06:30:11Z","description":"86 agent-executable skill packs converted from RefoundAI’s Lenny skills (unofficial). Works with Codex + Claude Code.","skill_md_sha":"059946fa81f3870c397a6706bc4aaf0dfc434aeb","skill_md_path":"skills/writing-prds/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/writing-prds"},"layout":"multi","source":"github","category":"lenny_skills_plus","frontmatter":{"name":"writing-prds","description":"Write a decision-ready PRD for cross-functional alignment. See also: writing-specs-designs (build-ready spec)."},"skills_sh_url":"https://skills.sh/liqiongyu/lenny_skills_plus/writing-prds"},"updatedAt":"2026-04-22T00:56:26.580Z"}}