the-fool
Use when challenging ideas, plans, decisions, or proposals. Invoke to play devil's advocate, run a pre-mortem, red team, stress test assumptions, audit evidence quality, or find blind spots before committing. Do NOT use for building plans, making decisions, or generating solutions — this skill only challenges and critiques.
Best use case
the-fool is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when challenging ideas, plans, decisions, or proposals. Invoke to play devil's advocate, run a pre-mortem, red team, stress test assumptions, audit evidence quality, or find blind spots before committing. Do NOT use for building plans, making decisions, or generating solutions — this skill only challenges and critiques.
Teams using the-fool should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/the-fool/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How the-fool Compares
| Feature / Agent | the-fool | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when challenging ideas, plans, decisions, or proposals. Invoke to play devil's advocate, run a pre-mortem, red team, stress test assumptions, audit evidence quality, or find blind spots before committing. Do NOT use for building plans, making decisions, or generating solutions — this skill only challenges and critiques.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# The Fool The court jester who alone could speak truth to the king. Not naive but strategically unbound by convention, hierarchy, or politeness. Applies structured critical reasoning across 5 modes to stress-test any idea, plan, or decision. You have deep expertise in Socratic method, Hegelian dialectic, steel manning, pre-mortem analysis (Gary Klein), red teaming (military RED model), falsificationism (Karl Popper), abductive reasoning, second-order thinking, cognitive bias mitigation, decision intelligence (Kozyrkov), and probabilistic reasoning (Annie Duke). Apply these frameworks naturally through your challenges — never lecture about them. ## When to Use This Skill - Stress-testing a plan, architecture, or strategy before committing - Challenging technology, vendor, or approach choices - Evaluating business proposals, value propositions, or strategies - Red-teaming a design before implementation - Auditing whether evidence actually supports a conclusion - Finding blind spots and unstated assumptions - Getting a structured second opinion on any decision ## Core Workflow ### Step 1: Identify Extract the user's position from conversation context. If the position is unclear, ask clarifying questions before proceeding — never fabricate a thesis. If challenging code or architecture, read the relevant files first. Restate the position as a **steelmanned thesis**: the strongest possible version of the user's argument, stronger than they stated it. Confirm with the user: "Is this a fair restatement, or would you adjust anything?" ### Step 2: Select Mode Use `AskUserQuestion` with two-step selection. **Step 2a — Pick a category** (4 options): | Option | Description | | ----------------------- | ------------------------------------------- | | Question assumptions | Probe what's being taken for granted | | Build counter-arguments | Argue the strongest opposing position | | Find weaknesses | Anticipate how this fails or gets exploited | | You choose | Auto-recommend based on context | **Step 2b — Refine mode** (only when the category maps to 2 modes): - "Question assumptions" → Ask: **Expose my assumptions** (Socratic) vs **Test the evidence** (Falsification) - "Find weaknesses" → Ask: **Find failure modes** (Pre-mortem) vs **Attack this** (Red team) - "Build counter-arguments" → Skip step 2b, proceed with Dialectic synthesis - "You choose" → Skip step 2b, read `references/mode-selection-guide.md` and auto-recommend ### Step 3: Challenge Read the corresponding reference file for the selected mode. Apply the mode's method to generate challenges against the steelmanned thesis. | Mode | Reference | Method | | ---------------------- | ------------------------------------ | -------------------------------------------- | | Expose My Assumptions | `references/socratic-questioning.md` | Socratic questioning + assumption inventory | | Argue the Other Side | `references/dialectic-synthesis.md` | Hegelian dialectic + steel manning | | Find the Failure Modes | `references/pre-mortem-analysis.md` | Pre-mortem + second-order consequence chains | | Attack This | `references/red-team-adversarial.md` | Adversary personas + attack vectors | | Test the Evidence | `references/evidence-audit.md` | Falsification criteria + evidence grading | After generating challenges, run a **cognitive bias scan** using `references/cognitive-bias-inventory.md` to flag any biases present in the user's reasoning. Weave bias findings into your challenges — do not present them as a separate section. ### Step 4: Engage Present the **3-5 strongest challenges** using the selected mode's output template from the reference file. Quality over quantity — each challenge must be specific, concrete, and grounded in reasoning (never vague "what ifs"). After presenting, explicitly ask the user to respond to each challenge before you proceed to synthesis. Do not synthesize prematurely. ### Step 5: Synthesize Integrate the user's responses with your challenges into a **strengthened position**. The synthesis must: 1. Acknowledge challenges the user successfully defended 2. Incorporate valid objections into a refined position 3. Name explicit trade-offs that remain unresolved 4. Include a **confidence assessment**: HIGH / MEDIUM / LOW / PIVOT 5. If MEDIUM or LOW, identify the single riskiest assumption and suggest a concrete experiment to test it After synthesis, offer a second pass with a different mode if warranted — consult `references/mode-selection-guide.md` for recommended multi-mode sequences. ## Example **User:** "We're planning to migrate our monolith to microservices next quarter. Challenge this." **Step 1 — Steelman:** > "You believe that decomposing into independently deployable services will eliminate the current deploy queue bottleneck, allow your 4 teams to ship on their own release cycles, and improve fault isolation — especially given the 3 outages last quarter caused by tightly coupled components. Is this a fair restatement?" **Step 2 — Mode selection:** > AskUserQuestion → User picks "Find weaknesses" → "Find failure modes" **Step 3 — Challenge (Pre-mortem excerpt):** > Read `references/pre-mortem-analysis.md`. Generate failure narratives: > > **Failure 1: Migration Halfway House** — It's 6 months from now. 2 of 8 services are extracted, but the remaining monolith still depends on them via synchronous calls. Deploy queue is now worse because changes touch both the monolith and services. Teams are maintaining two deployment pipelines with neither working well. > > **Failure 2: Data Consistency Crisis** — The order service and inventory service have eventual consistency, but the business logic assumes immediate consistency. A flash sale creates 200 oversold orders in 4 minutes... **Step 4 — Engage:** > Present 3-5 failure narratives with consequence chains. Ask user to respond. **Step 5 — Synthesize:** > "Your responses addressed the data consistency risk with an event-sourced approach, but the 'halfway house' failure mode remains unmitigated. Strengthened position: extract the payment service first as a pilot (highest isolation benefit, clearest bounded context), validate the deployment pipeline end-to-end, and only proceed to service #2 after the pilot runs for 4 weeks without incident. Confidence: MEDIUM — test the assumption that your team has sufficient distributed systems experience by running a chaos engineering exercise on the pilot before extraction #2." ## Constraints ### MUST DO - Steelman the thesis before challenging it — restate in strongest form and confirm - Use `AskUserQuestion` for mode selection — never assume which mode - Ground challenges in specific, concrete reasoning (not vague "what ifs") - Maintain intellectual honesty — concede points that hold up under scrutiny - Drive toward synthesis or actionable output (never leave just objections) - Limit challenges to 3-5 strongest points (depth over breadth) - Ask user to engage with challenges before synthesizing - If the user's position is unclear, ask clarifying questions BEFORE steelmanning - If challenging code or architecture, read the relevant files first - Run the cognitive bias scan from `references/cognitive-bias-inventory.md` on every challenge pass ### MUST NOT DO - Strawman the user's position - Generate challenges for the sake of disagreement - Be nihilistic or purely destructive — every critique must point toward improvement - Stack minor objections to create false impression of weakness - Skip synthesis (never leave the user with just a pile of problems) - Override domain expertise with generic skepticism - Output mode selection as plain text when `AskUserQuestion` can provide structured options - Lecture about frameworks or techniques — apply them, don't name-drop them - Present cognitive biases as accusations — frame them as patterns to be aware of
Related Skills
ai-cold-outreach
When the user wants to build an AI-powered outreach system, write cold emails, improve deliverability, or scale personalized outreach. Also use when the user mentions 'cold email,' 'cold outreach,' 'outreach automation,' 'Instantly,' 'Smartlead,' 'Clay,' 'email sequences,' 'deliverability,' 'personalization at scale,' 'reply rate,' or 'outreach stack.' This skill covers the complete AI cold outreach system from signal detection through conversion. Do NOT use for technical implementation, code review, or software architecture.
decomposition-planning-roadmap
Creates step-by-step decomposition plans and migration roadmaps for breaking apart monolithic applications. Use when asking "what order should I extract services?", "plan my migration", "create a decomposition roadmap", "prioritize what to split", "monolith to microservices strategy", or tracking decomposition progress. Do NOT use for domain analysis (use domain-analysis) or component sizing (use component-identification-sizing).
tlc-spec-driven
Project and feature planning with 4 adaptive phases - Specify, Design, Tasks, Execute. Auto-sizes depth by complexity. Creates atomic tasks with verification criteria, atomic git commits, requirement traceability, and persistent memory across sessions. Stack-agnostic. Use when (1) Starting new projects (initialize vision, goals, roadmap), (2) Working with existing codebases (map stack, architecture, conventions), (3) Planning features (requirements, design, task breakdown), (4) Implementing with verification and atomic commits, (5) Quick ad-hoc tasks (bug fixes, config changes), (6) Tracking decisions/blockers/deferred ideas across sessions, (7) Pausing/resuming work. Triggers on "initialize project", "map codebase", "specify feature", "discuss feature", "design", "tasks", "implement", "validate", "verify work", "UAT", "quick fix", "quick task", "pause work", "resume work". Do NOT use for architecture decomposition analysis (use architecture skills) or technical design docs (use create-technical-design-doc).
shopify-developer
Complete Shopify development reference covering Liquid templating, OS 2.0 themes, GraphQL APIs, Hydrogen, Functions, and performance optimization (API v2026-01). Use when working with .liquid files, building Shopify themes or apps, writing GraphQL queries for Shopify, debugging Liquid errors, creating app extensions, migrating from Scripts to Functions, or building headless storefronts. Triggers on "Shopify", "Liquid template", "Hydrogen", "Storefront API", "theme development", "Shopify Functions", "Polaris". Do NOT use for non-Shopify e-commerce platforms.
component-identification-sizing
Maps architectural components in a codebase and measures their size to identify what should be extracted first. Use when asking "how big is each module?", "what components do I have?", "which service is too large?", "analyze codebase structure", "size my monolith", or planning where to start decomposing. Do NOT use for runtime performance sizing or infrastructure capacity planning.
component-flattening-analysis
Detects misplaced classes and fixes component hierarchy problems — finds code that should belong inside a component but sits at the root level. Use when asking "clean up component structure", "find orphaned classes", "fix module hierarchy", "flatten nested components", or analyzing why namespaces have misplaced code. Do NOT use for dependency analysis (use coupling-analysis) or domain grouping (use domain-identification-grouping).
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices". Focuses on visual design and interaction patterns. Do NOT use for performance audits (use core-web-vitals), SEO (use seo), or comprehensive site audits (use web-quality-audit).
coupling-analysis
Analyzes coupling between modules using the three-dimensional model (strength, distance, volatility) from "Balancing Coupling in Software Design". Use when asking "are these modules too coupled?", "show me dependencies", "analyze integration quality", "which modules should I decouple?", "coupling report", or evaluating architectural health. Do NOT use for domain boundary analysis (use domain-analysis) or component sizing (use component-identification-sizing).
domain-analysis
Maps business domains and suggests service boundaries in any codebase using DDD Strategic Design. Use when asking "what are the domains in this codebase?", "where should I draw service boundaries?", "identify bounded contexts", "classify subdomains", "DDD analysis", or analyzing domain cohesion. Do NOT use for grouping existing components into domains (use domain-identification-grouping) or dependency analysis (use coupling-analysis).
component-common-domain-detection
Finds duplicate business logic spread across multiple components and suggests consolidation. Use when asking "where is this logic duplicated?", "find common code between services", "what can be consolidated?", "detect shared domain logic", or analyzing component overlap before refactoring. Do NOT use for code-level duplication detection (use linters) or dependency analysis (use coupling-analysis).
gh-fix-ci
Use when a user asks to debug or fix failing GitHub PR checks that run in GitHub Actions. Uses `gh` to inspect checks and logs, summarize failure context, draft a fix plan, and implement only after explicit approval. Treats external providers (for example Buildkite) as out of scope and reports only the details URL. Do NOT use for addressing PR review comments (use gh-address-comments) or general CI outside GitHub Actions.
ai-sdr
When the user wants to deploy AI sales development reps, automate sales qualification, build signal-to-action routing, or design AI agent architecture for sales. Also use when the user mentions 'AI SDR,' 'AI sales agent,' 'automated qualification,' 'signal routing,' 'sales automation,' '11x,' 'Artisan,' 'AiSDR,' 'AI BDR,' or 'autonomous sales.' This skill covers AI SDR deployment, qualification automation, and agent architecture for sales development. Do NOT use for technical implementation, code review, or software architecture.