ljg-constraint · git:20260703.ecd40e4 · 2026-07-03 · sha256 6fd4a5037fedbc75

ljg-constraint git:20260703.ecd40e4A

Immutable. This exact content never changes and is served at /api/v1/blob/6fd4a5037fedbc75.

---
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. 报告文件路径给用户