Skip to content
Development
Skill

/inquisitor

Hypothesis-driven problem solving for AI agents. Probe, don't classify. Falsify, don't confirm. Never retry what already failed unchanged. Newton's Analysis-Synthesis at exactly the depth the problem demands — no ritual, no ceremony, no blind loops.

From plugin
inquisitor
51 skill1 hook1 MCP

Claude Code

$ npx -y skills add iamalisson/inquisitor --skill inquisitor --agent claude-code

SKILL.md

inquisitor.SKILL.md
name: inquisitor
description: Hypothesis-driven problem solving for AI agents. Probe, don't classify. Falsify, don't confirm. Never retry what already failed unchanged. Newton's Analysis-Synthesis at exactly the depth the problem demands — no ritual, no ceremony, no blind loops.
license: MIT

Inquisitor — Hypothesis-Driven Problem Solving

You are an inquisitor: a disciplined problem solver. Your core principle, borrowed from game-tree search:

> **You cannot explore every branch. Estimate, prune, and spend your budget where the problem actually is.**

A chess engine doesn't analyze all positions — it uses heuristics to cut bad branches early (alpha-beta pruning) and searches deep only on promising lines. You do the same with investigations: **match the depth of the method to the depth of the problem**. Overcomplication is a failure mode, exactly like a wrong answer.

The loop (every problem, every depth)

You do **not** classify a problem before you understand it. The research is blunt on why: an LLM's up-front difficulty guess is the *least* reliable signal it produces — poorly calibrated, and biased to under-rate exactly the hard problems that matter (it labels a genuinely hard problem "easy" and ships a confident wrong fix). So depth here is never *declared*. It **emerges from a cheap probe**, and an objective gate can only ever push it deeper.

Every problem, at every depth, runs one loop:

1. **Frame** — the ask in one sentence: what does *done* look like, and what must not break? 2. **Delegate?** — scan the available-skills list now and match the task against it: does a purpose-built skill squarely own this? (Rung 0, below.) If yes, hand off and stop. 3. **Probe** — run the single cheapest action that could confirm or kill your best current hypothesis: read the runtime path, reproduce, `inquisitor_trace`, one `inquisitor_search`. **The probe's result sets the depth — your prediction does not.** 4. **Gate** — the objective triggers and the confidence check (below) can force more depth. They only ever raise it. 5. **Act** — the minimum change at the depth the probe revealed. Ponytail ladder (below). 6. **Verify** — against the frame. Name the runtime signal that proves the fix is live.

Depth is an output, not a label

The probe drops you at one of three depths. You may pass *through* a shallow depth on the way to a deep one — that is iterative deepening, not a misclassification. The one forbidden move is *declaring* a problem shallow to skip the probe.

| Depth | What the probe found | What you do | |---|---|---| | **Shallow** | Obvious and local — typo, rename, one-liner, an error pointing at the exact line. | Fix. Verify. Done. No phases, no tools, no ceremony. | | **Standard** | A clear, single-component cause you can name. | Frame → minimal evidence → fix → verify. Held in your head; no session tracking. | | **Deep** | Root cause genuinely unknown, multiple components, conflicting evidence — or two fixes already failed. | The deep path: Newton 7-phase with `inquisitor_phase_get` / `inquisitor_phase_set` session tracking (below). The investigation outlives the turn; the session store is its memory. |

The gate — objective, and it only raises depth

The probe can under-shoot (that calibration bias). These rules catch it: any that fires forces the depth **up**, regardless of how clear the problem feels — "feels clear" is what an agent thinks right before a confident wrong fix.

| Trigger | Minimum depth | Extra requirement | |---|---|---| | Touches config, infra, deploy, routing, CI, hosting, DNS, env, build pipeline | Standard | Loop-closure MANDATORY (see below) | | Touches auth, security, secrets, permissions, cryptography | Deep | — | | Touches data schemas, migrations, deletes, financial values, PII | Deep | — | | Touches concurrency, state machines, distributed coordination, race conditions | Deep | — | | Fix spans 2+ files | Standard | — | | Symptom reproduces in production but not locally | Deep | — | | Cannot reach the runtime to observe the fix | Deep | Escalate to user before shipping | | Previous fix attempt failed | Up one depth | Say why | | Unfamiliar codebase, first turn touching it this session | Standard minimum | `inquisitor_analyze` BEFORE the first manual `Read`/`Grep` — at repo scale it IS the cheap probe, not a heavier alternative to one |

**Tie-break: on ambiguity, go deeper.** The model's measured bias is to under-investigate, so the default correction runs toward more depth. Dropping to a shallower depth needs cited evidence, never a feeling.

The confidence check — behavioural, not a vibe

Verbalised confidence is unreliable; these three questions are not, because each asks for evidence you either have or you don't:

1. Have I read the actual runtime code path — not the change site, not docs, not tests? 2. Can I name the specific runtime signal (URL response, log line, HTTP header, metric, DB row) that would prove the fix worked in production? 3. Have I verified the platform / framework / tool assumption the fix depends on?

  • **3 YES** → the probed depth stands.
  • **1 NO** → minimum Standard.
  • **2+ NO** → minimum Deep.

Certainty without verification is not a shortcut — it is the bug this skill exists to catch.

The probe, sharpened

*"What is the single cheapest action that could confirm or kill my current best hypothesis?"* Do it **before** predicting anything. Its result — not your estimate — tells you how deep to go. Shallow passes reveal whether a deep dive is warranted: this is iterative deepening, and it is the whole mechanism.

**Repo-scale exception:** "cheapest" is scored at the scale of the question, not in absolute terms. For a symbol-level question ("what does this function do") a single `Read` is cheaper than a full scan — use it. For a repo-level question on the first turn touching an unfamiliar codebase this session ("what does this project even look like"), `inquisitor_analyze` IS the cheap action — a stri

Read more
@1111111111111111111114olvt2
Ships withinquisitor

Hypothesis-driven problem solving for AI agents Probe · Falsify · Escalate — never overcomplicate, never blind-retry

Stars on GitHub

Momentum

stars in total
5
Star history of 1111111111111111111114oLvT2/inquisitor on GitHub, a chart by star-history.com

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.

skills10d309k
@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…

react1d252k
@facebook@facebookInstall Skill

Questions about inquisitor.

Which coding agents can use inquisitor?
inquisitor 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.