Skip to content
Development
Skill

/think-ach

Analysis of Competing Hypotheses. Operationalizes Richards Heuer's CIA-tradition technique for systematically narrowing among multiple hypotheses against evidence. Builds an explicit hypothesis-vs-evidence matrix and focuses on disconfirmation rather than confirmation — the

From plugin
claude-swe-workflows
1832 skills40 agents

Claude Code

$ npx -y skills add chrisallenlane/claude-swe-workflows --skill think-ach --agent claude-code

SKILL.md

think-ach.SKILL.md
name: think-ach
description: Analysis of Competing Hypotheses. Operationalizes Richards Heuer's CIA-tradition technique for systematically narrowing among multiple hypotheses against evidence. Builds an explicit hypothesis-vs-evidence matrix and focuses on disconfirmation rather than confirmation — the central insight: hypotheses cannot be proven, only disconfirmed; the surviving hypothesis is the one with the least disconfirming evidence. Spawns parallel hypothesizers (in isolation, across hypothesis-generation angles) and parallel evidence-gatherers (across evidence classes), then synthesizes into a matrix, diagnosticity analysis, sensitivity analysis, and falsification milestones. Produces feedback only — no code, no tickets, no artifacts.
model: opus

Think-ACH - Analysis of Competing Hypotheses

Systematically narrows among multiple hypotheses against evidence using Richards Heuer's Analysis of Competing Hypotheses (ACH) technique. Generates hypotheses (parallel, isolated), enumerates evidence (parallel, isolated), builds an explicit matrix mapping each piece of evidence against each hypothesis, focuses on *disconfirming* evidence to rank hypotheses, and reports the surviving leader along with sensitivity analysis and falsification milestones.

**This skill produces no tangible artifacts.** It is a consultant, not an implementer. No code, no tickets, no commits. The output is a structured analysis the user can act on — a hypothesis leaderboard with the matrix that supports it.

The technique

ACH was developed by Richards J. Heuer Jr. for the CIA Directorate of Intelligence and is documented in his book *Psychology of Intelligence Analysis* (1999). It was designed specifically to counter the cognitive failure modes that intelligence analysts (and everyone else reasoning under uncertainty) habitually exhibit:

  • **Confirmation bias** — seeking evidence that confirms a preferred hypothesis rather than evidence that disconfirms competing ones
  • **Premature closure** — locking in on the first plausible hypothesis and stopping the search
  • **Anchoring** — letting the leading candidate dominate subsequent reasoning
  • **Cherry-picking evidence** — emphasizing convenient evidence and rationalizing away inconvenient evidence
  • **Failure to consider alternatives** — never enumerating the full hypothesis space

ACH's structural countermeasures:

1. **Force enumeration of all plausible hypotheses upfront** (anti-anchoring; anti-premature-closure) 2. **Build an explicit matrix** of evidence × hypothesis (anti-cherry-picking; makes the analysis legible) 3. **Focus on disconfirmation** — the central insight: a hypothesis cannot be proven, only disconfirmed. The surviving hypothesis is the one with the *least disconfirming evidence*, not the most confirming. (Anti-confirmation-bias.) 4. **Identify diagnosticity** — surface which evidence actually discriminates among hypotheses; drop evidence consistent with all 5. **Sensitivity analysis** — for each load-bearing piece of evidence, ask "what if this is wrong?" and watch how the conclusion changes 6. **Report all hypotheses, not just the leader** — preserve the alternatives so the user knows what's still in play 7. **Identify falsification milestones** — what future observation would distinguish the top candidates?

When to use vs `/think-diagnose`

These two skills overlap in problem domain (multi-candidate evaluation under uncertainty) but are structurally distinct.

  • **`/think-diagnose`** — open-ended causal exploration. *Generative + evaluative.* Lens-driven brainstorming of candidate causes (technical, human-factors, environmental, measurement-artifact, etc.) plus narrative evidence evaluation. Use when the user has a *phenomenon* and wants to understand its causes broadly. Output: leading candidates with distinguishing evidence needed.
  • **`/think-ach`** — rigorous narrowing among hypotheses. *Primarily evaluative*, with explicit matrix structure and disconfirmation focus. Use when the user has *competing hypotheses* (provided or just-generated) and wants to systematically narrow among them. ACH is broader than diagnosis — it applies to causal attribution, forecasting, attribution-of-responsibility, strategic assessment, and similar multi-hypothesis questions.

Natural workflow when both apply: `/think-diagnose` generates candidate causes; `/think-ach` rigorously narrows among them. They are complementary, not duplicative.

ACH also stands alone for non-causal questions ("which of these scenarios is most likely?", "which actor is most likely responsible?", "which interpretation of the data is most defensible?").

Roles

**Judge (you, running this skill):**

  • Receive the question and any seed hypotheses
  • Validate the question is ACH-shaped
  • Spawn hypothesizers in isolation across angles
  • Spawn evidence-gatherers in isolation across evidence classes
  • Build the matrix (evaluating each cell independently)
  • Run diagnosticity, disconfirmation-focused ranking, sensitivity analysis, and falsification-milestone identification
  • Synthesize the report

**Hypothesizers** (`THK - ACH Hypothesizer`): Each receives the question and an assigned *angle* (leading, alternative, adversarial, null, deceptive, surprise). Generates hypotheses from that angle in isolation.

**Evidence-gatherers** (`THK - ACH Evidence Gatherer`): Each receives the question and an assigned *evidence class* (direct-observational, documentary-historical, structural, behavioral, absent, anomalous). Enumerates relevant evidence in that class in isolation.

Workflow

1. Receive the Question and Any Seed Hypotheses

The question may arrive as:

  • **Conversation context** — summarize back, confirm
  • **A document** — read the file (incident report, design analysis, intelligence brief)
  • **Fresh user input** — capture verbatim

The user may also provide seed hypotheses they already have in mind. Capture them as inputs to step 3 (they don't replace the parallel hyp

Read more
@chrisallenlane
Ships withclaude-swe-workflows

A system of composable software engineering workflows for Claude Code. Plan projects, implement tickets, and run quality passes — from a single ticket to a multi-batch project, using the same layered architecture.

1832 skills40 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
18
Star history of chrisallenlane/claude-swe-workflows on GitHub, a chart by star-history.com

Other skills on claude-swe-workflows.

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 think-ach.

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