正在发生什么 → 该怎么做
不是按标题查找,而是按症状查找。点击“该怎么做”下面的链接,可以跳转到写有具体做法的那一节。连载文章列表在本页下方(不属于逆向索引)。
本表以 Claude Code(Anthropic 的编程智能体)为前提。hook、CLAUDE.md、subagent、auto memory 都是它的功能名称。
出问题时,由人输入的一句话
「请清空所有 todo。查看 https://typing-tube.net/articles/zh/lookup.md,回顾本次会话,检查是否有问题。」
这里得到的只是问题清单。怎么修,请按你自己的项目来决定。
| 正在发生什么 | 应对方案 |
|---|---|
| No.1 AI 每次运行测试,数万行输出都会涌入上下文 |
应对示例:把测试执行统一收进一个包装脚本,只把失败摘要返回给 AI。 |
| No.2 AI 保存的知识笔记越多,之后每次会话要读的量就越大 |
应对示例:在写入 memory 前,让它先读一份检查清单;常读的文件里只留一行。 |
| No.3 测试都通过了,但不知道它们是否真的在保护什么 |
应对示例:让 AI 执行 mutation testing。 |
| No.4 注册好的 skill,AI 有时用、有时不用 |
应对示例:在入口拦截错误的调用方式,并引导它读应读的文档。 |
| No.5 交给 sub-agent 的工作,在完成之前看不到里面发生了什么 |
应对示例:把可委托的工作列成清单,启动前用 hook 确认。 |
| No.6 指示文件里规则加得越多,之前加的规则就越不被遵守 |
应对示例:把每条“不要做某事”逐条改写成能检测违规的自动化测试。 |
| No.7 并行运行的多个会话共享的 memory 变得混乱,让它读方针文件也没用 |
应对示例:内容不变,只把它挪到保存后立即展示。 |
| No.8 即使写好了同类失败的应对方法,AI 下次还是会犯同样的错误 |
应对示例:检测到失败时,自动插入重试方针。 |
| No.9 读了交接说明和完成报告,但对自己不利的部分被省略了 |
应对示例:在完成报告旁,每次并排列出机器统计的数值。 |
| No.10 机器统计出的数字,传到报告里时已经变成了另一个数字 |
应对示例:给数值行加上固定前缀,用 hook 检查是否被逐字复制。 |
| No.11 在 AI 工作过程中插话,之后的动作就会乱掉 |
应对示例:工作中不要插话,等到段落结束。插话交给机制处理。 |
| No.12 会话结束时,该读什么、不该读什么并没有定下来 |
应对示例:不读产出物也不读 transcript,只看 exit code 判定。 |
| No.13 一次驳回的提案,在下一个会话里又被提出来 |
应对示例:把驳回过的判断集中写进一份文档。 |
| No.14 明明写了一行禁止事项,却被过度解读或过度缩小解读 |
应对示例:为每条禁止事项写“理由”,和结论并列。 |
| No.15 禁止事项明明写对了却没被遵守,每次都要来问一遍 |
应对示例:为每条禁止事项写“适用范围”,逐行列出容易混淆的边界。 |
| No.16 把同一条指示分给多个 sub-agent,返回的格式却各不相同 |
应对示例:在可交给 sub-agent 的任务清单里注明启动前所需输入。 |
| No.17 没有自动化测试的禁止事项,只是写在那里不断堆积 |
应对示例:为每条禁止事项标明是否有对应的自动化测试。 |
| No.18 AI 的工作每次都以“请打开页面确认一下”收尾 |
应对示例:判定通过与否看留下的数据,而不是画面外观。 |
| No.19 AI 每次说得稍微有点偏,都要自己解释再纠正 |
应对示例:不由人来解释纠正,而用 hook 和自动化测试的失败信息回应。 |
| No.20 驳回过的判断清单不断变长,眼看就要没人再读了 |
应对示例:驳回的提案送进文末的“未采纳的方案”。 |
| No.21 指示文件里“请务必执行”的要求一直堆在那里,没有减少 |
应对示例:核对指示文件写着“务必执行”的命令,是否也存在于机制那一侧。 |
| No.22 连具体做法都写清楚交出去了,结果改回来的还是不一样 |
应对示例:不指示具体步骤,只在开始前定好所需输入。 |
| No.23 每次反馈 bug,都要自己把复现步骤和症状重新写一遍 |
应对示例:人只写一句症状,其余由自动收集。 |
| No.24 每次都要花力气打一句“先出个计划” |
应对示例:放一份设计文档,AI 就会沿用它的体例。 |
| No.25 越是希望被遵守的行写得越强调,却不知道有没有效果 |
应对示例:不再测量效果,改为统计强调行数并设上限。 |
| No.26 sub-agent 交回来的成果,格式和自己预想的不一样 |
应对示例:在交付前先定好成果物的验收条件。 |
| No.27 发现错误时,忍不住想追问“你真的读过了吗” |
应对示例:不追问,改用“……不是吗?”的疑问句。 |
| No.28 对返回的答案回一句“不是这个意思”,情况也不会变好 |
应对示例:不由人指出,而在保存后把禁止事项和差分一起展示。 |
| No.29 AI 会像打开过某个文件一样,谈论它其实没打开过的文件内容 |
应对示例:让它在引用处和实现处都写上相同的标识符,再用自动化测试检查该标识符是否存在。 |
| No.30 AI 不断问“A 和 B 选哪个”,手上的工作就停下来了 |
应对示例:不当场回答,让选择的判断标准交给机制决定。 |
| No.31 让 AI 做 review,但不知道它到底漏看了什么 |
应对示例:从外部统计,找出那些遍历了却没设下限的自动化测试。 |
| No.32 截图越积越多,却分不清哪一张验证了什么 |
应对示例:拍摄前先写“要验证什么”,从廉价手段开始依次尝试。 |
| No.33 设置了要求先写声明的环节,却数不出有多少次执行是跳过声明直接跑的 |
应对示例:截图或 E2E 前先写“要验证什么”,没写就不执行。 |
| No.34 代码明明没有改动,同一批测试却又跑了一遍,白白等待 |
应对示例:让它能重读上一次日志,不再重复执行。 |
| No.35 什么都没弄坏,却冒出一大串没见过的错误 |
应对示例:测试执行时获取互斥锁,拿不到就不执行。 |
| No.36 “测试都通过了”的报告里,没写清楚哪些部分根本没跑 |
应对示例:耗时测试默认跳过,每次输出未执行区域的清单。 |
| No.37 指定了做事顺序的指示,事后没法判断有没有被遵守 |
应对示例:不加强指示措辞,而让走过步骤的痕迹留在成果物里。 |
| No.38 设置好的 wrapper,用着用着又被换回了原始命令 |
应对示例:不加强指示,检查是否还残留着换回原始命令的理由。 |
| No.39 同一个问题问了好几次,每次答案都不一样,一汇总又有东西消失了 |
应对示例:汇总前,按类型输出多少次里有多少次提到。 |
| No.40 写了“如有需要请执行……”这样的条件语句,却不知道有没有触发 |
应对示例:不写“如有需要”,改成不经该工序就无法继续。 |
| No.41 回一句“再想一下”答案就会变,但不知道它是不是真的想通了 |
应对示例:不打回重做,具体指出哪个前提错了。 |
| No.42 写了“不要靠猜测”之后,AI 变成什么都不产出就交回来了 |
应对示例:不只给出禁止项,一并写明可填“无”的退路。 |
| No.43 顺利的对话继续下去,需要核对的工作量却越积越多 |
应对示例:在段落结束会话,下一项用新会话开始。 |
| No.44 产出物全都正确,但不会留在产出物里的浪费却在不断累积 |
应对示例:成果物齐备时,对 transcript 做一次统计。 |
| No.45 为后来者留下的知识笔记,会和实际情况脱节、变得过时 |
应对示例:知识不写进文档,而嵌入到中止时的提示信息里。 |
| No.46 刨根问底地追查原因,答案出来之后还在继续读 |
应对示例:统计未做改动却连续进行的读取,深挖前先写结束条件。 |
| No.47 没有衡量用途,就把单价最便宜的模型定为默认选择 |
应对示例:同一任务分别交给便宜和贵的模型,数清往返次数与用量后再决定。 |
| No.48 一旦不顺利,想到的不是改进机制,而是换更高级的模型 |
应对示例:同一任务交给两种模型,把只有便宜一方失败之处做成自动化测试。 |
| No.49 本可以由主体自己完成的调查,出于保险起见交给了 sub-agent |
应对示例:父 agent 已掌握的前提不交出去,只交出它未掌握的读取部分。 |
| No.50 不假思索地分成 4 份,同时并行跑 |
应对示例:交给 sub-agent 的任务量以一次回复能返回的规模为限。决定成本的是往返次数,不是数量。 |
| No.53 在作业进行到一半时,从外部插入“这里也看一下”的要求 |
应对示例:等到段落结束,缩小范围再提出请求,并附上“如果已经足够,请注明已经足够”。 |
| No.52 想通过比较来决定该用哪个模型 |
应对示例:开始比较前,先数清这次比较相当于几个机制的工作量。 |
| No.51 以一句“没有差异”草草收场,想结束验证 |
应对示例:收场前,重新数清被排除在统计外的结果,以及所有条件下都为 0 的项目。 |
| No.54 某一天起 AI 的做法变了,而你既没改指令也没改设置 |
应对示例:不写与产品侧指令冲突的内容,只补充它未规定的部分。要改变做法时切换设置。 |
连载文章列表
从这里往下不属于逆向索引,而是各篇连载文章的链接。按系列排列,从序论到最终回。
はじめに —— 3 つの連載を、1 冊に
バイブコーディングにおける読まない技術
- 読まない技術 序論 AIの出力を、もうほとんど読んでいない
- 読まない技術 第1回 テスト結果を読まない技術
- 読まない技術 第2回 メモリを読まない技術
- 読まない技術 第3回 単体テストを読まない技術
- 読まない技術 第4回 スキルを使わない技術
- 読まない技術 第5回 サブエージェントの出力だけは読め
- 読まない技術 第6回 ルールを読まない技術
- 読まない技術 第7回 共有メモリを整理しない技術
- 読まない技術 第8回 修正履歴を読まない技術
- 読まない技術 第9回 引き継ぎを読まない技術
- 読まない技術 第10回 AIに要約しろと言わない技術
- 読まない技術 第11回 口を挟まない技術
- 読まない技術 第12回 作業結果を読まない技術
- 読まない技術 最終回 AIの出力を、ほとんど読まなくなった
AIの意見を聞かない技術
言わない技術
- 言わない技術 序論 AI に指示することが、ほとんどなくなった
- 言わない技術 第1回 検証を指示しない技術
- 言わない技術 第2回 具体的な指示を出さない技術
- 言わない技術 第3回 不具合詳細を書かない技術
- 言わない技術 第4回 計画を書けと言わない技術
- 言わない技術 第5回 念を押さない技術
- 言わない技術 第6回 サブエージェントの出力だけは、細かく指示しろ
- 言わない技術 第7回 AI を問い詰めない技術
- 言わない技術 第8回 AI にダメ出ししない技術
- 言わない技術 第9回 AI に考えさせない技術
- 言わない技術 第10回 質問に答えない技術
- 言わない技術 第11回 AI にレビューをさせない技術
- 言わない技術 最終回 何もしない技術
付録
はじめに —— 前巻の続きを、もう 1 冊に
確かめない技術
動かさない技術
追わない技術
番外編
- 番外編 A-1 整理する技術 —— 記録が増えたときに、何が起きているか
- 番外編 A-2 指示を残す技術 —— 「調べるだけ」が通らなかった日
- 番外編 A-3 参照するタイミングを変える技術 —— 2,000 行の壁
- 番外編 A-4 導出を依頼者の言葉と分ける技術 —— 誰も言っていない条件が、memory に載った日
- 番外編 A-5 memory を要約しない技術 —— 整理から、要約を抜く
- 番外編 A-6 責務で線を引く技術 —— 仕組みが増えたときに、どれを消すか
- 番外編 A-7 読まれたかを確かめる技術 —— 確かめるのをやめて、読めていない形を止めた
- 番外編 A-8 面積で数える技術 —— 読ませた量で数えていたら、102 倍外していました
- 番外編 A-9 ルールを短くする技術 —— 読みに来るのは、止められた直後の人です
- 番外編 B-1 連載を本にする技術 —— 本単位のスイッチでは、足りなかった日
- 番外編 C-1 校正の方法に、先に本編を当てる技術 —— AI が書いた方針に、その本自身の地雷が 10 個あった日
- 番外編 C-2 仕組みと人を分ける技術 —— 自動テストを置いたその手で、自動テストの外側で 2 度転んだ日
- 番外編 C-3 要素ごとに観点を変える技術 —— 一様に当てた点検が、要素をまたいだところで数を落とす
- 番外編 C-4 似た指示語を読み分ける技術 —— 1 字違いで、別の作業を頼んだことになる
- 番外編 C-5 作業の流れを見る技術 —— 終わりにしたつもりの日に、まだ起きていたこと
- 番外編 C-6 作業を進める技術 —— 選ぶ場面が、1 つも残らなかった日
- 番外編 C-7 読まずに止める技術 —— 決まったはずの判断が、1 分後に取り消されました
- 番外編 D-1 症状で読む —— 片付いた報告に、症状が混ざります
- 番外編 D-2 根拠で読む —— 突き合わせた報告に、症状が混ざります
- あとがき —— 本当の事実はどうでもいい話