Skip to content
Development
Skill

/oracle-debug

Disciplined debugging methodology. Triggers on bug reports, test failures, "debug this", "diagnose this", unexpected behavior, build failures, integration issues, or performance regressions. Find root cause before a permanent corrective fix; contain urgent harm safely first.

From plugin
atelier
4916 skills4 agents

Claude Code

$ npx -y skills add martinffx/atelier --skill oracle-debug --agent claude-code

SKILL.md

oracle-debug.SKILL.md
name: oracle-debug
description: >
  Disciplined debugging methodology. Triggers on bug reports, test failures, "debug this",
  "diagnose this", unexpected behavior, build failures, integration issues, or performance
  regressions. Find root cause before a permanent corrective fix; contain urgent harm safely first.
user-invocable: true

Oracle Debug

Random fixes waste time and create new bugs. Quick patches mask underlying issues.

**Core principle:** find root cause before a permanent corrective fix. Temporary containment is appropriate when needed to limit security, production, or data-loss impact.

**Violating the letter of this process is violating the spirit of debugging.**

The Iron Law

NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST

If you haven't completed Phase 1, you cannot propose fixes.

When to Use

Use for any technical issue:

  • Test failures
  • Bugs in production
  • Unexpected behavior
  • Performance regressions
  • Build or integration failures
  • Intermittent failures

**Use this especially when:**

  • Under time pressure
  • "Just one quick fix" seems obvious
  • You've already tried multiple fixes
  • The previous fix didn't work
  • You don't fully understand the issue

The Four Phases

You must complete each phase before proceeding to the next.

---

Phase 1 — Root Cause Investigation

**Before attempting any fix:**

Use the project's domain glossary and ADRs to build a clear mental model of the relevant modules before tracing.

1. **Read error messages carefully.** Read the full stack trace, line numbers, file paths, and error codes. Don't skip warnings. 2. **Build a fast feedback loop.** If you don't have a fast, deterministic, pass/fail signal for the bug, no amount of code-reading will save you. Spend disproportionate effort here.

Try these in order:

  • Failing test at the seam that reaches the bug
  • Curl / HTTP script against a running dev server
  • CLI invocation with fixture input
  • Headless browser script (Playwright/Puppeteer)
  • Replay a captured trace (network payload, event log)
  • Throwaway harness (minimal subset of the system)
  • Property/fuzz loop for "sometimes wrong" bugs
  • Bisection harness (e.g., `git bisect run`)
  • Differential loop (old vs new version)
  • HITL bash script (last resort — structure the human clicks)

Iterate on the loop: make it faster, sharper, and more deterministic. A 30-second flaky loop is barely better than no loop.

3. **Reproduce the bug.** Run the loop when safe. Confirm the failure matches what the user described and capture the exact symptom. When reproduction is unsafe or impossible, use historical artifacts, static evidence, or targeted telemetry instead. 4. **Check recent changes.** `git diff`, recent commits, new dependencies, config changes, environment differences. 5. **Trace data flow.** In multi-component systems, add diagnostic instrumentation at each boundary:

  • Record only the minimum fields needed at each component boundary
  • Redact credentials, authorization data, session identifiers, personal data, and payloads
  • Verify environment/config propagation
  • Check state at each layer

Run once to gather evidence, then narrow to the failing component. 6. **Trace backward through the call stack.** Where does the bad value originate? What called this with the bad value? Trace up until you find the source. Fix at the source, not at the symptom.

Non-deterministic bugs

The goal is not a clean repro but a **higher reproduction rate**. Narrow timing windows and vary one condition at a time. Treat added delay or load as a perturbation, not proof. Do not replay state-changing traffic, stress production, or collect sensitive artifacts without explicit authorization and a safe operational plan.

When you genuinely cannot build a loop

Stop and say so explicitly. Ask the user for:

  • Access to the environment that reproduces it
  • A captured artifact (HAR, log dump, core dump, screen recording)
  • Permission to add temporary production instrumentation

**Do not claim root cause without evidence you can explain.** A safe loop is preferred, but artifact-based investigation is valid when a loop is unavailable.

---

Phase 2 — Pattern Analysis

Find the pattern before fixing. Finding working examples across a large codebase can be delegated to a read-only subagent (see Delegation in atelier-orchestrator). Phases 1, 3 and 4 stay in the main thread.

1. **Find working examples.** Locate similar working code in the same codebase. 2. **Compare against references.** If implementing a known pattern, read the reference implementation completely. 3. **Identify differences.** List every difference between working and broken, however small. 4. **Understand dependencies.** What components, config, settings, and assumptions does this code rely on?

---

Phase 3 — Hypothesis and Testing

Use the scientific method.

1. **Generate 3–5 ranked hypotheses.** Single-hypothesis generation anchors on the first plausible idea. Each hypothesis must be falsifiable: state the prediction it makes. **Show the ranked list to the user before testing** — they often have domain knowledge that re-ranks instantly.

> Format: "If `<X>` is the cause, then `<changing Y>` will make the bug disappear / `<changing Z>` will make it worse."

2. **Test one variable at a time.** Make the smallest possible change to test the hypothesis. 3. **Instrument mapped to predictions.** Each probe must map to a specific prediction. Prefer a debugger/REPL over logs; prefer targeted logs at boundaries over "log everything and grep".

**Tag every debug log** with a unique prefix, e.g. `[DEBUG-a4f2]`. Cleanup becomes a single grep.

4. **Performance regressions.** Establish a baseline measurement using the least intrusive evidence available, then bisect. Measure first, fix second.

5. **When you don't know, say so.** Don't pretend. Ask for help or research more.

---

Phase 4 — Implementatio

Read more
@martinffx
Ships withatelier

A personal development toolkit for AI agents. It covers spec-driven development, code quality, and deep thinking. Atelier gives coding agents a disciplined way to move from an idea to reviewed, verified code without taking control away from the developer.

4916 skills4 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
49
Star history of martinffx/atelier on GitHub, a chart by star-history.com

Other skills on atelier.

atelier-orchestrator

atelier-orchestrator

Skill routing and workflow orchestration. Selects Inline Plan or Spec-backed Plan, routes to the correct workflow skill, and…

@martinffx@martinffxInstall Skill
atelier-setup

atelier-setup

Configure a repository for Atelier's development workflow. Use only when explicitly invoked; inspect existing guidance,…

@martinffx@martinffxInstall Skill
code-commit

code-commit

Generate and validate conventional commit messages following the conventionalcommits.org spec. Use whenever the user wants to…

@martinffx@martinffxInstall Skill
code-pull-request

code-pull-request

Manage GitHub pull requests or GitLab merge requests: create, read/leave/respond to comments, and merge. Triggers on "open a PR",…

@martinffx@martinffxInstall Skill
code-review

code-review

Multi-agent code review run as a debate. Critics raise findings in parallel, an Author defends the change, Critics concede or…

@martinffx@martinffxInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about oracle-debug.

Which coding agents can use oracle-debug?
oracle-debug installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.