Debugging Prompt — the Investigation Contract
"Fix this error" gets guesses. The investigation contract gets a ten-stage diagnosis: facts separated from assumptions, alternatives weighed, fixes justified.
Forensic-grade RCA: most likely cause plus alternatives, each with supporting AND contradicting evidence — and unknowns that stay unknown.
Root cause analysis fails when it stops at the first plausible story. This setup runs the forensic mode on a duplicated-notifications problem with no reproduction yet: every conclusion must cite the specific evidence supporting it, at least two alternative causes carried alongside the leading one, contradicting evidence listed as diligently as supporting evidence, and — the forensic signature — assumptions forbidden in conclusions entirely, allowed only as questions in MISSING INFORMATION. With no repro provided, the contract demands the information needed to build one instead of pretending.
Demand the alternatives
The rules require at least two alternative causes — the leading story has to beat real competitors.
Weigh contradictions equally
Evidence against each candidate is listed next to evidence for it — the column most RCAs quietly omit.
Let unknowns stand
"Insufficient evidence" is a legitimate finding; a plausible guess in its place is how wrong RCAs get written.
The ROOT CAUSE RULES require the most likely cause plus at least two alternative causes, and for each candidate you get supporting AND contradicting evidence side by side. Assumptions are forbidden in conclusions — they may appear only in the MISSING INFORMATION stage as questions to resolve. The debugging-prompt-generator produces this prompt; the diagnosis is still a hypothesis you validate.
Stage 3, INFORMATION NEEDED TO REPRODUCE, handles exactly this: the loaded duplicated-emails case provides no reproduction steps, so the framework lists what's needed to reproduce before diagnosing further and says "Do not pretend a reproduction exists." The output tells you what to gather; it can't confirm the cause without it.
Likely yes. This runs the full 10-stage framework — SYMPTOMS through POST-FIX VERIFICATION — with FACT/ASSUMPTION/HYPOTHESIS labeling on every statement, built for RCAs read by people who weren't there. notFor says quick local bugs are better served by Fast or Standard mode in the debugging-prompt-generator, which resolves them with less ceremony.
"Fix this error" gets guesses. The investigation contract gets a ten-stage diagnosis: facts separated from assumptions, alternatives weighed, fixes justified.
An exception is a symptom, not a diagnosis: trace from the throw site back to the root trigger, with the runtime checklist on the table.
Measure before reasoning: find WHERE the time goes, separate latency from memory from throughput, and think at production scale.
"Review this code" gets shallow comments. The review contract gets findings with severities, a checklist, and a verdict.
getByRole over CSS chains, auto-wait over sleep, web-first assertions — Playwright tests written the way Playwright wants.
"Refactor this code" invites silent behavior changes. The refactoring contract preserves business rules, outputs, and side effects — and flags uncertainty instead of deciding it.
Build debugging prompts from symptoms, environment, and reproduction steps — root cause first, fix second.
The order that actually finds bugs instead of guessing at them — so you end with a verified fix, not a plausible one that quietly returns next week.
Paste an error, say "fix this," and AI patches the first thing it sees — the symptom clears, the real cause stays. Here's how to run a debugging pass that works from symptoms and evidence to a root cause, and holds off on a fix until the evidence points at one.
The incident's over and you've got a channel full of messages and logs, so "summarize this" returns a blamey story with an invented root cause. Here's how to turn your real notes into a blameless incident postmortem: confirmed timeline, evidence-backed factors, owned actions.