---
name: ljg-constraint
description: 给一个领域、专业或角色，找出真正框住它的那几条约束。约束不是限制，是把无限可能坍缩成"这一个"的那组方程——找出方程组，再指出哪条其实可以重新定义。每条约束归位到硬/软/自设三层，揪出被当成硬约束的假墙（创新入口），找出拿掉就不成其为自己的身份约束。Use when user says '约束', '找约束', '这个领域的约束是什么', '本质约束', '什么框住了它', '硬约束还是自设约束', '边界在哪', '哪条约束是假的', 'constraint', '/ljg-constraint', or gives any domain/profession/role and wants its defining boundaries mapped. NOT FOR 往下挖生成器（用 ljg-rank，找的是生成力不是边界）、纵向深钻一个观点到底（用 ljg-think）、拆一本书（用 ljg-book）、一个概念解剖（用 ljg-learn）。
user_invocable: true
---

# 约束引擎

输入一个领域、一门专业、一个角色，输出框住它的那几条约束。

## 约束是什么

日常语感里，约束是负面的——束缚、不自由、不能做什么。这个引擎不这么看。

没有约束的东西没有形状。水没有约束时无形，给它一个杯子才有了形状；一道题没有约束条件时无解，给它约束，解才从无穷里浮出来。约束不是在减少可能性，是从无穷里生出特定性。没有约束等于什么都可以，等于什么都不是；有了约束，等于只有这些可以，等于这个东西是它自己。

所以一个事物的约束条件，就是它的身份。**约束是把无限可能坍缩成"这一个"的那组方程。**

**和降秩分清一句话**：降秩往下挖，找的是把现象生出来的那几根生成力（"什么在撑着它"）；约束往边上摸，找的是框住它的那几条边界（"什么把它框成这个形状，哪条框能被推倒"）。一个找底，一个找边。同一个领域，两套问法，答的是两件事。

## 三层硬度：这条约束是哪一层的

这是整个引擎最要命的一步。约束不是一种东西，它们有硬度之分，权重不一样。

**硬约束（物理层）**——不可违背，试图违背则系统崩溃。人会死（时间），光速不可超越，公司现金流断了就没了。这层没有商量。

**软约束（规则层）**——可以违背，但有代价。法律、牌照、合同、行规。违背了系统不会物理崩溃，但会有人罚你、市场会惩罚你。这层是价码问题，不是可能性问题。

**自设约束（认知层）**——你以为存在，其实可以重新定义的。"我不擅长这个"，"这行就得这么干"，"别人会怎么看"。这层住在脑子里，不住在世界上。

**大部分困境不是被硬约束卡住的，是被自设约束困住的——把认知层的东西当成了物理层的。** 一个领域里最贵的错误，永远是有人把一道粉笔线当成了石墙，绕着走了几十年。

分析任何约束的第一动作，就是给它定位：这是哪一层的？它真的是它看起来那一层吗？

## 怎么找：工序

判据是事后才能验的，找约束的力气全在过程里。六步，心里走完，不写进文章。

**1. 铺约束候选。** 对着这个领域/角色问三句：这里什么是"不能做"的？什么是"必须做"的"？什么是"逃不掉"的？把答出来的十几条全贴出来，光铺，不急着评判。这一步必然杂，真墙假墙混在一起。

**2. 分层归位。** 每条候选定位到硬/软/自设。判别问句：违背它，是系统物理崩溃（硬），还是有人罚你、要付代价（软），还是其实什么也不会发生、只是没人试过（自设）？归位时故意多疑一点——凡是被顺手归进"硬约束"的，都先打个问号，因为这一层最容易混进冒充的。

**3. 真伪检验（创新入口）。** 对每一条被当成硬约束的，追一句：**谁规定的？违背它，真的物理上崩溃吗，还是只是没人试过、被罚过、或者习惯了？** 再加一道历史闸：这条约束，别的地方、别的时代，有没有人已经跨过去了？跨过去了还活着，它就不是硬约束，是被错当成硬约束的软约束或自设约束。

   每一次重大创新，本质都是这一步的产物——一条所有人都以为是硬约束的东西，被证明其实是假的。"人不可能飞"重定义成"人不能靠自身飞"，飞机就出来了；"购物必须去实体店"被证明根本不存在，电商就出来了。创新者做的不是在现有约束下更努力求解，是质疑约束本身的合法性。**这一步至少要揪出一条假墙**——一条大家当石墙、其实是粉笔线的约束。揪不出，说明还没摸到边。

**4. 找矛盾对。** 真正难的问题不是有约束，是几条约束互相打架。要赚钱 + 要陪家人 + 不做不喜欢的事，三条同时满足的解空间可能为空。把互斥的约束对挑出来，看解空间被挤到哪里、是不是被挤成了空集。两个人争一件事分歧最大的时候，往往不是方法之争，是各自默认的约束条件不同——一个人的约束里有"不能让家人担心"，另一个没有，解空间从起点就不重合。

**5. 找身份约束。** 在所有约束里，问一句：哪一条拿掉，这个东西就不再是它自己了？这是身份约束——领域的定义性边界。餐馆拿掉"当面把食物交到人手里"就成了别的东西，医生拿掉"不伤害"就不是医生了。身份约束往往在硬约束层，但不总是；有时候一条软约束才是那个领域真正的身份。找到它，就找到了这个东西为什么是它。

**6. 两把透镜收口。**
   - **f 论**：约束就是 f 的定义域。这个领域的 f 能处理哪些 x、不能处理哪些 x，就是它的约束。扩展约束等于扩展定义域（学一门新技能，让 f 能接受过去处理不了的 x）；主动收窄约束等于以更小的定义域换更强的输出（什么都想做的人对每个 x 输出 0.3 分，只做一件事的人对那类 x 输出 9 分）。看这个领域是被定义域困住了，还是本该主动收窄却铺得太宽。
   - **进化论**：约束就是选择压。一个物种面对的环境约束决定它长成什么形态——没有沙漠的干旱，骆驼不会有驼峰。约束不是阻碍进化，是驱动进化；没有选择压就没有选择，就没有进化。看这个领域被哪几股选择压塑造成今天这个样子，最强的形态往往是在最极端的约束下被逼出来的。

六步走透，几条约束才立得住。工序心里走完，别写进文章——读者看不到你怎么摸的边，但感觉得到底下是摸到实处的。

## 心内判据

工序走完，这四条事后再过一遍闸，同样不写给人看。

1. **完备性**——这几条约束合起来，能不能框出这个领域的解空间形状？把一个典型的具体情境往框里一摆，落点对不对？
2. **分层准**——每条约束真的归对了硬/软/自设？重点复查"硬约束"那一格，那里最容易混进冒充的。
3. **真伪敢判**——至少揪出了一条"大家以为硬、其实是自设"的假墙？没有，多半是没敢往深里质疑。
4. **身份唯一**——那条身份约束，拿掉之后领域是不是真的散架、变成别的东西？拿掉了还是它自己，说明找的不是身份约束。

过不了一条，回工序接着走。

## 两个动作：找出方程组，再松动哪条

整个引擎最后落到两个动作上，对应继刚那句话的两半——分析任何事物，先找它的约束；改变任何事物，先审视哪条约束可以被重新定义。

**找出方程组**（是什么）——把这几条约束、每条的硬度、它们怎么互相咬、哪条是身份约束，讲清楚。读者读完拿到的是这个领域的形状：原来它被这几条边框成了这个样子。

**松动哪条**（怎么改）——指出这组方程里哪条其实可以动。约束互斥、解空间为空的时候，只有三条路：**放松一条**（承认不能全要，砍掉一条，这是成熟）、**重定义一条**（把"赚钱"从"年薪百万"重定义为"够用"，解空间瞬间变大，这是智慧）、**升维**（在更高维度找一个同时满足所有约束的解，它在当前视角看不见，这是创造力）。读者读完拿到的是一把撬棍：这个领域看着铁板一块，其实有一条边是能推的。

两个动作不打架——一个描述形状，一个指出松动点，一起给。多数分析停在第一个动作，把约束一条条列清就完事；这个引擎的价值在第二个动作，敢指出哪条边是假的、能怎么撬。

## 中文母语化 · 反坍缩闸

下笔前，默念三遍：**「一个没读过英文的中国人，会这么说话吗？」** 每写完一段再念一遍。答"不会"——别改词，整段推倒重想。

最容易踩的英语化毛病（踩到就重写整段，不是抠字眼）：

| 英语化 | 中文母语 |
|---|---|
| 它建立在一个假设上 | 它底下垫着一个假设 |
| 这一约束定义了 X | 这条约束把 X 框成了现在的样子 |
| 这意味着... | 也就是说... / 这就是为什么... |
| 在...的过程中 | ...的时候 |
| 对...而言 | 对...来说 |
| 进行 + 名词 | 换成动词 |
| 名词化抽象（"约束性"、"边界化"） | 换成具体的动词或物件 |

要改的不是词，是想事情的取景框——从英语句式切到中文白话作者的笔调（汪曾祺、王小波、阿城、李娟那一路）。写完默念出声，听耳朵卡不卡。卡的地方整段重写，不是修补。

另有一条：这是分析文，不是刀光文。别用"这一刀""再狠一层""锋利""钉死"这类元修辞去装力度。约束的力度靠把边界摸准，不靠形容自己下手多重。

## 怎么写

一气呵成的散文，带读者走一段路——从"这个领域看着到处是规矩、动弹不得"走到"原来就这几条边框着它，其中一条还是假的"。不分章节，不加小标题，让推理自己往前推。

三条要求：

- **一口气读完**——不熟这个领域的人也停不下来
- **记得住**——读完能转身用一句话跟朋友说清楚：这东西被什么框着，哪条框能推
- **有落差**——从"处处是墙"到"墙就这几面、还有一面是画出来的"，这个反差就是约束分析的美感

结构顺着两个动作走：先把方程组讲透（几条约束、三层硬度、矛盾在哪、身份约束是哪条），读者拿到形状；再松动（哪条可以重定义、怎么撬），读者拿到撬棍。两段中间不硬切，让上半最后一句留个引子，把读者顺到"那这几条里，哪条其实是能动的？"

## 文末配一张 ASCII 结构图——形式跟着骨架走

光说"这几条约束"不够，要把它们之间的关系画出来。约束长成什么样，图就该长成什么样。下笔前先问：这组约束的关系，本身是什么形状？答完再选画法。

**硬约束：只用纯 ASCII 字符。** 禁用任何 Unicode 符号（箭头 → ← ↑ ↓、方框 ┌─┐└┘│、圆点 • ● 等）。允许：字母、数字、汉字、空格，以及 `- = | + * / \ < > ^ v [ ] ( ) { } . , : ; _ #`。箭头用 `->` `<-` `^` `v`，边框用 `+ - |`。

三种常用形态，挑跟工序摸出来的约束关系最贴的一种。

### 1. 硬度嵌套图（默认）

适合：约束按硬度分三层，从不可动的核到可推倒的外壳。领域坐在层层框里，最外一面墙上开个缺口，标出那条被证明是假的约束——创新的出口。

```
+=============================================+
|  自设约束 (认知层，其实可以重定义)             |
|   - "这行历来就这么做"                        |
|   +-------------------------------------+   |
|   |  软约束 (规则层，违背有代价)           |   |
|   |   - 牌照 / 合同 / 行规               |   |
|   |   +-----------------------------+   |   |
|   |   |  硬约束 (物理层，违则崩)      |   |   |
|   |   |   * 身份约束: 逃不掉的那条    |   |   |
|   |   |   - 时间 / 现金流 / 物理律    |   |   |
|   |   +-----------------------------+   |   |
|   +-------------------------------------+   |
|                                             |
|   [假墙缺口] --> 创新出口:                    |
|   某条一直被当成硬约束的，其实是自设            |
+=============================================+
```

**演示要求**：每层至少填一条具体约束；硬约束层里用 `*` 标出身份约束（拿掉就散架的那条）；外壳上必须标出至少一处"假墙缺口"——哪条约束一直被当成硬的、其实能推，创新就从这个缺口出去。没有缺口的图，等于说这个领域铁板一块、无路可走，那多半是没摸到边。

### 2. 约束矛盾图

适合：几条约束互相打架，解空间是它们的交集，可能为空。

```
   约束A: 要赚钱        ----+
                            \
   约束B: 要陪家人      ----+---- 解空间 = 三条的交集
                            /        (此处为空 -> 必须松动一条)
   约束C: 不做不喜欢的  ----+
```

**演示要求**：把互斥的约束一条条列出，指明交集落在哪里、是不是空集；若为空，图旁注一句走哪条路——放松哪条 / 重定义哪条 / 从哪个维度升维。只画矛盾不给出路，等于把读者留在死胡同里。

### 3. 解空间变形图

适合：想让读者看见"换一条约束，解空间就换一个样子"。

```
换约束           解空间
------           ------
必须合法 + 必须稳定   -> [工资]
必须合法 + 可以不稳定 -> [创业 / 投资]
把"稳定"这条松掉      -> 解空间瞬间变大
```

**演示要求**：每行左边是一组约束，右边是它框出的解空间；至少有一行演示"松动某条约束后解空间怎么变形"。让读者亲眼看见约束和解是同一件事的两面——换约束就是换问题。

不设死板模板。要见骨——标出约束的名字、它的硬度、身份约束在哪、假墙缺口在哪。读者看图一眼，这个领域的边界结构就入脑。

## 输出

1. 获取时间戳：`date +%Y%m%dT%H%M%S` 和 `date "+%Y-%m-%d %a %H:%M"`
2. 写入 `~/Documents/notes/{时间戳}--{领域}的约束__constraint.org`，org frontmatter 见 `references/template.org`
3. 报告文件路径给用户
