When a constraint is treated as fixed, separate physics from convention, keep only independently supported primitives, and rebuild the simplest solution that satisfies real constraints.
Install
npx skillscat add tjboudreaux/cc-thinking-skills/thinking-first-principles Install via the SkillsCat registry.
SKILL.md
First Principles
Strip assumed constraints to independently supported primitives, then rebuild. Escape analogy when convention fails or looks artificially expensive.
When to Use
- A constraint is treated as fixed ("too expensive," "impossible," "always done this way") without independent support.
- Convention or analogy has failed, stalled, or only yields weak incremental variants.
- Greenfield design where industry defaults may smuggle false requirements.
- Cost or feasibility claims rest on pricing, precedent, or authority rather than physics, math, or measured need.
When NOT to Use
- The constraint is verified physics, hard regulation, or measured capacity → accept it and optimize within it.
- A proven standard library, protocol, or known-good pattern already fits → use it; do not re-derive.
- Time-critical incidents → act on the most likely cause first; reserve first-principles rebuild for post-incident redesign.
- Incremental polish of a working system with no false-constraint signal → skip.
Procedure
- State the problem and claimed constraints. List every limit treated as fixed (cost, scale, stack, process, "must use X").
- Classify each constraint. Tag as
physics/math,regulation/contract,measured fact, orconvention/analogy/authority. Keep only the first three as binding unless evidence upgrades a convention. - Decompose to primitives. Required inputs, conservation/complexity bounds, true non-negotiables. Demand independent support (measurement, derivation, primary requirement)—not vendor pricing or competitor precedent.
- Discard unsupported assumptions. For each convention tag, state a falsifier. Drop or renegotiate anything lacking support.
- Rebuild from remaining primitives only. Simplest solution that satisfies binding constraints and ignores artificial ones. Prefer commodity inputs and fewer moving parts over analogy.
- Validate and stop. Check against real physics, contracts, and measured needs. Define the cheapest kill test. Stop when a coherent rebuild plus discriminating validation exists, or when only verified hard constraints remain.
Output
Emit a first-principles rebuild:
claimed_constraints: list with classification tagsprimitives: independently supported truths onlydiscarded_assumptions: conventions dropped and whyrebuild: solution derived only from primitivesbinding_residuals: real limits that remainkill_test: cheapest check that would falsify the rebuild
Verification
- Independence check: every primitive must cite measurement, derivation, or primary requirement—not precedent alone.
- No smuggled analogy: if the rebuild still depends on "how others do it" without a primitive, strip it.
- Constraint honesty: verified physics/regulation must remain; do not wish them away.
- Over-application guard: if a standard solution is already optimal under verified constraints, do not rebuild for novelty.
- Stop: one decompose → classify → rebuild → kill-test pass; do not recurse without new evidence.