Skip to content
Back to skills

Defining Problems

ASecurity

Interviews the user in rounds of numbered questions until the problem is defined, with who has it, evidence, impact, and success criteria, before any solution. Use when the user says "what problem are we solving?", or asks to define, frame, or clarify a problem. Never infer from a plain feature or bug request. Not for drafting a design; use writing-technical-design-docs.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
ai-agentsgo

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add bostonaholic/skills --skill defining-problems --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Defining Problems?

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

Security grade badge for Defining Problems
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bostonaholic-defining-problems/badge)](https://www.skillsdirectory.com/skills/bostonaholic-defining-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: defining-problems
description: Interviews the user in rounds of numbered questions until the problem is defined, with who has it, evidence, impact, and success criteria, before any solution. Use when the user says "what problem are we solving?", or asks to define, frame, or clarify a problem. Never infer from a plain feature or bug request. Not for drafting a design; use writing-technical-design-docs.
---

# Defining Problems

Ask "what problem are we trying to solve?" and keep asking until the answer
is clear enough that two people would build toward the same outcome. The
interview ends in a problem statement the user confirms, never a solution.

## Rules

- Stay in the problem space. Propose no design, fix, or tool during the
  interview, even when the answer looks obvious.
- Treat a solution-shaped answer ("we need a cache", "add retries") as a
  candidate solution, not the problem. Record it under candidate solutions,
  then ask what would be different for whom if it existed, and what goes
  wrong today without it.
- Ask "why?" until the problem is stated in terms of people and outcomes,
  without naming any solution. Stop when the next "why?" leaves the user's
  control or scope.
- Finding facts is your job; deciding is the user's. Look up anything the
  repository, tools, or docs can answer instead of asking. For a wide
  search, start a read-only subagent with fresh context, never a fork of
  the parent conversation, so only its findings return.
- Push for evidence over belief: a measurement, an incident, a user quote,
  or a count. Mark a claim with no evidence as an assumption.
- Never fill a gap silently. Every unknown becomes a question or an entry
  under open questions.

## What a defined problem settles

- **Who** has the problem: the people or systems affected, and who does not.
- **Current state**: what happens today, observably, and how often.
- **Evidence**: how anyone knows the current state is true.
- **Impact**: what it costs, to whom, and why it matters now.
- **Desired state**: what is observably true once it is solved, and how it
  will be measured.
- **Constraints and non-goals**: fixed limits, and what is out of scope.
- **Already tried**: earlier attempts and why they fell short.

## Rounds

1. Restate the problem as you understand it in one or two sentences, and
   name every candidate solution already in the request.
2. Ask the frontier: every question whose prerequisites are settled. A
   question that depends on an answer still open this round waits for a
   later round. Use this format exactly:

   ```text
   ❓ **Q1** - **<short title>**: <question>

   ➡️ <best guess, citing any fact you found>
   ```

   Word each question so "yes" accepts the best guess, and mark a guess
   with no fact behind it as a guess.

3. Stop and wait for the user's answers. Then update the picture, recompute
   the frontier, and ask the next round.
4. When every item under "What a defined problem settles" is answered or
   recorded as an open question, write the problem statement below and ask
   the user to confirm or correct it. Revise until they confirm.

## Problem statement

Default layout; adapt headings to the problem, but keep every section.

```markdown
## Problem
<One or two sentences: who, what goes wrong, and why it matters. No solution.>

## Evidence
## Impact
## Success looks like
## Constraints and non-goals
## Assumptions
## Open questions
## Candidate solutions (not yet evaluated)
```

After the user confirms, stop. What comes next, a design, a spike, or
dropping the work, is the user's call.

Files in this skill

  • SKILL.md3.5 KB
  • agents/openai.yaml233 B

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.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.