From am2rican5
Guided first-principles reasoning that decomposes problems into foundational truths and reconstructs solutions from scratch. Use when user says "first principles", "first-principle", "decompose this problem", "break this down", "challenge my assumptions", "why does this work this way", "rethink from scratch", or wants to question conventional approaches before implementing. Do NOT use for brainstorming, general ideation, spec writing, or implementation tasks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/am2rican5:first-principle-thinkingThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A structured reasoning workflow that breaks complex problems into irreducible foundational truths, challenges hidden assumptions, and rebuilds solutions from verified fundamentals rather than analogy or convention.
A structured reasoning workflow that breaks complex problems into irreducible foundational truths, challenges hidden assumptions, and rebuilds solutions from verified fundamentals rather than analogy or convention.
Based on the Farnam Street first-principles methodology: Socratic Questioning and the Five Whys.
/sdd-workflow or /spec-writer$ARGUMENTS contains a problem statement, use it as the starting problem## Step 1: Problem & Assumptions
**Problem:** <one-sentence problem statement>
**Assumptions:**
1. <assumption> — <where it comes from>
2. <assumption> — <where it comes from>
...
Apply two complementary techniques to drill past assumptions to bedrock truths.
For each significant assumption from Step 1, work through these five questions:
Not every assumption needs all five questions. Focus depth on the assumptions that most constrain the solution space.
For the core problem statement, drill down iteratively:
The bottom of the Five Whys reveals the fundamental truth — the "Lego block" that cannot be further decomposed.
After applying both techniques, classify each assumption:
## Step 2: Verified Truths & Discarded Assumptions
**Verified Truths** (survived questioning):
- <truth> — evidence: <why this held up>
- <truth> — evidence: <why this held up>
**Discarded Assumptions** (did not hold up):
- <assumption> — reason: <why it was discarded, what replaced it>
**Fundamental Truths** (from Five Whys):
- <irreducible truth>
- <irreducible truth>
Present this output and confirm before moving to Step 3.
Using only the verified and fundamental truths from Step 2, construct new approaches:
## Step 3: Reconstruction
**Building from these truths:**
1. <truth>
2. <truth>
**Approach A: <name>**
<description>
*Differs from conventional approach because:* <explanation>
*Trade-offs:* <notes>
**Approach B: <name>**
<description>
*Differs from conventional approach because:* <explanation>
*Trade-offs:* <notes>
WHEN the user selects an approach:
/spec-writer to formalize requirements" or "Run /sdd-workflow to implement"WHEN all assumptions survived questioning (conventional approach confirmed):
User: /first-principle-thinking "Why are we using microservices for a 3-person team?"
Step 1 — States problem, reads the codebase, lists assumptions:
Step 2 — Challenges each:
Step 3 — Proposes:
User: /first-principle-thinking "Should we switch from PostgreSQL to MongoDB?"
Step 1 — Lists assumptions about why MongoDB might be better
Step 2 — Finds that the relational model fits the data well, ACID transactions are needed, and the "flexibility" assumption doesn't hold for their schema
Step 3 — Confirms PostgreSQL is well-founded, suggests JSONB columns for the few semi-structured fields
Cause: The thinking process feels slow for a clear problem. Solution: Remind them that the skill's value is in the decomposition. If the problem is truly simple, the steps will confirm quickly. Suggest: "Let's run through it — if your assumptions all hold up, Step 3 will confirm your approach in minutes."
Cause: User is thinking about a greenfield problem or abstract decision. Solution: Skip the code-reading steps in Step 1. Ground assumptions in the user's stated constraints and domain knowledge instead.
Cause: Step 1 surfaced 10+ assumptions. Solution: Ask the user to rank the top 3–5 assumptions they're least confident about. Focus Socratic Questioning on those. Apply Five Whys to the core problem only.
npx claudepluginhub am2rican5/cc-plugin --plugin am2rican5Surfaces hidden assumptions in decisions and problems, finds foundational truths, and identifies high-leverage moves. Invoked via /deconstruct or auto on high-stakes decisions.
Decomposes problems to bedrock truths and rebuilds solutions from fundamentals. Useful when constrained by inherited assumptions or industry conventions.
Decomposes claims into necessities vs conventions via recursive 'why' questioning, then reconstructs alternatives. Supports brief, tetralemma, and polarity modes for engineering inquiries.