This skill should be used when the user says "solve problem", "solve this problem", or invokes /solve-problem. Applies a methodical, evidence-first approach to diagnosing a problem - understand intent, observe the problem first-hand, form multiple hypotheses, gather discriminating evidence to eliminate them, propose an evidenced solution, and verify the fix actually resolves the original symptom. Do NOT use for general how-to questions, explanations, or building new features.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
A methodical approach to solving a problem. The goal is to resist the instinct to jump at the first plausible-sounding fix. That instinct feels fast but causes wrong fixes and wasted iteration. Slow down, gather evidence, then propose.
Work through the moves in order. Do not skip ahead. The moves are domain-neutral — they apply to a code bug, a broken appliance, a drop in sales, or a failing process. Examples below span more than code on purpose.
Restate the problem in your own words so the user can correct you. Establish what they expect, what is actually happening, and what "solved" looks like.
Clarify with the user only if the problem is genuinely ambiguous. Do not interrogate a clear problem — echo your understanding and move on.
Confirm the problem is real before hunting for causes. Observe it directly, under conditions you can return to — don't diagnose from a second-hand report, ticket, summary, or a single stale log line. You want a way to make the problem happen (or to check whether it's happening) again on demand, because the same handle confirms the cause now and verifies the fix later (move 6).
Prefer first-hand evidence over artifacts: reproduce the bug by running it; watch the real checkout instead of reading the sales dashboard; measure the actual part instead of trusting the spec.
If you cannot see it, or it turns out not to be a real problem (wrong expectation, already fixed, environment issue), say so and stop. Do not invent a fix for a problem you have not observed.
Once the problem is confirmed, investigate how the thing is supposed to work and where reality diverges. From that investigation, list at least two candidate causes.
A single hypothesis is banned — it leads to tunnel vision. Force yourself to name alternatives, even ones you think are unlikely.
For each hypothesis, run the cheapest check that discriminates between causes — ideally one that could prove the hypothesis wrong, not merely one consistent with it. Evidence that merely fits a hypothesis (correlation) is weak: it often fits competing hypotheses too. ("It works in a clean browser" is consistent with both "stale state" and "a race" — it rules out neither.) Seek the check that separates them.
Confirm or eliminate each with first-hand evidence. Assumptions and memory are not evidence. If the cheap checks (logs, reports) don't isolate it, escalate to direct observation with more instrumentation rather than guessing harder. Keep eliminating until one cause is supported by evidence that survived an attempt to falsify it.
Propose a solution grounded in the evidence. State your confidence level and what is still uncertain. If you cannot reach certainty, say so, and say what would resolve it.
By default, stop here. Propose — do not implement — unless the user asks you to apply the fix.
Once a fix is applied, re-observe the original symptom under the same conditions that showed it (move 2's handle). The problem is not solved until the thing that was wrong is now demonstrably right — observed, not assumed.
This is not the same as move 4. Move 4 verifies the diagnosis ("is this the cause?"); move 6 verifies the resolution ("did my action make the symptom actually go away?"). They are different questions: a doctor's test can confirm the cause, yet the prescribed treatment may still not cure the patient — you check the patient got better. You can also mis-apply a correct diagnosis (incomplete fix, wrong change, a side effect), and only re-observing the symptom catches that.
If the symptom persists, the fix — or the diagnosis behind it — was wrong. Do not patch again from the same reasoning; return to move 2 with more instrumentation.
Re-observe the exact symptom the user reported — not a proxy. A related error clearing or a secondary signal going green is not the symptom going away. One cause cleared is not the symptom cleared; if it persists, another cause remains — return to observing.
When presenting the proposal, always show the full trace so the user can debug your reasoning. Use this structure:
## Problem
<the problem, restated>
## How I confirmed it
<what you reproduced or observed — the evidence it is real>
## Hypotheses considered
1. <hypothesis> — <eliminated / confirmed>
2. <hypothesis> — <eliminated / confirmed>
...
## Evidence
<per hypothesis: what you checked and what it showed>
## Root cause
<the cause supported by evidence>
## Proposed solution
<the fix, grounded in the evidence>
## Confidence
<high / medium / low> — <what is still uncertain, if anything>
## Verification (after applying)
<the original symptom re-checked under the same conditions — gone, observed>For full end-to-end traces of the method applied to hard, real problems, see
references/. Read one when you are stuck and want a model
to follow. Currently:
4316684
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.