Skip to content
Back to skills

Discover Problems

ASecurity

Synthesize customer interviews, jobs-to-be-done, and signals into structured problem statements. The divergent start of the PDLC Discover phase.

  • 10 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
research

Works with

  • cli

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add tomzx/agents --skill discover-problems --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Discover Problems?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Discover Problems
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tomzx-discover-problems/badge)](https://www.skillsdirectory.com/skills/tomzx-discover-problems)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: discover-problems
description: Synthesize customer interviews, jobs-to-be-done, and signals into structured problem statements. The divergent start of the PDLC Discover phase.
argument-hint: "[initiative-id or topic]"
---

# Discover Problems

The divergent entry point of the PDLC. Turns vague signals (a metric regression, recurring complaints, interview notes, support tickets, a hunch) into structured, solution-agnostic problem statements. Stays strictly in problem space: it refuses to propose solutions.

## Prerequisites

- Apply the shared PDLC conventions in `skills/pdlc/references/shared.md`.
- A signal source: interviews, tickets, usage data, a metric regression, or a stated concern.

## Steps

1. Establish or locate the initiative directory under `.pdlc/initiatives/`. If none exists, create `N-<slug>` (issue number if known, else next `p<seq>`).
2. Gather the raw signals. Where interviews exist, extract jobs-to-be-done (the progress a customer is trying to make, their situation, and the forces holding them back). Where data exists, describe the symptom precisely.
3. For each candidate problem, write a problem statement in the form: *For [who], [current situation/struggle], because [root forces], which results in [measurable harm].*
4. Rank problems by frequency, intensity, and willingness-to-pay signals. Mark each as `observed` (evidence-backed) vs `assumed` (hypothesis).
5. Capture who experiences the problem and how (stakeholders table).
6. Record the cost of inaction: what breaks or worsens today, existing workarounds, and the trend (growing / stable / declining).
7. Write `problems.md` to the initiative directory using the template.

## Output Format

Use the template at `skills/pdlc/templates/initiatives/problems.md`. Frontmatter:

```yaml
---
initiative: INIT-N
title: "<topic>"
status: draft
phase: discover
---
```

## Outcome

If `$OUTCOME_YAML` is set, emit `verdict: drafted` and a one-line `reason`.

## Completion Checklist

- [ ] Each problem stated without naming a solution
- [ ] Each problem marked `observed` or `assumed`
- [ ] Stakeholders and cost-of-inaction captured
- [ ] At least one problem has a frequency/intensity signal (even if weak)

## Next Step

Load `research-market` and `analyze-competition` (run in either order), then `frame-opportunities` to convert problems into a scored opportunity tree ahead of the first gate.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…