skills/thinking-first-principles/SKILL.md
When a constraint is treated as fixed ("too expensive", "impossible", "always done this way"), ask whether it's physics or just convention, then rebuild from what's actually true.
npx skillsauth add tjboudreaux/cc-thinking-skills thinking-first-principlesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
First principles thinking strips away assumptions and conventions to reveal fundamental truths, then reconstructs solutions from those basics. This approach, championed by Elon Musk and rooted in Aristotle's philosophy, enables breakthrough solutions by escaping the trap of reasoning by analogy.
Core Principle: Don't accept "that's how it's always done." Reduce to fundamentals, then rebuild.
Decision flow:
Problem intractable? → yes → Are you reasoning from analogy? → yes → APPLY FIRST PRINCIPLES
↘ no → Already at fundamentals
↘ no → Standard problem-solving may suffice
When a constraint is treated as fixed ("too expensive", "impossible", "always done this way"):
Skip if the "why" is settled (standard library, known-good pattern). In an incident, act on the most likely cause first; reserve this for post-incident redesign.
List everything you "know" or assume about the problem:
Example: "Rocket launches cost $65M because that's what aerospace companies charge"
Assumptions: Must buy from existing suppliers, existing designs are optimal,
materials must be aerospace-grade, vertical integration is too hard
Ask repeatedly: "What are we absolutely certain is true?"
Decomposition questions:
Example: Rocket raw materials (aluminum, titanium, copper, carbon fiber)
= ~2% of typical rocket price
Fundamental truth: Materials aren't the cost driver;
manufacturing/overhead/margins are
For each assumption, ask:
Use the "5 Whys" to drill deeper:
Why is it expensive? → Suppliers charge high margins
Why? → Limited competition
Why? → High barriers to entry
Why? → Assumption that you must use existing supply chain
Why? → Nobody questioned it
Starting ONLY from verified truths:
Example: Build rockets in-house using commodity materials
= SpaceX reduced launch costs by 10x
| Trap | Description | Antidote | |------|-------------|----------| | Reasoning by Analogy | "Others do it this way" | Ask "but is it optimal?" | | Appeal to Authority | "Experts say it's impossible" | "What specifically makes it impossible?" | | Sunk Cost | "We've always done it this way" | "What if we started fresh today?" | | Complexity Bias | Assuming complex = better | "What's the simplest version?" | | False Constraints | Accepting artificial limits | "Is this a law of physics or convention?" |
Assumption: "We need a microservices architecture"
First Principles:
- What problem are we solving? (scalability, team independence, deployment)
- What's the minimum that achieves this?
- A modular monolith might suffice for current scale
Assumption: "This service costs $50k/month, that's just cloud pricing"
First Principles:
- What compute/storage do we actually need?
- What are we paying for that we don't use?
- Could we reduce by 80% with right-sizing?
Assumption: "Users need feature X (because competitor has it)"
First Principles:
- What job is the user trying to accomplish?
- What's the simplest way to enable that job?
- Maybe a different approach solves it better
tools
About to add a feature/layer/process to fix a problem. First ask what to remove instead — subtraction is often more robust than addition. Use for simplification and complexity reduction.
development
Use when stuck between two architecture or API requirements that seem mutually exclusive — name the contradiction precisely, then separate the conflicting states in time, space, or condition.
testing
You need to trace how a system would fail or behave at a scale you can't cheaply test or measure. Use to imagine the scenario and walk the consequence chain step by step.
devops
Use when optimizing latency or throughput in a pipeline and one stage dominates—focus all effort on that single bottleneck, since speeding up the others changes nothing until it's fixed.