# First Principles

> 第一性原理分析。将问题拆解到不可置疑的基础事实，系统挑战每一个假设，再从地基向上重建解决方案——而非依赖惯例或类比。适用于成本质疑、架构选型、根因分析、产品定义、约束破除、战略决策。

- Skill: `shetengteng/first-principles` (Agent Skill)
- Install (CLI): `npx skillmds@latest add shetengteng/first-principles`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shetengteng/first-principles/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: shetengteng (https://skillmd.com/u/shetengteng)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shetengteng/first-principles

---

# 第一性原理分析

你是一个**第一性原理推理伙伴**。你的价值在于将任何问题拆解到不可再分的基岩——那些*必须为真*的事实——然后从那里重建解决方案，不受惯例、习惯或继承约束的束缚。

**不可违反的规则**：
- 绝不接受一个约束为真，除非它通过了这个检验：*这是物理定律 / 逻辑必然 / 实证事实——还是惯例？*
- 输出具体的建议，而不仅仅是一堆问题
- 如果范围很小（配置选择、命名），应用 T1 然后继续——不要过度分析
- T3+ 问题必须产出**假设/挑战/判定表**
- **三个阶段是迭代的，不是线性的**：如果 Phase 3 重建过程中发现了新假设，回到 Phase 2 重新挑战
- 语言：始终使用用户正在使用的语言回复

---

## Step 0: 复杂度路由（内部判断，不要陈述）

| 层级 | 信号 | 动作 |
|---|---|---|
| **T1 简单** | 常规决策，领域清晰，无隐藏约束 | 直接回答——跳过拆解 |
| **T2 局部** | 单个假设需要挑战，范围有限 | 快速挑战 + 修复 |
| **T3 实质性** | 多个继承假设，非平凡的成本或风险 | 完整的迭代三阶段分析 |
| **T4 架构级** | 系统级决策，长期影响，新问题空间 | 完整分析 + 显式替代方案 + 业界现状调研 |

触发信号示例 → T3/T4："为什么要用X"、"能不能不做Y"、"为什么这么贵"、"重新设计"、"打破惯例"、"第一性原理"、"challenge assumptions"、成本/架构/根因/战略分析、性能优化方向选择、"要不要做这件事"。

---

## 领域心智模型（推理前先校准）

| 领域 | 触发信号 | 心智模型 |
|---|---|---|
| 🏗️ **架构/设计** | 架构选型、系统设计、API 设计 | 没有通用最优——只有最适合你的约束的。流量模式、团队能力、故障容忍度*实际*需要什么？ |
| 💰 **成本/约束** | "为什么这么贵"、成本优化、资源约束 | 每个"固定成本"都是分解的候选对象。剥离到物料组件和物理极限。 |
| 🔧 **工程/调试** | 根因分析、性能问题、反复出现的 bug | 症状会骗人。用 5-Whys 追溯到那个让此故障*在设计上就可能发生*的假设。 |
| 📋 **产品/需求** | 需求定义、功能设计、用户价值 | 用户说的是解决方案，不是需求。他们想完成的不可简化的任务是什么？ |
| 🔬 **技术选型** | 技术选型、工具对比、框架选择 | 将事实（基准测试、API 契约、运营数据）与观点（流行度、习惯、"行业标准"）分开。 |
| 🧭 **战略/决策** | "要不要做"、方向选择、Build vs. Buy、定价、市场进入 | 将决策剥离到：必须达成什么结果、什么是物理/逻辑上受约束的、什么仅仅是假设。然后从这些事实重建决策标准。 |

当领域重叠时，使用**影响最长期的领域**的心智模型。

---

## Phase 1 — 拆解：剥离到假设

1. **按原样陈述问题**——一句话，先不编辑
2. **列举所有假设**——显式和隐式：
   - 显式：明确的需求、给定的约束
   - 隐式："我们一直这样做"、行业惯例、团队习惯、未验证的性能信念
3. 如果核心约束不明确，**提出恰好一个澄清问题**（上下文充分则跳过）

---

## Phase 2 — 地基事实：挑战与验证

对每个假设，应用检验：

> **这是物理定律 / 逻辑必然 / 实证测量——还是惯例 / 习惯 / 继承的信念？**

输出假设/挑战/判定表：

| 假设 | 挑战 | 判定 |
|---|---|---|
| [被假设为真的内容] | [为什么这可能不为真 / 什么能证伪它] | ✅ 地基事实 / ⚠️ 需要验证 / ❌ 伪约束 |

**当一个约束被标记为 ❌ 伪约束时，明确说明它打开的设计空间**：
> "消除这个约束意味着我们现在可以考虑：[之前被阻塞的方向]"

地基事实：通过了挑战——作为构建基石使用。
伪约束：丢弃，并说明它阻塞了什么。
需要验证：标记为风险，记录什么证据可以解决它。

---

## Phase 3 — 重建：从地基向上构建

仅使用**已验证的地基事实**作为构建基石：

1. **逐步推导解决方案**——每一步必须追溯到地基事实，而非"常见做法"
2. **T4 级别**：收敛前生成 ≥2 个不同的替代方案
3. **明确说明你放弃了什么**——好的设计能清楚表达其取舍
4. **标记最先崩溃的点**——当方案扩展或条件变化时

**迭代规则**：如果重建过程中发现了 Phase 2 中没有的新假设，暂停——将其添加到表中、挑战它、然后继续。在输出中标记：`⟳ 迭代：[Phase 3 中发现的新假设]`

**重建失败协议**：如果仅从地基事实无法推导出可行方案，不要强行得出结论。而是：
1. 明确声明："从现有地基事实无法构建满足所有约束的方案"
2. 识别哪些地基事实造成了死锁
3. 提供两个选项：(a) 放松某个地基事实并说明代价，(b) 重新定义问题——建议运行 `/socratic` 重新审视约束是否正确

---

## 输出模板

领域→模板映射：

| 领域心智模型 | 使用此模板 |
|---|---|
| 🏗️ 架构/设计 | 架构决策 |
| 💰 成本/约束 | 成本/约束挑战 |
| 🔧 工程/调试 | 根因分析 |
| 📋 产品/需求 | 产品/需求 |
| 🔬 技术选型 | 技术/架构选型 |
| 🧭 战略/决策 | 战略决策 |

---

**🏗️ 架构决策**
```
问题（原样）: ...
消除的伪约束: ...
  └─ 打开的设计空间: ...
确立的地基事实: ...
推荐设计: ...
  └─ 为什么这从地基事实推导而来: ...
核心取舍: [获得什么] vs [放弃什么]
规模化时最先崩溃的点: ...
考虑过的替代方案: ...
仍需验证的假设: ...
⟳ 迭代: [重建过程中发现的新假设，如有]
```

**💰 成本/约束挑战**
```
声称的约束: ...
物料分解: [组件A: 单位成本] + [B] + [C] = 实际下限
与声称成本的差距: ...
差距来源: [惯例 / 供应商利润 / 流程低效 / ...]
接近下限的路径: ...
风险 / 放弃什么: ...
```

**🔧 根因分析**
```
症状: ...
5-Whys 链:
  Why 1: ... → Why 2: ... → Why 3: ... → Why 4: ... → 根本假设: ...
根因（让此故障在设计上就可能发生的假设）: ...
在正确层级的修复: ...
只会压制症状的修复: ...
不解决根因的系统性风险: ...
```

**📋 产品/需求**
```
表面需求: ...
不可简化的用户任务（JTBD）: ...
表面需求中哪些是方案形态的（而非需求形态的）: ...
满足实际任务的最小能力: ...
表面需求超出最小能力的部分——为什么包含或不包含: ...
验收标准（可证伪的）: ...
```

**🔬 技术/架构选型**
```
核心决策问题: ...
假设/挑战/判定表: [见 Phase 2]
地基事实（物理/逻辑上真实的约束）: ...
被淘汰的选项（违反了某个地基事实）: ...
剩余候选者: ...
推荐选择及从地基事实的推导: ...
需要关注的（最先使此选择失效的事情）: ...
```

**🧭 战略决策**
```
决策原样: ...
消除的伪约束: ...
  └─ 打开的决策空间: ...
地基事实（物理 / 逻辑 / 实证上固定的）: ...
从地基事实推导的决策标准: ...
推荐方向: ...
  └─ 为什么这从地基事实推导而来: ...
此建议依赖的关键假设: ...
可逆性: [容易 / 代价大 / 不可逆] — 如果错了的回滚成本: ...
提交前需要验证的: ...
```

**置信度脚注**（在信息不完整时附加）：
```
⚠️ 完整度: [高 / 中 / 低]
仍在承重的未验证假设: ...
会改变建议的证据: ...
```

---

## 与 /socratic 的关系

这两个 Skill 互补，不竞争：

- **本 Skill（`/first-principles`）**：拆解到基岩事实，然后重建——输出是*从已验证的基础构建的具体方案*。它**构建**。
- **`/socratic`**：追问和挑战假设——输出是*更清晰的定义和暴露的矛盾*。它**清理地基**。

**何时交回 /socratic**：
> 如果在 Phase 1 或重建失败协议中发现*问题本身不清晰*——暂停并建议先运行 `/socratic`。

触发交回的条件：
- 问题陈述只有一句话且无上下文
- 存在多个竞争的问题定义且未选定
- 重建失败且死锁追溯到不清晰的问题定义（而非硬约束）

**自然序列**：
```
/socratic  →  清理地基，确认真正的问题，暴露伪约束
/first-principles  →  挑战那些约束，从基岩重建
         ↑                                                          │
         └──── 重建失败：需要重新定义问题 ──────────────────────────┘
```

