define-problem-statement — Claude Code skill: frame the problem
Builds a problem framing document: who feels the pain, what it costs the business, and which metrics will show success.
npx skills add product-on-purpose/pm-skills --skill define-problem-statement -a claude-codeWhat define-problem-statement does
The skill walks the agent through six steps. First it asks which user segment hits the problem, and pushes for specifics instead of "users" in general. Then come pain points, business context, success metrics with baselines and targets, constraints, and open questions.
Output follows the template in references/TEMPLATE.md and fills every section: Problem Summary, User Impact, Business Context, Success Criteria, Constraints & Considerations, Open Questions. A completed example sits in references/EXAMPLE.md. A quality checklist keeps the problem tied to a segment, the impact backed by data, and the metrics carrying both a baseline and a target.
It is the wrong pick when the problem is already agreed and engineering wants a spec — reach for deliver-prd instead. To propose and compare solution approaches, use develop-solution-brief; for customer motivation, define-jtbd-canvas. If the "problem" is still an unvalidated assumption, frame it with define-hypothesis and test it first. That last point matters: committing a team to an unproven idea is the expensive mistake this skill exists to prevent.
What it helps with
- frame the problem before the team starts building
- pull a drifted project back to its original intent
- explain to leadership why this work matters now
- check whether a proposed solution addresses the core pain
- onboard a new teammate with the initiative's context
Example prompts for the agent
- Help me frame the problem for a new initiative: segment is mobile shoppers at checkout
- The project drifted from its original goal — rebuild the problem statement
- I need to brief leadership on priorities, so draft a document with business context and metrics
How to install define-problem-statement
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill define-problem-statement -a claude-code2Manually: put the files in place
~/.claude/skills/define-problem-statement/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/define-problem-statement/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill define-problem-statement -a codex2Manually: put the files in place
.agents/skills/define-problem-statement/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill define-problem-statement -a cursor2Manually: put the files in place
.cursor/skills/define-problem-statement/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install product-on-purpose/pm-skills define-problem-statement2Manually: put the files in place
.github/skills/define-problem-statement/SKILL.md1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill define-problem-statement -a gemini-cli2Platform CLI
gemini skills install https://github.com/product-on-purpose/pm-skills --path skills/define-problem-statementManually: put the files in place
.devin/skills/define-problem-statement/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill define-problem-statement -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about define-problem-statement
How do I install define-problem-statement in Claude?
Run npx skills add product-on-purpose/pm-skills --skill define-problem-statement -a claude-code. The skill lands at ~/.claude/skills/define-problem-statement/SKILL.md.
What does define-problem-statement do?
It guides the agent from user segment through success metrics and produces a problem framing document. The template and a filled example live in references/TEMPLATE.md and references/EXAMPLE.md.
How is it different from deliver-prd or develop-solution-brief?
Use deliver-prd once the problem is agreed and you need a spec. develop-solution-brief is for proposing and comparing solution approaches. This skill pins down the problem itself.
Source text
SKILL.md · Apache-2.0
--- name: define-problem-statement description: Creates a clear problem framing document with user impact, business context, and success criteria. Use when starting a new initiative, realigning a drifted project, or communicating up to leadership. license: Apache-2.0 metadata: phase: define version: "2.1.0" updated: 2026-06-10 category: problem-framing frameworks: [triple-diamond, lean-startup, design-thinking] author: product-on-purpose --- <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 --> # Problem Statement A problem statement is a concise document that frames the problem you're solving, articulates the impact on users and the business, and defines clear success criteria. It serves as the foundation for all subsequent product work by ensuring alignment on *what* problem to solve before jumping to *how* to solve it. ## When to Use - Starting a new initiative or project to establish shared understanding - Realigning a drifted project back to its original intent - Communicating up to leadership or stakeholders about priorities - Evaluating whether a proposed solution actually addresses the core problem - Onboarding new team members to provide context ## When NOT to Use - The problem is already agreed and engineering needs the spec -> use `deliver-prd` - You want to propose and compare solution approaches -> use `develop-solution-brief` - You are capturing customer motivation rather than a business problem -> use `define-jtbd-canvas` - The "problem" is really an unvalidated assumption -> frame it with `define-hypothesis` and test it before committing a team to it ## Instructions When asked to create a problem statement, follow these steps: 1. **Identify the User Segment** Ask who is experiencing this problem. Get specific about the user persona, role, or segment. Avoid vague descriptions like "users" - instead target "mobile shoppers completing checkout" or "enterprise admins managing 50+ users." 2. **Understand the Pain Points** Explore what friction, frustration, or unmet need the user experiences. Ask probing questions to understand the severity and frequency of the problem. Look for evidence from user research, support tickets, or behavioral data. 3. **Establish Business Context** Connect the user problem to business impact. How does this problem affect revenue, retention, growth, or strategic goals? Why should the organization invest in solving this now versus later? 4. **Define Success Metrics** Identify how you will measure success. What metrics will move if this problem is solved? Establish current baselines and target improvements. Be specific and time-bound. 5. **Surface Constraints and Considerations** Note any technical limitations, resource constraints, regulatory requirements, or dependencies that will shape the solution space. 6. **Capture Open Questions** Document what you don't know yet. What assumptions need validation? What additional research is needed? ## Output Format Use the template in `references/TEMPLATE.md` to structure the output. A complete problem statement fills every template section: Problem Summary; User Impact; Business Context; Success Criteria; Constraints & Considerations; and Open Questions. ## Quality Checklist Before finalizing, verify: - [ ] Problem is specific to a defined user segment (not "all users") - [ ] Impact is quantified with data or reasonable estimates - [ ] Success metrics have baselines and targets - [ ] Problem describes the "what" without prescribing the "how" - [ ] Business context explains why this matters now - [ ] Open questions are captured for follow-up ## Examples See `references/EXAMPLE.md` for a completed example.
© product-on-purpose · Apache-2.0 · product-on-purpose/pm-skills