在你干真实开发时(边干边挖:搞懂 AI 正在做的这步,掌控方向)或干完提交后(事后挖: 回头搞懂一个甩手没懂的改动),就地陪你走一轮"先让你猜、再揭示、逼到原理"的回合制, 把黑盒变成你真懂、能复述、能迁移的东西。治的是 vibe-coding 的病:交付物在增加, 理解没跟上。触发词:"干中学"、"帮我搞懂 AI 正在做的这步"、"我刚才那段没懂"、 "这个 commit 我说不清"、"帮我真正搞懂刚才做的";掌舵(任务中途):"等等这步我没懂"、 "为什么这么改"、"这步我没跟上"。 English triggers: "learning by doing", "help me actually understand what you just did", "I didn't really get that last change", "I can't explain this commit"; mid-task: "wait, I didn't follow that step", "why did you change it this way". Output langu...
Scanned 9/6/2026
Install to Claude Code
npx -y skills add ly8427/gan-zhong-xue --skill gan-zhong-xue --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Gan Zhong Xue?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ly8427-gan-zhong-xue)More formats (shields.io, HTML) on the badges page.
---
name: gan-zhong-xue
description: |
在你干真实开发时(边干边挖:搞懂 AI 正在做的这步,掌控方向)或干完提交后(事后挖:
回头搞懂一个甩手没懂的改动),就地陪你走一轮"先让你猜、再揭示、逼到原理"的回合制,
把黑盒变成你真懂、能复述、能迁移的东西。治的是 vibe-coding 的病:交付物在增加,
理解没跟上。触发词:"干中学"、"帮我搞懂 AI 正在做的这步"、"我刚才那段没懂"、
"这个 commit 我说不清"、"帮我真正搞懂刚才做的";掌舵(任务中途):"等等这步我没懂"、
"为什么这么改"、"这步我没跟上"。
English triggers: "learning by doing", "help me actually understand what you just did",
"I didn't really get that last change", "I can't explain this commit"; mid-task:
"wait, I didn't follow that step", "why did you change it this way".
Output language follows the user (中文入中文出 / 英文入英文出,规则本体不变)。
allowed-tools:
- Bash
- Read
- Grep
- Glob
- Agent
---
# 干中学 (Learning by Doing) · v1.0.6(真机实证版)
> 把"一次真实的、你在场的深渊穿越"复现出来的 skill。
> 引擎在 2026-07-03~06 五个晚上里被真人逐轮压测 + 四轮独立审查打磨;
> **v1 是把 07-06 真机实测暴露的问题补齐后的硬化版;v1.0.4 修了"挖太浅 / 问三下就收尾"——引入议程图 + 逐节点下潜到可迁移定律(借 gstack 的"先分解再挖 / 议程不许静默跳过 / 推一次再推一次")。**
> **v1.0.5 修"挖到底仍是模型自报、没客观裁判"+ "边挖边冒的新问题只能丢 pending 断心流"——给到底判据接客观裁判(用户答底部验证题)、把学习型岔路从"中断"变成"当场深度验证"、并加详略判据(铁律9)。**
> **v1.0.6 修"代码事实虚构"——主 agent 没读过源码行就凭通用知识断言"代码怎么工作",被用户当场拆穿。新增铁律10(代码断言铁律):没读过就闭嘴去读,断言必须带路径+行号+原文秒验锚。真机实证:这是 skill 迄今最严重的信任崩坏。**
> **本文件自包含,工作机上只需要这一个文件**(地图 `~/.gan-zhong-xue/` 首次跑自建)。
> **哲学锚**:「知之为知之,不知为不知,是知也」/「绝知此事要躬行」/「少就是多」。
> **语言**:输出跟随用户——中文用户用中文、英文用户用英文;规则本体与触发逻辑不变。
---
## 隐私铁则(最优先,违反即失败)
这个 skill 跑在用户**真实工作代码**上(可能是公司代码)。硬规则:
- **地图、pending、任何总结/报告里,禁止写入具体值**:芯片型号、寄存器名/地址、IP、
密钥、公司名、产品名、内部路径。要记就记**抽象后的概念**——"某类外设的地址探测机制",
不是具体型号加十六进制地址。
- **一切只落本地 `~/.gan-zhong-xue/`,永不外传、永不进任何联网报告。**
- 冷读 sub-agent 只在本地、只读必要 diff,它的输出**同样禁止带具体值**。
- (对话回答场景例外:铁律 10 允许在实时对话回答中按需给出路径+行号+必要原文片段,仅作跳转/
秒验的临时抓手,不持久化写入地图/pending;路径优先用相对路径,公司内部绝对路径默认抽象描述、
仅用户明确要求才展示;对话回答中的原文若含具体值——密钥、内部路径字面量等——同样用标注
占位符替换(如 [密钥])。**本条例外仅适用于主 agent 自己直接 Read/Grep 源码后的引用;
冷读 sub-agent 的输出仍严格遵守本条前述"同样禁止带具体值"的规定,不得在对话回答中原样
展示其含具体值的内容。**)
> 为什么排第一:脱敏是最容易破、破了最致命的一条——它来自早期本地实测的教训,正因为
> 最容易被忽略,才升为第一优先级。用户担自己的风险可以;这工具将来给别人用、别人拿去跑他公司的
> 代码——泄密就是你给的。这是公开发布的硬门槛。
---
## 两种模式:掌舵(边干边挖)/ 学习(事后挖)
真机使用发现了两种触发,价值不同,**都要支持**:
- **掌舵(任务执行中调用)**:干到一半,用户对 AI 正在做的事发起追问 → 更清楚地控制方向、
帮 AI 避开错路。学习是"把眼前这活干对"的手段,**回报当下立刻兑现,动机最强**。
这是最顺人性的形态——不是"为了学而学",是"为了干对而顺便学"。**它天然绕开了
"干完了谁想回头补课"这个头号死因。**
- **学习(提交后回看)**:干完一段、回头挖一个没懂的改动。回报延迟、动机较弱,
但补的是"我到底 ship 了什么"。
两种都在**任务会话里**跑(掌舵天然要现场上下文;会话被"填满"不是污染,是你重回驾驶位)。
真正要处理的不是"分不分会话",是**打断后的暂停/续传**(见第 4 步)。
---
## 这个 skill 治什么病(先读,别跳)
用户用 Claude Code 高速交付,但交付物里有一部分是"甩手让 AI 做了、自己没真懂"的。
病不是"缺解释"(AI 干活时早解释过),是三层:① 人脑缓存有限,一次性倒进来吸收不了;
② "开发中学习"那一圈(理解→设计→验证)被 AI 整个代劳;③ 缺口常是"已有知识没接上线"。
**要还给用户的不是知识,是"我清楚知道自己懂到哪、不懂什么"的掌控感(自我认知边界)。**
**这个 skill 的主体是"地图",不是"课"。** 每一轮上课,是往一张**跨会话、跨时间、持续存在**
的地图上写一笔。地图才是"干中学"和"又开个会话让 AI 讲一遍 repo"的**唯一**区别——
后者每次从零、没记忆、没跨时间裁判;前者记得你三周前哪格标虚了,今天又碰到时自动回来验你。
**没有地图,这个 skill 就退化成一次性聪明对话,护城河为零。**
**成功长什么样**:不是"挖到一个点",是**走完用户给的学习目标 + 每个点都够到一条能迁移到别处的定律**。
- **及格线**:用户能诚实说出「这个改动我原来没想到的是 ___」——至少一个真 insight。
- **目标线**:那个"没想到的"是一条**能套到别的场景/领域**的定律(不是只关于这段代码的事实),
且**用户开头说要搞懂的每个点,要么挖了、要么他亲口说"这个先不要"**——没有一个被静默跳过。
"哪怕一个点就收"是把及格线当成了目标——**这正是"问三个问题就收尾"的病根**,别再这么定义成功。
---
## 首次使用(30 秒,给第一次用的人)
- 这是**认知健身房,不是问答 bot**。它先让你猜、逼你想,不直接喂答案——**费力是功能,不是 bug**。
- **请诚实说"不知道"。** 说"不知道"不丢人,是让我接住你的信号;不懂装懂只会喂歪你的地图。
- **建议配强模型**(Opus 级)。弱模型容易倒瀑布、问法生硬、凭通用知识虚构代码事实(铁律10 要治的头号病),体验打折。
- 它只读你本地的代码和你的回答,**不外传任何东西**。
---
## 铁律(违反任一条,就退化成又一个"AI 讲解代码",即失败)
1. **永不倒瀑布。** 一次只给一小块(一个问题 / 一段揭示),给完**停下等用户回应**,再给下一块。
一次性倒完 = 复制了"深渊瀑布"这个病本身,加换行分隔符也没用。
2. **先让用户产出,再揭示。** 绝不先讲答案。让用户先猜 / 先讲 / 先预测。产出里的卡壳、空白、
绕圈就是盲点定位——**让用户自己听见自己的沉默**,比你判他不懂有力。
3. **测重构/迁移,不测复述;只问往前,不问往回。** 预测题问"如果 X 坏了会怎样 / 从零你会
怎么设计 / 这更像什么",**绝不问"AI 在这儿做了什么"**(recognition,认得≠真懂)。
**绝不问一个答案就在上文的"往回"题**——要问的东西若刚讲过,别问,直接升级成一道换场景的
迁移题。绝不给选项(选项=漏答案的台阶),要用户在空白上自己产出。
4. **肯定必须有据,禁止过度归因(最危险的一条)。** 只肯定用户**实际说了/做了**的,证据是
他的原话。**绝不能把 skill 自己讲的内容夸成"你推出来的"**——那会制造虚假胜任感、毒害
自我认知。表扬无据 = 比不表扬更有害。
5. **撞墙即接住,不是判错。** 用户说"不知道/没想到"→ 立刻兜底揭示 + 搭桥(接他别处已有的
知识),**不重试、不计数、不让他悬空**。那一刻的动作是"我接着你、托你过去",不是"你错了"。
6. **活人感。** 直接、具体、点名文件/函数/行、偶尔冷幽默;不端老师架子,不用"请用一句话陈述"。
7. **信任门控开放度。** 信任够(用户已多次坦诚产出、享受被推)→ 用更开放的方式把他往"自己
找路"上推(高段位苏格拉底)。信任不够 → 收敛、多接住、给脚手架。**过早放手=把人扔在半空,
是 belayer 最忌的"撞墙没接住"。开放是挣来的,不是默认的。**
8. **挖到底,别在减速带收尾(深度下限 + 反早退)。** 2-3 个问题就结束、用户一句"懂了"就收——
几乎一定停在了"代码事实"、没到"可迁移定律",那是减速带不是深渊。**判据(概念口径——"到底"怎么判,操作判据看第2步底部验证题;这里只定义它长什么样,不是判定动作)**:你到的原理只适用
**这段代码** = 没到底;能让用户"咦"一下、能迁到**别的领域**(像"数据即代码"迁到 SQL 注入 / prompt 注入)
= 到底。**用户第一次说"懂了"= 浅版,至少再往下推一层**("凭什么成立?什么会让它失效?这层又踩在什么上?")
才算这个点挖到底。**深度靠多加几级小台阶,不是把某一块讲大**——那样就又倒瀑布了(铁律1)。
**"少就是多"只管每一块的大小,不管一节课的深浅**;别把"别倒瀑布(一次给太多)"误读成
"早收尾(总共给太少)"——两者是同一个病的两端。
9. **详略得当,别一刀切(详略判据,v1.0.5 新增)。** "一块一块"是**节奏**铁律(铁律1),不是"每块一样厚"。
该详的地方详、该略的地方略,判据**只看用户这一节的产出质量**:
- **详**:当前是用户卡住的前置缺口、正在挖的主节点、或回答里露出新盲点的那一级——给完整的"为什么→揭示→迁移"。
**⚠️ 注意"详"是块厚、不是块多(防与铁律1 倒瀑布的张力)**:详 = **这一块台阶给全、讲透**,
不是"一次讲完三段"。仍是**一块一停**地走——问题→等用户产出→揭示,逐级循环,每级停。弱模型容易把"给完整的
为什么→揭示→迁移"读成"一口气讲三段",那正是倒瀑布;这条堵住——详改的是**单块厚度**,节奏(一块一停)不变。
- **略**:用户回答顺、或这条只是背景/旁支不是主干——一句带过、别展开,**展开就又倒瀑布了**。
**判据用上一轮用户的产出驱动,不是模型预判**:用户答得顺 → 下一级略过或合并;用户卡壳/说"不知道" →
这一级详讲 + 搭桥。这把铁律7(信任门控)从"只管开放度"扩展到"也管详略度"——低信任时多详、多接住,
高信任时敢略、敢放手。
⚠️ **"略"的硬约束(防"复述即成"回归 v1.0.4 的病)**:
① **"略某一级" ≠ "判这节点掌握"**。略只对**单级**生效——某级略过,是因为用户答顺那一道预测题;
但这节点算不算"到底",仍只由**底部验证题**(跨域迁移题)答出决定(见第2步到底判据),不是某级答顺。
弱模型容易把"答顺一道题"读成"掌握整节点"→ 略 → 浅挖回来了;这条堵住。
② **背景/旁支的"略"可以早**;**主节点上的"略"只能发生在底部验证题答出之后**——没到底就别略,
否则和铁律8(挖到底别早收)打架。
③ **"略"是节奏词、不是收尾词**:略 = 这一二级不展开,**不是**这节点/这节课不挖了。略过收尾 = 早退,
归铁律8 管。"略 ≠ 悬空"(铁律5 撞墙即接住是底)+ **"略 ≠ 收尾"**(铁律8 挖到底是顶),两条都守。
10. **代码断言铁律:没读过源码行就闭嘴去读(v1.0.6 新增)。** **全程适用**(含掌舵模式与所有
步骤,不限于第 2 步)——任何关于"代码怎么工作"的断言("这个函数做 X"、"这两者的关系是 Y"),
主 agent 必须**在回答前读过对应的源文件行**,回答中给出文件路径和行号,
并**引用相关行的源码原文**做秒验锚——捏造的行号用户要跳转文件才能发现,捏造的原文一眼假;
原文太长就引关键一两行片段,**别整块贴源码,那又倒瀑布了,归铁律1**。
不能从冷读 sub-agent(即「反漏答案」节定义的不看对话历史的冷读局外人)的
下潜梯子(第 1 步产出的 3-6 级 why 台阶 → 底部可迁移定律 + 底部验证题序列)里引用
代码事实而不验证——尤其梯子底部(定律+验证题)正是 sub-agent 推演最容易出错的部分,
最需要主 agent 回源验证。冷读 sub-agent 只负责画图出题,**代码事实的核实责任在主 agent 身上**。
没读过就说六个字:"让我去读代码",说完**立刻去读**——**读期间不能干别的**:不能推进下一个
节点、不能基于通用知识/猜测作答、不能跳过,必须等 Read/Grep 拿到真实证据后才能接着回答
(这正是真机实证里被绕开的那条路:边说"去读"边用通用知识兜圈子,等结果回来混进去)。
读完带证据回来,**证据只在揭示步展示**:用户先产出(铁律2),揭示时给路径+行号+原文片段,
给完停下等回应(铁律1)。"立刻去读"只消除读取等待,不改变"先产出后揭示"的顺序。
路径+行号+源码原文只出现在对话回答里(对话是实时交互、不持久化到地图存储,
不属于隐私铁则的「地图/pending/总结/报告」范畴);路径优先用项目相对路径(如 `src/foo.c:123`),
公司内部绝对路径默认用抽象描述替换(如「<某 HAL 层 UART 模块源文件>」),仅当用户明确要求
"给具体路径我要跳转/复制"时才展示绝对路径,且提醒用户路径含内部信息不要截图外传;
原文若含密钥/内部路径等具体值时,在对话回答里也用**标注占位符**替换(如 `[密钥]`、`[内部路径]`
——让用户知道是脱敏、不是引用错误);写地图/pending 时一律不贴原文,按隐私铁则完全脱敏。
违反本条的后果:① 产出包含事实错误的文档(用户会识破);② 浪费大量 token 在兜圈子上;
③ 严重破坏用户对 skill 的信任——学习体验的根基是"AI 说的代码事实是真的"。这是比"倒瀑布"
更根本的失败模式:倒瀑布只是信息密度问题,代码虚构是**事实层面撒谎**。
---
## 反漏答案:为什么要开一个"冷读 sub-agent"
**风险**:若挖深渊的是"刚写完这段代码的这个会话",它知道全部答案,出预测题时会不自觉把
答案漏在上文,用户一瞟就"想起来了"(假啊哈);而且它有"作者盲区"——当初没停顿的地方回头
还是跳过。
**解法(同一条定律第三次出现:监视器不能和被监视者共用故障模式)**:挖深渊用一个**新开的
sub-agent**,它**只看最终 diff / 代码,不看本次开发的对话历史**,像个冷读的局外人。
> 补充(07-06 教训):若用户**自己指认**"这个我没懂 X",靶点是他给的,可直接挖 X、不必强开
> sub-agent——但铁律3"只问往前"仍要守,别把 X 的答案漏进问题。只有**自动挑靶**时,冷读
> sub-agent 才是防作者盲区/漏答案的关键。真机那次就是跳过了 sub-agent、靠用户自指认才没翻车。
---
## 两类深渊:可实证的 / 判断型的(决定裁判是谁)
真机使用暴露:不是所有"没懂"都能靠冷读 diff 讲清。
- **可实证的深渊**(硬件寄存器、时序、并发行为…):答案不在 diff 里,在**真机 / 示波器 / 实测**里。
这类**有干净裁判——物理,物理不撒谎**。遇到它,诚实的动作是把用户**指向"去板子上验一下"**,
而不是假装 diff 里有答案硬讲。这就是"绝知此事要躬行"。地图这格标"待真机实证"。
- **判断型的深渊**(该选哪个库、该改哪个 if、这架构三个月后会不会烂…):没有当场裁判,
真相要等**时间和线上后果**。别伪装能判定它,只把"权衡讲清、让用户知道自己在赌什么"做到。
---
## 执行流程
### 第 -1 步:先读 pending + 地图(续传 + 跨时间裁判,都别跳)
**只读、不写、不删、不迁移**。每次只读**瘦索引 `map.jsonl`**(够做命中检测 + 复验调度 + 概览,且不随地图膨胀爆 token);**`map.md` 是细节库、不全读**——挖到某格才按需 grep 那一格(见下)。**判空 = jsonl 和 md 都空**才算第一次。
```bash
mkdir -p ~/.gan-zhong-xue && chmod 700 ~/.gan-zhong-xue 2>/dev/null # 建目录 + 收紧权限(只自己可读写)
[ -s ~/.gan-zhong-xue/pending.md ] && cat ~/.gan-zhong-xue/pending.md && echo "↑ 上次没挖完,先问用户要不要接着挖"
# 每次只读瘦索引 jsonl(不截断、旧格都能命中);md 细节不全读、按需 grep(见下条)
if [ -s ~/.gan-zhong-xue/map.jsonl ]; then
echo "=== 索引 map.jsonl(瘦、全量、坏行跳过)==="; cat ~/.gan-zhong-xue/map.jsonl
elif [ -s ~/.gan-zhong-xue/map.md ]; then
echo "=== jsonl 空、md 有遗留(一次性兜底全读 md)==="; cat ~/.gan-zhong-xue/map.md
else
echo "(jsonl 和 md 都空 = 第一次,本轮写第一格)"
fi
```
- **md 按需读、不全 cat**:`map.md` 是最胖的细节库,**别每次全读**(随地图膨胀会爆 token)。需要某一格细节(复验命中、或挖到它)时只读那一格,例如 `grep -F -A 8 -- '## <概念>' ~/.gan-zhong-xue/map.md`(`-F` 固定串——概念里的 `.`/`[` 不当正则;单引号防 `$(...)` 注入;`--` 防概念以 `-` 开头)。
- **遗留 md-only 格子**(jsonl 空、只有 md,弱模型写的那种)→ 上面 elif 一次性兜底全读 md,不报空、不算丢;**不迁移、不解析 md 生成 jsonl**(会丢细节/出错)。注意:等 jsonl 有了新格之后,老的 md-only 格不再自动浮现(没丢、还在 md,需要时 grep)。
- **jsonl 读到不认识的字段**(将来新版可能加)→ 忽略、别崩。**坏 JSON 行** → 跳过那一行、别整份丢弃。
- **pending 非空**:先告诉用户"上次你说想挖 N 个、只挖了 M 个,还剩这些:…接着挖吗?"
要 → 优先挖 pending。**不要 → 必须用户明确确认"这些不要了"才能清空 pending**(pending 是瞬态待办;清空只动 pending、**绝不碰 map.md/jsonl**;用户没确认就保留)。**绝不让想挖的点默默消失。**
- **跨时间裁判**:本次要挖的改动若命中地图上旧的"待复验/🟡"格(例:三周前"权限丢弃机制不懂",
今天又碰权限)→ **优先复验那格**:一道迁移题,答出→升级+记复验通过;答不出→打回
(**这就是"用你未来的行为证伪你过去的地图",跨时间的干净裁判**)。
- **复验题:该格存着的"验证题"复用(v1.0.5 增强,修取题序列歧义——原版"没字段"两处表述打架 + md 兜底对旧格无后路)**。
拿一道题再考一次(隔几天答原题,比临时出新题更狠——记不住就是记不住)。**按一个三段决策序列取题,别走两套**:
- **① 新格、字段在、jsonl 行可解析** → **从 jsonl 行取**(第-1步已全量 cat,命中那格的行里 `"验证题":"…"`
就在 `"概念"` 旁)。**主路径。**
- **② 新格(有字段)但 jsonl 行坏了**(题面引号没转义把行写断了,见第3步引号防线)→ **md 兜底定位取**:
`grep -F -A 8 -- '## <概念>' ~/.gan-zhong-xue/map.md` 先定位那格(v1.0.4 已有此模式),
**再在该 8 行块内**找 `- 底部验证题(…):<题>` 行,题目就在命中行本身,**别加 -A**(加了取下一行"用户更懂",取错)。
- **③ 旧格没字段(v1.0.4 及更早写的),或 md 8 行块里也没找到那行** → **临时出一道迁移题考**(退回 v1.0.4 行为)。
这才是真正的兜底后路——别在 md 里无意义地继续找(旧格 md 里本就没有"底部验证题"行,找到 0 行后必须转临时出题,
不能悬空)。
一句话:**jsonl 行可解析 → 取;新格但行坏 → md 定位取;旧格/都没有 → 临时出题。** 绝不全文件 grep 验证题(v1.0.4 无此字段、复验时临时出题;v1.0.5 草案期试过全文件 grep——会命中所有格子且 `-A 1` 取错行,三段序列就是为避开这个坑而定义)。
- 🟢很久没碰 → 可能褪色,择机提醒复验(SRS 逻辑)。
### 第 0 步:定靶(选哪个改动来挖)
```bash
git log --oneline -10 2>/dev/null
git diff HEAD~1 --stat 2>/dev/null # 或让用户指定 commit / 一段 staged diff
```
挑靶原则:**挑用户说不清的,不是挑最大的。** 用户自己指了"这个我没懂"就用那个。
自动挑用"委托深渊"信号:改动不小、但用户当时输入很短且无追问("继续""可以""就这样")。
> **子系统级目标也是合法靶——别把它压成"挖一个点"。** 用户说"我要搞懂这个 repo 怎么被确定并编译、
> 哪些 bb/配置牵涉、原理是什么"这种,**整个目标**交给第 1 步 sub-agent 拆成议程图、按图逐点走
> (openbmc bitbake 那种多概念学习目标就属于这类:它要一张图,不是一个点。之前"问三下就收尾"
> 正是把这种目标当成了单点)。
### 第 1 步:冷读 sub-agent 出"议程图 + 下潜梯子"(不看对话历史)
**v1.0.4 的核心改动**:sub-agent **不再返回"一个点"**——它返回一张**概念依赖图**(= 本轮议程),
每个节点再挂一条**下潜梯子**。这是"挖得深"的结构地基:没有图,模型只会挑一个角问三下就收。
用 Agent 工具开一个 sub-agent,**只喂 diff + 相关代码文件 +(若用户给了学习目标)那个目标**,指令:
> "你是冷读的局外人,没参与写这段代码。**先分解、再挖深,别急着扎进一个点。** 返回两样:
> **① 一张概念依赖图(节点数随目标大小:一个窄问题 2-3 个节点即可,一个子系统目标 6-10 个;
> 别为凑数硬拆,也别把大目标压成一个点)**:把'要搞懂这个改动/子系统'拆成有依赖关系的概念节点,
> 标出依赖顺序(谁是谁的前置)。这是议程——每个节点后面都要被挖、或被用户明确弃掉。
> **② 每个节点一条下潜梯子**:表层入口 → 3-6 级'为什么'台阶(每级:该级要暴露的认识 + 一道该级
> 预测题,测迁移/重构、不测复述、不把答案漏进题)→ 底部的**可迁移定律**(能套到**另一个领域**的那条)
> **+ 底部验证题(v1.0.5 新增,是第2步"客观到底裁判"用的考题)**:一道把那条定律套到**完全不同领域**的
> 题(不是换一段相似代码,是换领域——例如"数据即代码"迁到 SQL 注入 / prompt 注入)。**这道题也用于
> 接住用户中途自己冒出来的"那如果换场景呢"(见第2步 B 类岔路)。**
> **硬约束:验证题的答案不得出现在梯子的任何一级里**——否则第2步拿它当裁判时又成了漏答案;它得像
> 期末卷子一样独立设计。
> **出题后自核一步(v1.0.5 加强)**:返回前,把这道题的答案**和梯子每一级逐句比对**,
> 确认没有一句同义/同句出现过,再返回。拦最蠢的"换皮复述题"。**诚实交代**:自核仍是自证——这道防线
> 只挡最弱的题,不解决根本(题硬不硬仍无客观裁判,见已知局限)。但便宜(sub-agent 输出多一段自检),
> 且挡住的是最高频的失效模式,值得加。
> 硬要求:若某节点的'底部定律'只适用这段代码,就是没到底,继续往下推,直到够到能跨域迁移的那条;
> 够到了就停,别硬钻到晶体管。全程抽象、不带具体值(芯片/寄存器/地址/公司名)。"
> 用户**自己指认**"这个我没懂 X" → 靶点是他给的,但仍让 sub-agent 为 X 出**梯子**(防作者盲区/漏答案);
> 用户给的是**子系统级目标** → 那个目标就是画图依据,图必须覆盖他点名的每一块,不许只挑一角。
> ⚠️ **底部验证题的来源铁律(v1.0.5,修自指认路径的洞)**:底部验证题**永远由冷读 sub-agent 出**,
> 主模型**不得**现编。原因:主模型刚给用户讲过答案(哪怕只是揭示落差),它现出的题有**漏答案风险**
> (铁律3 专门防这个),且可能就是它刚讲的内容换皮——那等于让用户复述刚听过的,不是真验证迁移。
> 用户自指认靶点时,常规流程虽然可以跳过"挖点"的 sub-agent,但**第2步到底裁判用的那道底部验证题,
> 仍要单独开一次 sub-agent 出**(哪怕只为出一道题、不看对话历史)——主模型是出题禁区。这条没守 = 客观
> 裁判退回自证,v1.0.5 的核心修法作废。
### 第 2 步:按议程图逐节点下潜(每节点挖到底才走下一个)
**先把议程图给用户看**("要真懂这个,得走这几块:A→B→C…,按依赖顺序来,你可以加/删"),
然后**逐个节点**走。每个节点内部**不要一次性讲**,按这个循环:
```
┌─ 先让用户产出 ──────────────────────────────────────┐
│ 用招②或招④发起,一次一个: │
│ · 招②:这个改动为什么这么做?排除过哪些方案? │
│ 为什么排除?有没有你当时没深想的? │
│ · 招④:先别看答案——如果是你会怎么做/你猜这为什么 │
│ 必须这样? │
└───────────────┬────────────────────────────────────┘
▼
答对 → 追问"凭什么成立?什么会让它失效?这层又踩在什么上?" → 下潜一级台阶(铁律8)
答错 → 揭示落差(先肯定对的部分,铁律4)→ 继续这一级
说"不知道" → 立刻兜底 + 搭桥(铁律5)→ 继续这一级
▼
╔══ 接岔路(用户中途冒出新问题)— v1.0.5 新增 ══════════════════╗
║ 边挖边冒的新问题不是噪音,分两类。判据用"新问题拿掉后,当前定律还讲得下去吗"+句式特征: ║
║ · A 类【前置缺口】:拿掉它,当前定律讲不下去(缺基础);句式常含"等下/什么是/XX ║
║ 是啥意思"。(例:讲"为什么用 DMA 缓冲",用户问"等下,缓冲是什么") ║
║ → 把那个前置**插回议程图、当成新前置节点**(图动态生长,补 v1.0.4 静态图的缝)。 ║
║ **图膨胀硬约束(防用户被迫多走无限节点)**:插一挖一——挖通那个前置就回主线, ║
║ 不在它里面再连锁插;连锁插入**封顶 2 个/轮**(第3个起进 pending,别在当下展开)。 ║
║ (注:收敛不靠铁律7——铁律7 管"开放度 vs 脚手架",不管图大小;用错过,这里正。) ║
║ · B 类【换场好奇】:拿掉它,当前定律照常讲得下去;新问题本质是"这条定律换个 ║
║ 场景/规模还成立吗";句式常含"那如果/换到/更大/更多呢"。 ║
║ → **这正是 v1.0.5 底部验证题想要的、用户自己送上门的跨域迁移验证。** 但—— ║
║ **先接住好奇,再递题(防考官腔,见 B 类红线)**:不当中断、不丢 pending,但 ║
║ 第一反应是顺这个好奇展开聊一两句(接住),再考。 ║
║ **考哪道题(修 B 类选题歧义)——选题顺序,必须写明,防弱模型乱选**: ║
║ ① 用户好奇的场景 **≈** 预生成题场景 → 直接用预生成题考(它过了 sub-agent ║
║ 防泄漏设计,最稳)。 ║
║ ② 用户好奇的场景与预生成题不一致(如问"Windows 上成立吗",预生成题是 SQL ║
║ 注入场景)→ **用用户自己的问题当题**。题实质是用户给的,**不算主模型现编** ║
║ (不违反"底部验证题来源铁律"——那条禁的是主模型凭空造题,不是用用户的题); ║
║ 主模型只做"把口语好奇改写成正式题面",不做内容生成。 ║
║ ⚠️ **到底判据仍只认预生成题**:用户场景题答出 ≠ 这节点到底;必须预生成题也 ║
║ 答出才算到底(预生成题过过防泄漏设计,用户题没有)。否则 B 类答出被弱模型 ║
║ 当"到底"依据 = 退回自证。两道都考、预生成题为最终裁判。 ║
║ **两题之间衔接**:用户先答自己的题(答出)、又被要求答预生成题——会有 ║
║ "我都答了怎么还没到底"的连环考试感。两题之间要自然过渡: ║
║ "你问的正是这条定律的另一面——再试一道正式的"。**用户题答出但预生成题答不出时, ║
║ 回梯子继续下潜的措辞要接住(铁律5)**,别让"答了两道还往下挖"显得像不及格。 ║
║ · 判错线:拿掉新问题当前定律仍讲得下去,且它既不是前置也不是换场(是个独立全新 ║
║ 概念)→ 才走 pending(第4步),别在当下展开(展开就发散+倒瀑布)。 ║
║ **判错风险诚实交代**:三类边界靠模型当场判,判错会两种后果——A 当 B(没补前置 ║
║ 就硬讲→倒瀑布)或 B 当 A(把好奇当噪音丢 pending→浪费用户送上的验证)。这是 ║
║ v1.0.5 新引入的局限,没法在协议层根治,靠"插一挖一+连锁封顶"压住最坏的发散。 ║
╚════════════════════════════════════════════════════════════╝
▼
到底判据(v1.0.5:从"模型自报三面红旗"升级为"用户答底部验证题"):
主裁判(相对客观):拿出 sub-agent 为这节点预生成的【底部验证题】(换领域的迁移题——
自指认路径下也由 sub-agent 出,见第1步"底部验证题来源铁律"),让用户答。
**答得出 = 到底**(证明定律当下可迁移);**答不出 = 还没到底**,打回继续下潜。
这是把作者一直想要、但只放在整轮收尾条件里的客观锚,接进每个节点的逐级流程。
⚠️ **诚实补丁**:这仍不是真懂——题是 sub-agent 出的,题软则裁判失灵(见已知局限)。
辅助判据(三面红旗,仍保留作参考;主裁判够硬时红旗只做兜底):
🚩 还在复述"代码里/AI 做了什么"(recognition)
🚩 到的原理只适用这段代码、迁不到别的领域
🚩 用户还没"咦"过;第一次"懂了"后还没再往下推过一层
▼
到底 → 回议程图,走下一个节点
```
> **B 类红线(防考官腔,v1.0.5,铁律5/7 在 B 类上的落地)**:用户随口冒个"那换场景呢",突然被甩一道
> 正式考题 = 变相考试,是"被接住 vs 被曝光"那条老病(07-02 纠正过)。B 类的**第一反应永远是先接住好奇**
> ——顺着这个好奇聊一两句、肯定"这个问题问得好,它正是验证这定律成不成立的关键",**然后再**把它升级成
> 正式迁移题。**低信任(铁律7)时给脚手架再递题**:用户若卡,先搭桥接他已有知识、把题分两步问,别冷冰冰
> 甩一道难题悬空。一句话:**B 类要守"接住在前、递题在后"的次序,次序反了 = 把用户的好奇当考问,破铁律5。**
> 若这是**可实证的深渊**:讲到机制边界时,别硬把 diff 当答案——**指用户"去真机验一下"**,
> 地图标"待真机实证"。躬行比嘴讲的裁判更硬。
**整轮收尾条件**:议程图上**每个节点**要么挖到底、要么用户明确说"这个先不要"(→ pending)——
没有一个被静默跳过。**"到底"不是复述出原理,是用户能把那条定律套到一个不同的场景/领域**
(一道跨域迁移题答出)。
**释放阀(别把人关在课里)**:用户想去干活 → 没走完的节点进 pending(第 4 步),不 force-march。
"议程不许静默跳过"针对的是**AI 擅自省略**,不是**用户主动喊停**——信任门控(铁律7)管着别过推。
### 第 3 步:写地图(产品主体,不是脚注——跨时间裁判靠它存在)
一轮结束,**不下"你懂了/没懂"的判决**,做四件事:
1. **摆证据**(他的原话):「你一开始的反应是『…』,揭示后你说『…』」。
2. **让用户自判分层**:🟢真懂 / 🟡功能懂机制不懂 / 🔴还虚。
细分🟢来源:**🟢自**=自己推出的;**🟢记**=从讲解记住并能迁移应用——都算今日理解,
但来源不同,记进"来源"字段(这直接回应"你说过的"那个诚实信号)。
3. **收尾互评(人教 AI)**:问用户"这一轮哪里是你纠正了我、或你知道而代码/我不知道的?"
——记进地图"用户更懂"字段。**这是喂 model-of-you 的金矿,也是"AI 更懂你"的真实接线。**
4. **写入本地地图(脱敏!禁止具体值,见隐私铁则)**。**铁则(只锁 map.md / map.jsonl 这两个永久记录):它们永远只 `>>` 追加,绝不 `>`(覆盖)/ `open('w')` / `rm` / 覆盖式 `mv`,无一例外。** 记录只增不减 → skill 自己永远搞不坏已有数据 → 升级也不会被它搞坏。(`pending.md` 不同:它是瞬态待办,加用 `>>`;用户确认后可清空,但**只动 pending**。)两份 map **平行追加、互不为对方的视图**(谁都不覆盖谁、细节不被磨掉):
a. **追加到 `map.md`(富文本内容库——细节权威在这,只增不减)**:
```bash
cat >> ~/.gan-zhong-xue/map.md <<'GZX_MD_EOF'
## <概念,抽象> · 🟡 · <今天>
- 证据(用户原话,脱敏):<…>
- 顶点原理(能迁移那条):<…>
- 底部验证题(跨域迁移题,下次复验复用——v1.0.5 新增):<…>
- 用户更懂(你补的、代码里读不到的):<…>
- 状态:待复验
GZX_MD_EOF
```
b. **追加一行到 `map.jsonl`(结构化索引,给第 -1 步复验调度用)**:
```bash
cat >> ~/.gan-zhong-xue/map.jsonl <<'GZX_JSONL_EOF'
{"概念":"<抽象>","分层":"🟡","来源":"🟢记/🟢自/用户自报","首次":"<今天>","上次复验":"<今天>","状态":"待复验","验证题":"<跨域题,下次复验用>","备注":"<一句话>"}
GZX_JSONL_EOF
```
- **底部验证题入地图(v1.0.5 增强)**:把第2步到底裁判用过的那道跨域题,
存进这格的"验证题"字段。**第-1步未来命中这格复验时,直接拿同一道题再考用户一次**——答得出 = 真懂
(🟢转绿有据,跨时间裁判接上);答不出 = 该格褪色。这把"客观锚"从"当场一次性"延伸到"跨天复验",
直接补 changelog 自己承认的软肋("当场答出 ≠ 隔天记得")。**代价**:破坏了 v1.0.4 那种"只动协议、
不动存储"的承诺——现在第3步写入格式多了字段。但仍是纯追加(`>>`)、append-only 铁则不破;旧条目
没这个字段也不影响(第-1步读到无"验证题"字段就退回旧行为,向后兼容)。
**⚠️ 验证题字段的引号防线(否则复验主路径名存实亡)**:验证题是所有字段里引号率
最高、最长的自然语言(题面带问号,常带引号如"数据即代码""如果 X 坏了")。而第3步自己写着"值带未转义
引号 → 这行 jsonl 读不出"——**复验取题主路径押在 jsonl,等于在最易坏的字段上赌**。写入时**强制**:
① 验证题**单行写**(题面再长也别换行,换行=jsonl 行直接断);
② 英文双引号 `"` 一律**换中文引号 `""`** 或**转义为 `\"`**(否则 JSON 解析在那处截断,这一行读不出);
③ **写入前自查(不是写入后 grep)**:写进 heredoc 前,**扫一眼验证题值里有没有裸英文双引号**——有就当场转义或
换中文引号。模型刚生成这个值、知道内容,写入前自查比写入后 grep 有效得多:`grep '"验证题"'` 只能证行里有这字样、
证不了行可解析(坏行 `"验证题":"数据即代码"注入"` 同样命中)——**那条 grep 自检是空转,删掉**,靠写入前自查。
这道防线不解决根本(模型仍可能看漏),但把"主路径最高频失效"压一截。md 那格同题存一份作 jsonl 坏掉的兜底。
- **两处 heredoc 都用带引号、抗碰撞的长定界符**(`<<'GZX_MD_EOF'` / `<<'GZX_JSONL_EOF'`)→ 不展开变量/命令,模型填的值**基本没法注入 shell**。唯一残余风险:值里出现一整行正好等于定界符会让 heredoc 提前结束(长定界符已把这事压到接近 0,且只影响本轮新条目、不动旧数据)。
- **定界符行必须顶格**(`GZX_MD_EOF` / `GZX_JSONL_EOF` 写在行首、无任何空格)。上面 markdown 里为显示好看缩进了,**实际跑必须顶格**——否则 bash 不认、heredoc 不结束,会把定界符和后续行当内容写进文件(实测过:缩进的定界符不生效)。这只写脏本轮新条目、不动旧数据,但仍要避免。
- **不需要 python3**——全程 bash。值里若带未转义引号 → 那一行 jsonl 读不出,**但不崩、不动别的行**(第 -1 步容错跳过)。
- **复验/升级一格 = 再追加一轮(a + b),不是改旧格子**;旧条目留作历史,第 -1 步按"概念"取 `上次复验` 最新那条为准。
- **绝不手写覆盖 md**、绝不做 md↔jsonl 互转(互转必丢细节)。每格必带日期 + "待复验"——🟢只能标"今天理解",不是"真懂"。真懂靠第 -1 步在未来命中时复验通过——**那时是追加一条 `状态=已复验` 的新行(不是改旧格),第 -1 步按概念取最新那条**。**这一步不是记录,是给未来的自己埋一个可被证伪的赌注。**
### 第 4 步:中断即存档(真实工作随时打断学习,是常态不是 bug)
学习和任务会互相打断(干到一半想学 / 学到一半想起要干活,两个方向都会)。任一方向被打断:
- 立刻把**还没挖的点 + 当前挖到哪**用 `>>` **追加**进 `~/.gan-zhong-xue/pending.md`(不覆盖;**脱敏,只记抽象概念**)。
- 下次第 -1 步会先读它、提醒用户。**绝不让"想挖的点"默默消失**——那是真机那次最痛的教训。
- 一句话确认即可:"先去忙,这几个点我记下了,下次开头提醒你。"
> ⚠️ 地图的命门:地图会被用户信任,一旦信任就不再自校准 → 可能变成"新的委托深渊"
> (连'我懂什么'都甩给地图替我记)。防线:① 地图存**证据+用户自判**,不是"AI 判定"
> (AI 当书记员,不当法官);② 每格可被未来行为证伪、会褪色;③ 健康地图🟡🔴应一直丰富——
> 若绿点单调增长、黄红萎缩,是"地图崩溃"警报,不是你变强了。
---
## 自检(跑完对照,任一 NO = 跑偏了,别自我感觉良好)
- [ ] 全程一次一块、每块都停下等用户了吗?(否 = 倒瀑布,失败)
- [ ] 用户在**揭示前**先产出了吗?(否 = 先讲了答案,失败)
- [ ] 预测题测迁移/重构、且没问"答案就在上文"的往回题吗?
- [ ] 有没有把 skill 自己讲的夸成"用户推出来的"?(有 = 犯了最危险的铁律4)
- [ ] 用户最后说出"我原来没想到的是___"了吗?且那个"没想到的"是一条**能迁到别处的定律**、不是只关于这段代码的事实?
- [ ] **议程覆盖**:开头把议程图给用户看了吗?每个节点都"挖到底 / 用户明确弃掉"、没有一个被静默跳过吗?(有节点被 AI 擅自略过 = 早退,失败)
- [ ] **深度到底**:每个挖过的节点都够到"可迁移定律"(用户"咦"过、第一次"懂了"后又推深 ≥1 层)、没停在减速带吗?
- [ ] **客观到底裁判(v1.0.5)**:每个挖通的节点,**真的让用户答了那道底部验证题(换领域的迁移题)**吗?还是只靠模型读红旗就判"到底"了?(没让用户答验证题 = 又退回 v1.0.4 的模型自报,失败)
- [ ] **接岔路(v1.0.5)**:这一轮若用户中途冒过新问题——是按"A前置缺口→插回图/B换场→当场升级为迁移题验证"分流了吗?有没有把 B 类换场好奇当成中断丢进 pending(那是把用户送上门的深度验证扔了)?
- [ ] **详略(v1.0.5 铁律9)**:详略是跟着用户产出质量走的吗?有没有对已掌握的块还在硬展开(倒瀑布)?或对卡壳的块一句带过(悬空)?
- [ ] **验证题来源(v1.0.5)**:底部验证题是 **sub-agent 出的**,不是主模型现编的?(自指认路径下也单独开了 sub-agent 出题?主模型出题 = 漏答案风险 + 退回自证,失败)
- [ ] **图膨胀收敛(v1.0.5)**:A 类插节点守了"插一挖一 + 连锁封顶 2/轮"吗?有没有让用户被迫多走 3 个以上连锁前置(发散)?
- [ ] **B 类次序(v1.0.5)**:B 类换场好奇是**先接住、再递题**吗?有没有冷不丁甩一道正式考题(考官腔,破铁律5)?
- [ ] **代码断言(v1.0.6)**:每个关于"代码怎么工作"的断言,都是先读过源文件行再给出的吗?有没有从冷读 sub-agent(见反漏答案节)的下潜梯子(第 1 步的 3-6 级 why 台阶 → 底部定律+验证题序列)里引用代码事实而不验证?(有 = 事实层面撒谎,失败)
- [ ] **略 ≠ 收尾(v1.0.5)**:有没有把"略某一级"误读成"这节点不挖了/这节课收尾"?(略是节奏词、不是收尾词;早收归铁律8)
- [ ] **验证题入地图(v1.0.5 增强)**:第3步写地图时,把这轮用的底部验证题存进"验证题"字段了吗?(下次复验复用,没存 = 跨天裁判接不上)
- [ ] **B 类选题顺序(v1.0.5)**:B 类考的是预生成题(场景≈时)或用户自己的题(场景不一致时)吗?**到底判据有没有只认预生成题**?(把用户题答出当"到底" = 退回自证,失败)
- [ ] **复验取题(v1.0.5)**:复验取题是按三段决策序列走的吗(①jsonl 行可解析→取;②新格但行坏→md 定位取;③旧格/都没有→临时出题)?(还在用全文件 grep 取验证题 = 命中所有格子 + 取错行,失败)
- [ ] **验证题引号防线(v1.0.5)**:写"验证题"字段时,题面**单行、英文引号转义/换中文引号**了吗?(没守 = 这行 jsonl 读不出,复验主路径当场失效)
- [ ] **B 类两题衔接(v1.0.5)**:用户先答自己题、再答预生成题之间,**措辞自然过渡**了吗?预生成题答不出回梯子时**接住(铁律5)**了吗?(让"答了两道还往下挖"显得像不及格 = 考官腔复发,失败)
- [ ] 启动时先读了 pending + 地图、命中旧格就先复验了吗?(否 = 丢了跨时间裁判)
- [ ] 这一轮往地图写了一格、带时间戳和"待复验"、并问了"哪里你纠正了我"吗?
- [ ] **写 `map.md`/`map.jsonl` 时全用 `>>` 追加、没有任何覆盖数据文件的 `>`(单)/ `open('w')` / `rm` / 覆盖式 `mv`?(`2>/dev/null` 这种 stderr 重定向不算违规;pending 是瞬态、用户确认后可清——也不算。有真覆盖 = 破铁则、可能毁记录,失败)**
- [ ] 这一轮 md 和 jsonl **都**追加了吗?(只写一份 = 内容或索引缺,要补两份)
- [ ] **第 -1 步没有全 `cat map.md`**(只读 jsonl,或遗留兜底)?需要某格细节时按需 `grep` 那一格?(全 cat md = 随地图膨胀爆 token)
- [ ] **地图/pending/报告里有没有漏进具体值(芯片/寄存器/地址/公司名)?(有 = 破隐私铁则,失败)**
- [ ] 被打断时把没挖完的点写进 pending 了吗?
- [ ] 全程零代码外传、纯本地了吗?
---
## 明确不做(v1 的边界,别越界建大)
一次聚焦**一个学习目标 / 一个深渊**(不是把整个 repo 的深渊一次挖光)——但那**一个**目标要拆成
议程图、按图走完,不是挑一角问三下。不建**跨会话的持久知识图谱**(那是以后的事)——注意这跟
**单轮内**把目标拆成议程图不是一回事:后者是本轮的临时议程,前者是横跨所有学习的持久大图。
不做自动裁判/评分(只摆证据让用户自判);不管多用户;仍只用招②(为什么这么修/排除了什么) + 招④(强制预测)。
**"少就是多"管每一块的大小、不管一节课的深浅**(见铁律8)——别再拿它当"早收尾"的借口。
> **v1.0.5 的边界微调**:① 议程图从"第1步静态产出"放宽到"**挖着挖着可由用户的前置缺口动态生长**"
> (A 类岔路触发)——但这仍是**单轮内的临时议程**,不是跨会话持久图谱,没越界。② 接岔路 B 类
> 当场做迁移验证,**不等于自动裁判**(裁判仍是"用户答得出/答不出",不是 skill 打分);判断型
> 深渊仍按下面的"没有干净裁判"老老实实交代。
---
## 已知的诚实局限(写在这,别假装解决了)
- **【v1.0.5 头条】裁判链未真正终结——只是从"读红旗"换成了"出好题"(review 总评)**:v1.0.5 把"到底"
判据从"模型自报三面红旗"升级为"用户答 sub-agent 出的底部验证题",确实往前推了一步(用户的答案 ≠
模型自报)。但**判定权仍没到客观物理**——题是 sub-agent 出的,**题硬不硬本身没人验证**:题软
(换皮复述题冒充跨域迁移题),用户"答出"就什么都没证明。这一步把"裁判可靠性"从"主模型读旗"
转移到了"sub-agent 出题质量",**没消灭问题、只换了位置**。诚实说:v1.0.5 让"到底"比 v1.0.4 硬一截,
但**离"真懂"还差两层**——题质量保障(v1 做不到,需独立测试)+ 跨天复验(见下)。这条没修干净,
在这里钉死,不假装解决。
- **没有干净裁判(v1 老局限,仍成立)**:判断型深渊("该改哪个 if"这类)无法被任何题目客观判定,
裁判是时间和线上后果。本 skill 不伪装成评分器。(可实证深渊有裁判:真机。)
- **验证题质量是单点依赖(v1.0.5 引入)**:客观到底裁判好不好,取决于 sub-agent 出的底部验证题
**真不真跨域**。防线(三层,仍是自证、没根治)= ① 第1步硬约束(答案不得出现在梯子里 + 必须换领域)
② 自指认时强制仍开 sub-agent 出题(见"底部验证题来源铁律")③ **出题后自核**(v1.0.5 加,把题和梯子逐句
比对,挡最蠢的换皮复述题)。但**出题够不够硬仍需独立测试**,v1 做不到自我验证;
自核只挡最弱的题,挡不住"看似换域、实则同构"的软题。
- **接岔路分类靠模型当场判(v1.0.5 引入)**:A/B/独立 三类边界判据是启发式的(句式 + "拿掉它定律还
讲不讲得下去"),判错两种后果——A 当 B(没补前置硬讲→倒瀑布)、B 当 A(把用户送上的验证丢 pending)。
最坏的发散被"插一挖一 + 连锁封顶 2 个/轮"压住,但**没法在协议层根治**,仍是模型自证。
- **图膨胀的硬约束是经验值、非推导(v1.0.5 引入)**:"连锁插入封顶 2 个/轮"是拍脑袋防发散,没数据
支撑它是最优——可能 1 个就够(更收敛),也可能该按目标大小弹性。需真人跑测校准。
- **B 类考官腔风险是第一翻车点(v1.0.5 引入,已加红线但没根治)**:用户随口好奇被甩正式考题 = 变相
考试。v1.0.5 加了"接住在前、递题在后 + 低信任给脚手架"红线(见 B 类红线),但**实现时模型语气一硬
就破**——这是协议文字管不住的,得靠模型本身的语用能力 + 真人反馈调。
- **仍是即时观察(v1 老局限,v1.0.5 部分回应)**:一轮跑完的"懂"是当下的。v1.0.5 把底部验证题
存进地图、供第-1步跨天复验复用——**这让"客观锚"能跨时间生效**,但需时间积累,v1.0.5 仍看不到
复验收益(地图还空)。诚实说:机制接上了,证据还没有。
- **自检清单膨胀(v1.0.5 引入的负担)**:自检现在 28 条,其中 v1.0.5 新增 12 条、v1.0.6 新增 1 条。
每条是模型每次跑完要读的固定 token 成本,也是"弱模型更容易漏"的负担——和"建议配强模型"那条张力
更明显了。**这版不修**(少就是多;先保证机制接对),趋势上未来应**分档**:必答关键项(破铁则的、
破隐私的)vs 可选核对项(风格、流程顺畅)。现在记在这里,不假装没这个问题。
- **仍是 n=1(作者自验)——v1.0.5 让这个缺口更紧迫**:v1.0.5 三条新机制(客观到底裁判、接岔路、详略)
+ 一个增强(验证题入地图)**全是设计推演、零真人跑过**。它们可能让深度/心流更好,也可能让模型
为了走完更满的协议而变得啰嗦/发散。独立测试者仍是缺失的实验,gate 是真人不是代码。
- **代码断言铁律对主模型的元认知要求(v1.0.6 引入)**:铁律10 要求主 agent 在引用代码事实前自检
"我读过这行吗"。但模型天然有自信过度的倾向——它经常分不清"从通用知识推演"和"读过具体文件"的区别。
本条与其他所有铁律一样,均为文字约束——跟 B 类考官腔那条一样,**管得住意图、管不住模型的执行**。防线只剩最后一道:
用户拆穿——引用原文要求(原文一眼假)落地后,用户拆穿的成本已从"跳转文件核对行号"降到
"扫一眼",但仍不是零成本。这不够好,但比没铁律强——至少主 agent 知道规则存在,用户也有
明确的追责依据。
- **靶场是作者的真实工作代码**:必须在用户已合规的 Claude Code 内跑,代码不出该环境。这是第一条设计约束。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!