# Engineering Philosophy

> 「工程哲学」是给没有计算机科班背景、却在用 AI 写东西(Vibe Coding)的人的一套判断框架:帮你看懂自己做出来的"能跑的东西"由哪几层拼成、每一层是真的还是 AI 演的、这次该把哪一层做成真的——让 vibe coding 更全面、更具体(适用于 Demo / POC / MVP)。仅在用户显式点名时调用。 触发条件(严格):只有当用户显式调用 /engineering-philosophy,或明确说出"用工程哲学 skill / 框架""调工程哲学""按工程哲学审 / 拆一下"这类点名时,才使用本 skill。 绝不因为对话里出现 demo / POC / MVP / 前后端 / vibe coding / "该做多真" 等话题就自动触发;用户没有点名,一律走常规回答,不要自作主张套用本 skill。

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

---


# 工程哲学 · Engineering Philosophy

## 这是什么(先读这段)

**一句话:工程哲学 = 让不懂代码的人,也能看懂并判断自己用 AI 做出来的东西。**

- **定义:** 一套给非科班 Vibe Coding 者的判断框架。它不教你写代码,而是给你一副"透视眼镜"——把一个"能跑的东西"拆成几层(界面 / 连接 / 数据 / 权限…,每层具体是什么见 `references/mental-models.md`),让你看清**每一层是真做了、还是 AI 演给你看的、这次该把哪一层做成真的**。
- **目的:** 让你的 vibe coding 更**全面**(不漏掉任何一层)、更**具体**(每层都有判断,而不是"看着能跑就以为成了")。
- **为什么叫"哲学"而不只是"工程":** 「工程」是务实的工具(拆层、作弊阶梯、纵切、标天花板);「哲学」是管总的那几条准绳(见下)。工具人人能从 AI 拿到,**准绳才是非科班的人最缺的**。

> 服务对象:没受过正规工程训练、靠 AI 快速做 Demo / POC / MVP 的人——PM、创业者、独立开发者,任何 vibe coder。
> 怎么用:显式点名 `/engineering-philosophy`,把你正在做的东西丢进来即可。

---

## 核心准绳(哲学在这)

> **你不是在写软件,你是在制造证据。**
> 每个 Demo / POC / MVP 都是为了回答一个问题、杀死一个不确定性。你投入的工程严谨度,要匹配**你这次要回答的那个问题**,而不是产品最终的宏大愿景。

一个能跑的东西,要么是**证据**(证明了某件真事),要么是**幻觉**(看着证明了、其实什么都没证明)。**这个 skill 的全部目的,就是让你永远分得清自己手里是哪一种。**

---

## 第一性原理:三个"做完",是三件不同的事

它们回答**不同的问题**、服务**不同的客户**、有**不同的及格线**。混淆它们,是 vibe coding 翻车的头号根源。

| | **Demo** | **POC**(概念验证) | **MVP**(最小可用产品) |
|---|---|---|---|
| **回答的问题** | 能不能被*演示*出来? | *技术上*到底成不成? | 有没有人*真的会用 / 愿付费*? |
| **真正的客户** | 观众(投资人 / 老板) | 你自己 + 技术判断 | 真实的早期用户 |
| **产出物本质** | 一个**可信的幻觉** | 对**最大技术风险**的证据 | 一条**真实、最小、端到端**的闭环 |
| **"做完" =** | 关键那一下演得像真的 | 最 risky 的那段真跑通了 | 一个窄功能,陌生人能用一周不崩 |
| **能作弊到什么程度** | 几乎全可假:数据写死、没后端、AI 回答提前塞好 | 只把"风险点"做真,**其余全假** | 广度可窄,但这条线上必须真:**能存、能登录、别串数据** |
| **最怕的翻车** | 你自己信了这幻觉 | 绕过了最难的部分,证明了个假命题 | 拿假数据 / 单用户跑通,"有人用"信号本身是假的 |

**严谨度不是线性上升,是阶跃的:** 在对的阶段、对的那一层,从 0 直接跳到 1。Demo 阶段几乎处处是 0;到 MVP,"持久化"和"多用户隔离"这两格必须瞬间跳到 1,而"可扩展性"仍可以是 0。判断力就是:知道**这次,哪一格该跳。**

---

## 阶段滑移预警:你是怎么不知不觉滑过悬崖的

阶段跳变不会举手示意。demo 里攒的作弊,最容易在滑移中被无意识带进产品——不是谁"决定"的,是没人喊停。三个 tripwire(触发线),踩到即生效,不是"回头再说":

- **第一个真实用户**(非你、非同事)碰它 → 立刻补到 **MVP 档**:持久化、多用户隔离必须马上转真,哪怕功能还很窄。
- **第一笔真钱**经手(哪怕一分)→ 立刻补到**生产档**:鉴权、支付链路、异常输入不能再有一处写死或绕过。
- **第一个第二方依赖**(别人开始调你的接口、读你的数据结构)→ 立刻补到**契约档**:接口和数据结构从"可撤回的猜测"变成"承诺",破坏性改动开始有真实代价。

**没有中间地带。** 踩线前可以是 demo,踩线一瞬间就要按新一档红线来,晚一步都算欠债。

---

## 五条核心工程原则

每条都附一个"违反即可观察"的信号——用来自查,不是背诵。

### 原则一:先分清你在哪个阶段
开工第一件事不是打开编辑器,是说清一句话:**"这次我要回答的那一个问题是什么?"** 把 Demo 的严谨用在探索期是浪费,把 Demo 的作弊带进 MVP 是欺诈。
> **违反的信号:** 答不出"这次只回答哪一个问题"(或张口就是"我在做个产品");或已在收真实用户数据,却还用写死的单用户状态。

### 原则二:纵切,不要横铺(Vertical Slice)
打通**一条端到端的细线**(点击 → 发请求 → 存下来 → 返回 → 显示),胜过做完一个漂亮但背后空的前端,也胜过写好一堆后端却没界面能触发。**能真正走通的细线才是证据;华丽的空壳是自欺。**
> **违反的信号:** 把后端关掉 / 断网,页面数据还在——说明没有一条线真穿透到后端。

### 原则三:认清你在"作弊阶梯"的哪一级
一个功能可从「写死 → mock → 内存状态 → 真数据库 → 真库+鉴权+多用户」逐级变真。**每上一级成本陡增——但陡到什么程度取决于选型:** 手写后端大致翻倍、第 4→5 级最陡;2026 用 BaaS / 托管则把第 4、5 级压成一步(代价换成数据建模、隔离配置、供应商锁定)。作弊不可耻,**忘了自己在作弊、还当真本事承诺出去**才可耻。(详见 `references/faking-ladder.md`)
> **违反的信号:** 被问"能扛多少用户 / 数据、再做真要多久",你答不上来。

### 原则四:数据模型是真正的产品,UI 只是它的一件衣服
漂亮 UI 盖在错误数据模型上,像豪华装修压在错误地基上——只能推倒重来。调 UI 之前先想清楚:**"系统里有哪些东西(用户、订单、文档…)、它们什么关系?"**(详见 `references/mental-models.md`)
> **违反的信号:** 已在调 UI 配色 / 间距,却说不清系统有哪些"名词"及关系(或订单表里写死了商品名和价格)。

### 原则五:一切保持双向门(可逆)+ 标注天花板
Demo / POC 阶段别做不可逆承诺:别锁死对外接口、数据结构,别把命绑死在某个云 / 框架。**验证一个可撤回的问题,就别付不可撤回的代价。** 每个捷径都有已知天花板(能扛多少用户 / 数据)——**明确标出来**,别假装它不存在。
> **违反的信号:** 某个捷径旁没有写明天花板的注释;或字段 / 接口没评审就被第二方焊死。

---

## 决策程序:拿到一个新想法,按这个顺序问自己

> **默认动作是替 PM 想清楚,不是审问 PM。** 被调用后,先在心里默默跑完下面 0–6 步,**不逐条念给用户听**——直接给结论:哪个阶段、最大风险在哪、"这层真做、这几层大胆假"怎么切。信息够就别反问。
> 只有两种情况才把 0–6 步摊开逐条明问:① PM 自己纠结、或直接说"帮我判断";② 东西正从"能跑的 demo"滑向"有人依赖的产品"。
> **本 skill 默认加速,不是盘问。**

0. **杀谁?** 这次要回答的**那一个问题**是什么?(逼出"证据"视角,而非"我要做个产品"。)
1. **哪个阶段?** 按三阶段表判定 Demo / POC / MVP。
2. **最大风险在哪?** 最可能死在哪——技术做不出?没人要?→ **这决定哪一层必须动真格。**(险在技术 → POC 把技术做真;险在需求 → 别碰技术,用最假的 Demo 测人。)
3. **纵切线怎么画?** 选一条最能出证据的端到端细路径,只做这条。
4. **作弊边界划在哪?** 这条线上哪层真做、哪几层大胆假?逐层标出阶梯级别。
5. **天花板 + 红线?** 多少用户 / 数据量之前有效?哪条红线赶速度也不能破(见 `references/failure-catalog.md`)?
6. **交付说清三件事:** ① 验证了什么 ② 假了什么 ③ 还剩什么真实风险没解。

---

## 三阶段及格线自检

- **Demo(说服):** 我清楚哪真哪演、不会自己被骗;关键那下的幻觉撑得过追问;没为一个注定被扔的 Demo 建库 / 写测试 / 做鉴权。
- **POC(技术):** 验的正是**最难 / 最不确定**那段、不是旁支;风险点**真跑通**了(真调模型 / 真跑算法);结论一句话说得清。
- **MVP(真实用户):** 关掉重开数据还在;A 看不到也改不了 B 的数据;密钥没写死在前端、异常输入不直接崩;没为"可扩展"提前优化并发 / 缓存。

---

## 深度支撑文档(references/)

- **`mental-models.md`** —— 最小技术心智模型(餐厅隐喻:前端 = 展示层、后端 = 真相层、契约 = 接口),外加一张"你在哪里作弊"对照表。
- **`faking-ladder.md`** —— 作弊阶梯六级、每级成本(含 BaaS 修正)与天花板;纵切正反例。
- **`failure-catalog.md`** —— 十种最危险死法(症状 + 翻车 + 纪律);三阶段各自"赶速度也不能破"的红线。
- **`debate-synthesis.md`** —— 来历摘要:五模型辩论"严谨 vs 速度"后的三条裁决。

---

## 一句诚实的提醒(反身警告)

> **这些词是脚手架,不是你的工程实力。** 说顺了"纵切""作弊阶梯""双向门",容易让你误以为自己懂技术了。这个 skill 给你的是**知道该在哪一层怀疑、该问什么**的判断力,换不来工程能力本身。最危险的用法,是拿这几个词去真工程师面前演——让对方觉得你懂,而不是真去核实、追问、认怂。这正是清单里的**死法 1**,只不过这次被表演的是你自己的工程素养。
> 词是拿来用的,不是拿来穿的。

---

## 压舱底

> **Demo 可以处处是假的,但一旦你开始收集真实用户的真实行为,"持久化"和"数据隔离"一秒都不能假——否则你辛苦拿到的每个信号,本身就是假的。**

**严谨度跟着阶段走,诚实度不跟阶段走。** 作弊是聚焦的艺术,自欺是最贵的错误。

