关于 First Principles Thinking
First Principles Thinking 是一项结构化推理技能,适用于架构、设计等基础决策。它拆解问题、质疑假设、识别基本事实,并据此构建和检验方案。
主要功能
- 01明确问题与成功标准
- 02列出并质疑假设
- 03识别基本约束与需求
- 04从已验证事实构建方案
- 05追溯并压力测试推理
适用场景
- 01评估架构或设计选择
- 02重新审视遗留系统中的假设
- 03避免照搬既有模式来设计系统
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ awesome-skills/ first-principles-skill --skill first-principles-thinking安装后在 Claude Code 中输入/first-principles-thinking确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEREADME.mdexamples/architecture-review.mdreferences/software-examples.mdelon-musk-examples.md详细介绍
第一性原理思维
一种系统性方法,将复杂问题分解为基本事实,并从这些事实出发进行推理,避免陷入类比推理的陷阱。
何时使用此技能
- 评估某种架构或设计是否确实最优
- 质疑可能不适用于当前情境的“最佳实践”
- 在常规解决方案难以奏效时找到突破口
- 做出会产生长期影响的基础性决策
- 挑战遗留系统中沿袭下来的假设
- 设计新系统时避免盲目照搬现有模式
核心流程
阶段 1:找出问题的本质
剥离实现细节,找出核心问题:
- 清晰陈述问题——究竟需要解决什么?
- 区分症状与原因——这是真正的问题,还是某种表现?
- 定义成功标准——完美的解决方案应该达成什么?
关键问题:
- 这里需要完成的根本任务是什么?
- 如果这个系统不存在,用户实际需要什么?
- 无论如何实现,什么结果才是重要的?
阶段 2:质疑所有假设
找出并质疑每一个假设:
- 列出显式假设——有哪些事情是我们认为理所当然的?
- 揭示隐式假设——有哪些惯例是我们未经质疑就遵循的?
- 检验每个假设——这确实是约束,还是只是一直以来的做法?
假设类别:
| 类别 | 要问的问题 |
|---|---|
| 技术 | “我们必须使用这种技术/模式吗?” |
| 业务 | “这项需求真的不能变吗?” |
| 资源 | “这些限制是真实存在的,还是只是我们以为存在?” |
| 历史 | “最初为什么会做出这个决定?” |
警示信号(可能是错误的假设):
- “我们一直都是这么做的”
- “行业标准是……”
- “大家都会用 X 来做这件事”
- “这太简单了,不可能行得通”
阶段 3:确定基本事实
找出不可再简化的事实:
- 物理/数学约束——哪些规则不可违背?
- 业务不变量——业务必须保持哪些事实成立?
- 用户需求——用户从根本上需要什么?
基本事实检验:
- 这个事实还能进一步分解吗?
- 这有可证明的依据,还是只是普遍的看法?
- 违背这个事实是否必然导致失败?
阶段 4:逐步向上推理
从基本事实出发构建解决方案:
- 从最小方案开始——满足基本事实的最简单方案是什么?
- 只添加必要内容——每项新增内容都必须证明其必要性
- 质疑每个层次——这一层是否值得它带来的复杂性?
构建模块方法:
Ground Truth → Minimal Solution → Justified Additions → Final Design
↑ ↑ ↑
(proven) (sufficient) (each defended)
阶段 5:验证推理
确保解决方案合理可靠:
- 追溯至基本事实——每项设计决策都能追溯到根本需求吗?
- 找出薄弱环节——推理在哪些地方依赖假设?
- 压力测试——哪些情况会导致这个解决方案失效?
输出格式
应用第一性原理思维时,请按以下结构组织分析:
## First Principles Analysis: [Topic]
### 1. Problem Essence
**Core problem:** [One sentence]
**Success criteria:** [Measurable outcomes]
### 2. Assumptions Challenged
| Assumption | Challenge | Verdict |
|------------|-----------|---------|
| [Assumption] | [Why question it] | [Keep/Discard/Modify] |
### 3. Ground Truths
- [Irreducible fact 1]
- [Irreducible fact 2]
- [Irreducible fact 3]
### 4. Reasoning Chain
Ground Truth → [Step 1] → [Step 2] → Solution
### 5. Conclusion
**Recommended approach:** [Description]
**Key insight:** [What the first principles analysis revealed]
**Trade-offs acknowledged:** [What we're accepting]
常见模式
模式:复杂性陷阱
症状: 解决方案的复杂程度超出了问题本身的需要
第一性原理检查:
- 移除一个组件——系统还能解决核心问题吗?
- 如果可以,该组件就不是必需的
- 重复此过程,直到移除组件会破坏核心功能
模式:类比陷阱
症状: “X 公司是这么做的,所以我们也应该这么做”
第一性原理检查:
- X 公司当时实际要解决什么问题?
- 我们的问题在所有相关方面都与其相同吗?
- 他们有哪些我们没有的约束(反之亦然)?
模式:遗留陷阱
症状: 为了兼容那些已不再有益的决策而持续维护
第一性原理检查:
- 当初做出这一决定的原因是什么?
- 当时的条件现在还存在吗?
- 改变的实际成本与持续维护的成本分别是多少?
与其他思维工具集成
第一性原理思维与以下互补方法配合得很好:
| 工具 | 何时结合使用 | 方法 |
|---|---|---|
| 权衡分析 | 确定基本事实之后 | 根据基本原理评估选项 |
| 5 个为什么 | 出现假设时 | 深入挖掘,寻找根本原因 |
| 事前验尸 | 最终确定解决方案之前 | 对推理链进行压力测试 |
| 假设检验 | 基本事实不确定时 | 通过实证验证假设 |
适用边界
会:
- 系统性地质疑假设
- 从第一性原理中识别基本事实
- 从基本原理出发构建推理链
- 揭示常识何时不适用
不会:
- 将所有现有解决方案都视为错误
- 在每个决策上花费无限时间(留给重要选择)
- 为了理论上的纯粹性而忽视实际限制
- 保证给出“最佳”解决方案(帮助改进推理,而非提供完美答案)
快速参考
第一性原理检查清单:
- 用结果而非解决方案来描述问题
- 明确列出所有假设
- 对每项假设提出质疑并说明其依据
- 识别并验证基本事实
- 仅基于基本事实逐步构建解决方案
- 每项设计决策都能追溯到某项基本事实
- 记录推理链
更多资源
参考文件
references/elon-musk-examples.md- SpaceX 和 Tesla 的真实案例references/software-examples.md- 软件工程应用
示例文件
examples/architecture-review.md- 对微服务决策进行第一性原理分析
评论
支持 Markdown