Help us improve
Share bugs, ideas, or general feedback.
From grimoire
Clarifies vague problems through one-at-a-time questions, then produces a problem statement, space map, and solution routes before handing off to solution skills.
npx claudepluginhub jeffreytse/grimoire --plugin grimoireHow this skill is triggered — by the user, by Claude, or both
Slash command
/grimoire:analyze-problemThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Clarify an ill-defined problem through structured questioning, then map the problem space and surface possible routes before handing off to solution skills.
Probes problems via structured questions on triggers, pains, stakes, assumptions, scope, and user requirements to ensure clarity before solutions. Activates for investigative problem discovery.
../../../../.claude/skills/thinking/defining-and-exploring-problems.md
Guide teams through MITRE's Problem Framing Canvas to clarify problem statements before solutioning. Use when you need a bias-resistant problem definition.
Share bugs, ideas, or general feedback.
Clarify an ill-defined problem through structured questioning, then map the problem space and surface possible routes before handing off to solution skills.
Adopted by: Design Thinking's problem-definition phase (IDEO/Stanford d.school) is standard at Google, Apple, and IDEO before any solution is attempted — teams that skip it produce solutions targeting the wrong problem, requiring full redesign rather than iteration (IDEO HCD Field Guide, 2015). McKinsey's issue tree methodology (Rasiel, 1999) treats problem definition as a separate, mandatory step before any analysis begins. Donella Meadows (Thinking in Systems, 2008) identifies boundary definition — deciding what is inside vs. outside the system being analyzed — as the single most consequential decision in systems analysis, and the most commonly skipped. Impact: The Institute of Medicine (To Err is Human, 1999) found that the majority of medical errors trace to acting on a symptom without diagnosing the root cause — the most expensive form of the "wrong problem" failure. In software engineering, the majority of rework traces to misunderstood requirements, not implementation errors (Standish Group CHAOS Report). In both fields: solving the right problem poorly produces less waste than solving the wrong problem well. Why best: Practitioners who ask clarifying questions before solving report fewer "solution rejection" cycles — where a completed solution fails because it addressed the wrong aspect of the problem. The one-question-at-a-time constraint (vs. a batch of questions) is deliberate: batched questions overwhelm users and produce incomplete answers. Sequential questions surface progressively deeper information, with each answer informing the next question.
Sources: IDEO HCD Field Guide (2015); Rasiel, The McKinsey Way (1999); Meadows, Thinking in Systems (2008); Institute of Medicine (1999) To Err is Human; Standish Group CHAOS Report
Before running the default analysis steps, check if an installed skill is specifically designed for problem analysis in this domain.
Score all installed skills against the user's input using:
score = (tag_overlap × 2) + (description_match × 3) + (domain_plausibility × 1)
Filter to skills with at least one of these tags:
problem-analysis, root-cause, root-cause-analysis, diagnostic, issue-tree, problem-framing, systems-thinking, failure-analysis, causal-analysis, decision-analysis
If one skill scores ≥ 0.5: Announce and invoke it:
This problem matches a domain-specific analysis practice: [skill-name] ([domain/subdomain]).
Applying it to define the problem before we look for solutions...
After it runs: if it produced a problem statement and/or structured map, use those as output. If the invoked skill also runs a clarification loop, let it — do not duplicate questions.
If 2+ skills score ≥ 0.5: Present a compact ranked list and wait for selection:
Multiple problem analysis practices apply:
★ [top-skill] — [one sentence: what analysis it provides] ← recommended
[second-skill] — [one sentence]
Then ask the user using the best available method for your platform:
AskUserQuestion / question — question: "Which analysis practice should I use first?", ★ recommended first with "(Recommended)" appended, multiSelect: falseask_user — question: "Which analysis practice should I use first?", type: "select", ★ recommended first1. [top-skill] ★ (recommended) — [what analysis it provides]
2. [second-skill] — [what analysis it provides]
Which should I use to analyze this problem first? (Enter number or name)
If no skill scores ≥ 0.5: Proceed with default Steps 1–6 below. No announcement needed.
From what the user said, check if all three criteria are satisfiable without asking:
If all three can be inferred → skip to Step 4 (problem space map). Do not ask unnecessary questions. If any are missing → proceed to Step 2 (clarification loop).
Ask ONE question per turn, in this priority order:
Stop the loop when all three criteria (goal, scope, root cause) are satisfiable from the conversation. Constraints are optional — include if clearly relevant to route selection.
Wait for the user's answer before asking the next question. Do not ask multiple questions in one turn.
If what's described is clearly a symptom of a deeper problem, surface it before mapping:
This looks like a symptom of [inferred root cause].
Real problem: [root cause]?
Or do you need to solve [stated symptom] specifically — for example, a quick fix while the root cause is addressed separately?
Wait for the user's answer before proceeding to the map.
Output the structured map:
Problem statement: [1-2 sentences — crisp goal + situation]
Scope
In: [what's included]
Out: [what's explicitly excluded — or "not stated; assumed full scope"]
Constraints
[type]: [value]
(omit this section if none stated or inferable)
Stakeholders: [who is affected or must approve — omit if not relevant]
Root cause: [root cause statement — or "as stated" if already root-level]
Present 2–4 high-level solution directions. These are directions, not specific practices — keep abstract at this stage:
Possible routes:
A. [Route name] — [one line: what this direction does] | Trade-off: [gain / cost]
B. [Route name] — [one line: what this direction does] | Trade-off: [gain / cost]
C. [Route name] — [one line: what this direction does] | Trade-off: [gain / cost]
Common route types to adapt to domain context:
Which route fits best? I can then find the applicable best practices or build a full solution plan.
(Say the letter — or "practices" to see matching skills, or "plan" for a sequenced action plan)
suggest-best-practice with the problem statement as inputplan-best-practice-solution with the problem space map as inputIf invoked automatically by another skill (not by the user directly): skip Step 6. Return the problem statement and map as output to the invoking skill.
Asking multiple questions at once: "What's your goal, scope, and timeline?" overwhelms the user and produces incomplete answers. One question per turn — the answer informs the next.
Running the clarification loop when the problem is already clear: if goal, scope, and root cause are all inferable, go straight to the map. Unnecessary questions feel patronizing.
Abstract routes that don't help decide: "Option A: technical approach / Option B: non-technical approach" isn't useful. Name the actual direction and its trade-off.
Skipping the symptom check: solving a symptom without flagging the root cause creates a false sense of resolution. If there's evidence of a deeper cause, surface it in Step 3.
Forgetting the invocation context: when called automatically by another skill, don't present the handoff offer — return structured output so the calling skill can continue.