--- name: think-closed-loop description: 思维模型:闭环。一件事要从一方转到另一方之前,先过三句:转手会丢信息,做对它要用到的写不下来的上下文多就不转;回路越紧越稳,决定后面很多步的事放在每一步都看得见的回路里;一块多大由接的一方验得完多少定。准备派子代理、把一件事交给人或另一个会话、定一程或一片多大、上下文快被压缩时加载;人说「这件事你自己做」「一块别太大」「多久看一次」,或点名 /think-closed-loop 时也加载。自己一口气做完、不转手的小活不加载。派发简报的写法与花费归 delegate-brief。 --- # 闭环 回答的问题:这件事该由谁做,一次做多大,多久看一次。闭环是「做一步,看结果,对照该有的样子,再做下一步」的回路。例:主代理自己改一个状态机,每改一处跑一次测试,偏了马上拉回;派给子代理改,半小时后才看到结果,偏了也要半小时后才知道。 另外五个模型讲一件事本身怎么想。这个模型讲事情在人和代理之间怎么转手:人转给主代理,主代理转给子代理,压缩前的自己转给压缩后的自己。 ## 三句动作 1. **转手会丢信息。** 要转出去的事,先问做对它要用到多少写不下来的上下文:人纠正过什么,哪些路试过不通,每个决定为什么这么定。用得多就不转。说清它比做它短得多、检查它比做它便宜的,才转。 2. **回路越紧越稳。** 决定后面很多步的事,放在每一步都看得见的回路里:设计与建模、判断验收过没过、定位根因、要不要问人。能放手跑一段的,只是错了影响有限、末端能用确定办法验的事。放手时写停止条件:碰到规格没覆盖的情况就停下交回,不猜。 3. **一块多大,由接的一方验得完多少定。** 接的一方是收下结果、要验它的那一方。人对主代理、主代理对子代理、今天的自己对压缩后的自己,都是这一条。做出来、接的一方还没验过的,是没验收的库存。 三句答不出,先别转手,自己做。 ## 各类工作里怎么用 | 谁转给谁 | 会丢什么 | 回路怎么收紧 | 一块多大 | 展开 | | --- | --- | --- | --- | --- | | 人转给主代理 | 人没说出口的偏好与分寸 | 定义期人逐步拍板;交出之后按时间盒回看、向人汇报 | 一程:人在一个验收窗口里验得完的量 | [一块多大](batch-size.md) | | 设计会话转给交付会话 | 对话里的取舍与理由 | 交出是物理条件;包里只有这一程,四问答不出就退包;交回之后设计会话收回 | 一份包:只装一程,没有本次上下文的会话答得出四问 | `pass-the-baton`;[七处转手](handoffs.md) | | 压缩前的自己转给压缩后的自己 | 早先读过的技能与决定 | plan 进度总览与思维模型一行;每片的开工包 | 一片:一个新上下文里做得完、验得完 | [七处转手](handoffs.md) | | 主代理转给子代理 | 品味、试过的路、没明说的约束 | 规格写进文件;写停止条件;末端用确定办法验 | 一块:主代理验得完的量 | [转手会丢信息](information.md) | | 主代理回头看自己 | 腐化的上下文觉得自己没问题 | 独立的哨兵定时回看 | 一个间隔:按一程预算定 | [回路越紧越稳](feedback-loop.md) | | 模型转给代码 | 模型排除了的状态 | 每个类型指回模型,逐格对照 | 一个类型对一格 | [七处转手](handoffs.md) | | 写的人转给读的人 | 写的人脑子里的上下文 | 正式文档过评审;汇报件只讲架构与前后差别 | 读者一次读得完的量 | [七处转手](handoffs.md) | ## 写在哪 不新开文档。判断写在本来就要写的产出里:派发简报的「派发理由」一行与停止条件,plan 的子代理表与「预算与回看」,交接信息包的四问。没有产出的小活,回复里写一句:这件事自己做还是转出去,为什么。 ## 什么时候必须重做 - 准备派一个子代理,或准备分叉当前会话。 - 准备把一件事交给人定,或人要离开。 - 一程或一片的量超过了接的一方验得完的量。 - 子代理交回的结果偏得远,或同一类偏差第二次出现。 - 上下文快被压缩,或换一个会话接着做。 ## 相邻的模型 `think-orthogonal`:这个问题的空间怎么拆。`think-ought-vs-is`:这件事的工作到底是什么。`think-model-first`:代码该长成什么形状。`think-right-then-well`:按什么顺序建,怎样算好。`think-evidence`:怎么知道它是真的;转出去的结果怎么验,归它。