{"id":"3c287c75-69d3-4c4c-ac9f-5a754c23165e","shortId":"uLDhSt","kind":"skill","title":"problem-definition","tagline":"Define a product problem: problem statement, JTBD, alternatives, evidence, metrics. See also: writing-prds (solution spec).","description":"# Problem Definition\n\n## Scope\n\n**Covers**\n- Turning a vague idea into a crisp, testable **problem definition**\n- Writing a shareable **problem statement** (1-liner + expanded)\n- Capturing **Jobs To Be Done (JTBD)** and target segments\n- Mapping **current alternatives** (including non-digital/analog) and “why now / why digital”\n- Building an **evidence + assumptions log** to drive learning\n- Defining **success metrics + guardrails** and clear **scope boundaries**\n\n**When to use**\n- “Write a problem statement for…”\n- “We need to define the problem space / JTBD.”\n- “We keep jumping to solutions; help us get clear on the real problem.”\n- “Pressure to ‘do AI’ — verify there’s a real pain point first.”\n- “Before we write a PRD, align on what problem we’re solving.”\n\n**When NOT to use**\n- You already have an approved problem definition and need a delivery-ready PRD (use `writing-prds`)\n- You need roadmap prioritization across many competing initiatives (use `prioritizing-roadmap`)\n- You need to set company-level strategy/vision (use `defining-product-vision`)\n- You need a competitive landscape analysis as the primary output (use `competitive-analysis`); this skill references alternatives only to frame the problem\n- You’re doing deep research execution (recruiting, interviews, analysis); use this to frame *what to learn*, not as a substitute for `conducting-user-interviews` or `designing-surveys`\n- You need to analyze existing user feedback data (use `analyzing-user-feedback`); this skill frames the problem, not the evidence pipeline\n\n## Inputs\n\n**Minimum required**\n- Product/context + target user (or segment hypotheses)\n- The triggering signal (customer quotes, data trend, stakeholder request, competitor move)\n- The decision to make (e.g., invest now vs later; explore vs stop) + timeline\n- Known constraints (tech/legal/privacy/compliance/capacity)\n\n**Missing-info strategy**\n- Ask up to 5 questions from [references/INTAKE.md](references/INTAKE.md).\n- If still missing, proceed with clearly labeled assumptions and list **Open questions** that would change the decision.\n\n## Outputs (deliverables)\n\nProduce a **Problem Definition Pack** in Markdown (in-chat; or as files if the user requests):\n\n1) **Context snapshot** (product, user, trigger, decision, constraints)\n2) **Problem statement** (1-liner + expanded) + **why now**\n3) **JTBD** (primary job + key sub-jobs) + target segment notes\n4) **Current alternatives** (including analog/non-digital) + gaps + switching costs\n5) **Evidence & assumptions log** (what we know vs what we’re guessing)\n6) **Success criteria** (outcome metric(s), leading indicators) + **guardrails**\n7) **Scope boundaries** (in/out, non-goals, dependencies)\n8) **Prototype / learning plan** (fast prototype + tests to de-risk)\n9) **Risks / Open questions / Next steps** (always included)\n\nTemplates: [references/TEMPLATES.md](references/TEMPLATES.md)  \nExpanded heuristics: [references/WORKFLOW.md](references/WORKFLOW.md)\n\n## Workflow (8 steps)\n\n### 1) Intake + decision framing\n- **Inputs:** User context; [references/INTAKE.md](references/INTAKE.md).\n- **Actions:** Clarify the decision, time horizon, stakeholders, and constraints. Capture the trigger signal (data/quotes/event).\n- **Outputs:** Context snapshot.\n- **Checks:** You can state the decision in one sentence (“We are deciding whether to… by <date>”).\n\n### 2) Define the target user + situation (segment + context)\n- **Inputs:** Context snapshot.\n- **Actions:** Specify who experiences the problem, when it happens, frequency, and what’s at stake. If multiple segments, pick a primary and list others as secondary.\n- **Outputs:** Target user + context bullets.\n- **Checks:** The segment is specific enough that a researcher could recruit for it.\n\n### 3) Write the problem statement (1-liner + expanded)\n- **Inputs:** Target user + trigger signal.\n- **Actions:** Draft a crisp 1-liner, then expand with symptoms, root causes (hypotheses), and impact. Include **why now**.\n- **Outputs:** Problem statement section (using [references/TEMPLATES.md](references/TEMPLATES.md)).\n- **Checks:** Statement describes the problem without implying a specific solution or technology.\n\n### 4) Map current alternatives (including non-digital) + “why use this”\n- **Inputs:** Problem statement.\n- **Actions:** List how users solve this today (manual workarounds, spreadsheets, incumbents, doing nothing). Include at least one analog/non-digital alternative when relevant.\n- **Outputs:** Alternatives table + gaps + switching costs.\n- **Checks:** You can answer: “Why would a user give this the time of day vs their current way?”\n\n### 5) Separate problem from solution (avoid the shiny object trap)\n- **Inputs:** Alternatives + early solution ideas (if any).\n- **Actions:** Capture solution ideas as **hypotheses**, not commitments. If “AI” (or any tech) is proposed, state the user pain point first and treat tech choice as an implementation detail.\n- **Outputs:** Evidence & assumptions log (with test ideas).\n- **Checks:** Each assumption has a proposed test and a confidence level.\n\n### 6) Define success criteria + guardrails\n- **Inputs:** Problem statement + evidence.\n- **Actions:** Define measurable outcomes, leading indicators, and guardrails (quality, trust, cost, latency, support load, etc.).\n- **Outputs:** Success metrics + guardrails section.\n- **Checks:** Metrics are unambiguous and tied to the user’s desired outcome.\n\n### 7) Visualize the end state + prototype a path to clarity\n- **Inputs:** Success criteria + scope constraints.\n- **Actions:** Describe what “done” looks like (user-visible end state). Create a fast prototype/experiment plan to validate the hardest assumptions before building.\n- **Outputs:** End-state description + prototype/learning plan.\n- **Checks:** The team can “see the end” and name the 1–3 biggest unknowns being tested.\n\n### 8) Quality gate + finalize the pack\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 Problem Definition Pack.\n- **Checks:** A stakeholder can review async and decide “proceed / pause / stop” without a meeting.\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## Anti-patterns (common failure modes)\n\n1. **Solution-first framing** — The problem statement embeds a specific technology or feature (“We need an AI chatbot for support”) instead of describing the user pain. Strip the solution; restate as a user struggle with evidence.\n2. **Segment hand-waving** — “Our users” without specifying who, when, and how often. A problem definition that applies to everyone applies to no one. Require a recruitable segment description.\n3. **Evidence-free conviction** — The pack lists assumptions but marks them all “high confidence” without citing any data, quotes, or signals. Insist on at least one concrete evidence artifact per top assumption.\n4. **Metric theater** — Success metrics exist but are unmeasurable within the stated timeline or are vanity metrics (e.g., “user happiness”). Every metric needs a measurement method and a realistic baseline.\n5. **Scope creep via JTBD** — Sub-jobs multiply until the problem definition covers the entire product. Cap sub-jobs at 3-5 and explicitly mark anything beyond as out-of-scope.\n\n## Examples\n\n**Example 1 (B2B SaaS):** “Define the problem for improving onboarding activation in our analytics product.”\nExpected: a pack with a tight segment, current onboarding alternatives/workarounds, measurable activation outcomes, and a prototype plan to test the most uncertain hypothesis.\n\n**Example 2 (Consumer):** “Users abandon checkout on mobile; define the problem space and JTBD before proposing fixes.”\nExpected: a problem statement grounded in evidence, an alternatives map (including ‘do nothing’), and guardrails (fraud/chargebacks/support load).\n\n**Boundary example (redirect to writing-prds):** “Write a PRD for building an AI assistant; we don’t know what problem it solves.”\nResponse: push back; run this skill to define the user pain point and success metrics first, then hand off to `writing-prds`.\n\n**Boundary example (redirect to conducting-user-interviews):** “We think onboarding is broken but have zero user data. Define the problem.”\nResponse: flag that the problem definition will be assumption-heavy; recommend running `conducting-user-interviews` first to gather evidence, then return here to frame the problem with real data.","tags":["problem","definition","lenny","skills","plus","liqiongyu","agent-skills","ai-agents","automation","claude","codex","prompt-engineering"],"capabilities":["skill","source-liqiongyu","skill-problem-definition","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/problem-definition","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 (8,686 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:24.451Z","embedding":null,"createdAt":"2026-04-18T22:16:55.698Z","updatedAt":"2026-04-22T00:56:24.451Z","lastSeenAt":"2026-04-22T00:56:24.451Z","tsv":"'-5':1020 '/analog':59 '1':40,339,350,432,533,545,797,867,1033 '2':347,473,904,1071 '3':355,528,798,934,1019 '4':366,578,967 '5':298,374,637,997 '6':386,701 '7':395,742 '8':403,430,803 '9':414 'abandon':1074 'across':160 'action':441,484,541,592,654,710,757,813 'activ':1042,1058 'add':822 'ai':113,663,884,1117 'align':127 'alreadi':139 'also':15 'altern':11,54,198,368,581,610,614,648,1095 'alternatives/workarounds':1056 'alway':420,854 'analog/non-digital':370,609 'analysi':186,194,212 'analyt':1045 'analyz':236,243 'analyzing-user-feedback':242 'answer':622 'anti':862 'anti-pattern':861 'anyth':1024 'appli':922,925 'approv':142 'artifact':963 'ask':295 'assist':1118 'assumpt':68,310,376,685,692,777,942,966,1180 'assumption-heavi':1179 'async':836 'avoid':642 'b2b':1034 'back':1129 'baselin':996 'beyond':1025 'biggest':799 'boundari':80,397,1104,1150 'broken':1162 'build':65,779,1115 'bullet':514 'cap':1014 'captur':43,450,655 'caus':552 'chang':317 'chat':331 'chatbot':885 'check':458,515,566,619,690,730,787,831 'checkout':1075 'choic':678 'cite':950 'clarifi':442 'clariti':751 'clear':78,105,308 'commit':661 'common':864 'compani':173 'company-level':172 'compet':162 'competit':184,193 'competitive-analysi':192 'competitor':273 'concret':961 'conduct':226,1155,1185 'conducting-user-interview':225,1154,1184 'confid':699,948 'constraint':289,346,449,756 'consum':1072 'context':340,438,456,480,482,513 'convict':938 'cost':373,618,720 'could':524 'cover':24,1010 'creat':768 'creep':999 'crisp':31,544 'criteria':388,704,754 'current':53,367,580,635,1054 'custom':267 'data':240,269,952,1167,1201 'data/quotes/event':454 'day':632 'de':412 'de-risk':411 'decid':469,838 'decis':276,319,345,434,444,463 'deep':207 'defin':4,73,92,178,474,702,711,1036,1078,1134,1168 'defining-product-vis':177 'definit':3,22,34,144,325,829,920,1009,1176 'deliver':321 'deliveri':149 'delivery-readi':148 'depend':402 'describ':568,758,890 'descript':784,933 'design':231 'designing-survey':230 'desir':740 'detail':682 'digit':58,64,585 'done':47,760 'draft':542,811 'drive':71 'e.g':279,984 'earli':649 'emb':875 'end':745,766,782,793 'end-stat':781 'enough':520 'entir':1012 'etc':724 'everi':987 'everyon':924 'evid':12,67,253,375,684,709,903,936,962,1093,1191 'evidence-fre':935 'exampl':1031,1032,1070,1105,1151 'execut':209 'exist':237,972 'expand':42,352,425,535,548 'expect':1047,1087 'experi':487 'explicit':1022 'explor':284 'failur':865 'fast':407,770 'featur':880 'feedback':239,245 'file':334 'final':806,827 'first':121,674,870,1142,1188 'fix':1086 'flag':1172 'frame':201,216,248,435,871,1196 'fraud/chargebacks/support':1102 'free':937 'frequenc':493 'full':810 'gap':371,616 'gate':805,846 'gather':1190 'get':104 'give':627 'goal':401 'ground':1091 'guardrail':76,394,705,717,728,1101 'guess':385 'hand':907,1144 'hand-wav':906 'happen':492 'happi':986 'hardest':776 'heavi':1181 'help':102 'heurist':426 'high':947 'horizon':446 'hypothes':263,553,659 'hypothesi':1069 'idea':28,651,657,689 'impact':555 'implement':681 'impli':572 'improv':1040 'in-chat':329 'in/out':398 'includ':55,369,421,556,582,605,855,1097 'incumb':602 'indic':393,715 'info':293 'initi':163 'input':255,436,481,536,589,647,706,752,809 'insist':956 'instead':888 'intak':433 'interview':211,228,1157,1187 'invest':280 'job':44,358,362,1004,1017 'jtbd':10,48,96,356,1001,1083 'jump':99 'keep':98 'key':359 'know':380,1122 'known':288 'label':309 'landscap':185 'latenc':721 'later':283 'lead':392,714 'learn':72,219,405 'least':607,959 'level':174,700 'like':762 'liner':41,351,534,546 'list':312,506,593,941 'load':723,1103 'log':69,377,686 'look':761 'make':278 'mani':161 'manual':599 'map':52,579,1096 'mark':944,1023 'markdown':328 'measur':712,991,1057 'meet':844 'method':992 'metric':13,75,390,727,731,968,971,983,988,1141 'minimum':256 'miss':292,305 'missing-info':291 'mobil':1077 'mode':866 'move':274 'multipl':500 'multipli':1005 'name':795 'need':90,146,157,169,182,234,882,989 'next':418,859 'non':57,400,584 'non-digit':56,583 'non-goal':399 'note':365 'noth':604,1099 'object':645 'often':917 'onboard':1041,1055,1160 'one':465,608,928,960 'open':313,416,857 'other':507 'out-of-scop':1027 'outcom':389,713,741,1059 'output':190,320,455,510,559,613,683,725,780,826 'pack':326,808,812,830,940,1049 'pain':119,672,893,1137 'path':749 'pattern':863 'paus':840 'per':964 'pick':502 'pipelin':254 'plan':406,772,786,1063 'point':120,673,1138 'prd':126,151,1113 'prds':18,155,1110,1149 'pressur':110 'primari':189,357,504 'priorit':159,166 'prioritizing-roadmap':165 'problem':2,7,8,21,33,38,86,94,109,130,143,203,250,324,348,489,531,560,570,590,639,707,828,873,919,1008,1038,1080,1089,1124,1170,1175,1198 'problem-definit':1 'proceed':306,839 'produc':322 'product':6,179,342,1013,1046 'product/context':258 'propos':668,695,1085 'prototyp':404,408,747,1062 'prototype/experiment':771 'prototype/learning':785 'push':1128 'qualiti':718,804,845 'question':299,314,417,858 'questions/next':824 'quot':268,953 're':132,205,384 'readi':150 'real':108,118,1200 'realist':995 'recommend':1182 'recruit':210,525,931 'redirect':1106,1152 'refer':197 'references/checklists.md':815,816,849,850 'references/intake.md':301,302,439,440 'references/rubric.md':820,821,852,853 'references/templates.md':423,424,564,565 'references/workflow.md':427,428 'relev':612 'request':272,338 'requir':257,847,929 'research':208,523 'respons':1127,1171 'restat':897 'return':1193 'review':835 'risk':413,415,856 'risks/open':823 'roadmap':158,167 'root':551 'run':814,1130,1183 'saa':1035 'scope':23,79,396,755,998,1030 'score':818 'secondari':509 'section':562,729 'see':14,791 'segment':51,262,364,479,501,517,905,932,1053 'sentenc':466 'separ':638 'set':171 'shareabl':37 'shini':644 'signal':266,453,540,955 'situat':478 'skill':196,247,1132 'skill-problem-definition' 'snapshot':341,457,483 'solut':19,101,575,641,650,656,869,896 'solution-first':868 'solv':133,596,1126 'source-liqiongyu' 'space':95,1081 'spec':20 'specif':519,574,877 'specifi':485,912 'spreadsheet':601 'stake':498 'stakehold':271,447,833 'state':461,669,746,767,783,978 'statement':9,39,87,349,532,561,567,591,708,874,1090 'step':419,431,825,860 'still':304 'stop':286,841 'strategi':294 'strategy/vision':175 'strip':894 'struggl':901 'sub':361,1003,1016 'sub-job':360,1002,1015 'substitut':223 'success':74,387,703,726,753,970,1140 'support':722,887 'survey':232 'switch':372,617 'symptom':550 'tabl':615 'target':50,259,363,476,511,537 'team':789 'tech':666,677 'tech/legal/privacy/compliance/capacity':290 'technolog':577,878 'templat':422 'test':409,688,696,802,1065 'testabl':32 'theater':969 'think':1159 'tie':735 'tight':1052 'time':445,630 'timelin':287,979 'today':598 'top':965 'topic-agent-skills' 'topic-ai-agents' 'topic-automation' 'topic-claude' 'topic-codex' 'topic-prompt-engineering' 'topic-refoundai' 'topic-skillpack' 'trap':646 'treat':676 'trend':270 'trigger':265,344,452,539 'trust':719 'turn':25 'unambigu':733 'uncertain':1068 'unknown':800 'unmeasur':975 'us':103 'use':83,137,152,164,176,191,213,241,563,587,848 'user':227,238,244,260,337,343,437,477,512,538,595,626,671,738,764,892,900,910,985,1073,1136,1156,1166,1186 'user-vis':763 'vagu':27 'valid':774 'vaniti':982 'verifi':114 'via':1000 'visibl':765 'vision':180 'visual':743 'vs':282,285,381,633 'wave':908 'way':636 'whether':470 'within':976 'without':571,842,911,949 'workaround':600 'workflow':429 'would':316,624 'write':17,35,84,124,154,529,1109,1111,1148 'writing-prd':16,153,1108,1147 'zero':1165","prices":[{"id":"406a2803-56c7-477b-b892-ac27ce0f8d65","listingId":"3c287c75-69d3-4c4c-ac9f-5a754c23165e","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:16:55.698Z"}],"sources":[{"listingId":"3c287c75-69d3-4c4c-ac9f-5a754c23165e","source":"github","sourceId":"liqiongyu/lenny_skills_plus/problem-definition","sourceUrl":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/problem-definition","isPrimary":false,"firstSeenAt":"2026-04-18T22:16:55.698Z","lastSeenAt":"2026-04-22T00:56:24.451Z"}],"details":{"listingId":"3c287c75-69d3-4c4c-ac9f-5a754c23165e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"liqiongyu","slug":"problem-definition","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":"0b20f2f28616cc0fed0244f977632ffed75cbc5d","skill_md_path":"skills/problem-definition/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/problem-definition"},"layout":"multi","source":"github","category":"lenny_skills_plus","frontmatter":{"name":"problem-definition","description":"Define a product problem: problem statement, JTBD, alternatives, evidence, metrics. See also: writing-prds (solution spec)."},"skills_sh_url":"https://skills.sh/liqiongyu/lenny_skills_plus/problem-definition"},"updatedAt":"2026-04-22T00:56:24.451Z"}}