/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
$ npx -y skills add chrisallenlane/claude-swe-workflows --skill think-ach --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/think-ach
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
think-ach.SKILL.mdname: 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
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
Showing the first part of this file.
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.
Repo: chrisallenlane/claude-swe-workflows
Other skills on claude-swe-workflows.
- /bug-fix
Bug-fixing workflow that coordinates diagnosis, test-driven reproduction, root-cause analysis, and targeted fixes. Use when the user wants to fix a bug with thorough investigation and regression testing.
Open skill - /bug-hunt
Proactive bug-hunting workflow. Assesses codebase risk through complexity, coverage, and structural analysis, then spawns focused investigators that write reproducing tests to validate suspected bugs. Thoroughness over speed. Advisory only — produces findings and proposes
Open skill - /implement-batch
Multi-ticket batch workflow. Takes a batch of tickets, plans execution order, implements each via /implement in autonomous mode, runs cross-cutting quality passes, and presents results for final review.
Open skill - /implement-project
Full-lifecycle project workflow. Takes batched tickets, implements via /implement-batch, runs smoke tests, then executes a comprehensive quality pipeline (refactor, review-arch, review-test, tidy-docs, review-release). Maximizes autonomy with andon cord escape.
Open skill - /implement
Iterative development workflow that coordinates implementation, refactoring, QA, and documentation agents to complete features systematically. Use when the user wants a full development workflow with quality checks.
Open skill - /lead-bug-hunt
Autonomous bug-elimination loop. Iteratively invokes /bug-hunt and /implement-batch until findings converge below an operator-specified severity floor. At termination, runs /review-test scoped to the run's new reproducing tests and fixes quality issues above the floor.
Open skill

