要点速览
- 核心比喻:地图不等于疆域(the map is not the territory)。地图是你给 Claude 的提示、技能与上下文;疆域是工作真正发生的地方——代码库、真实世界及其实际约束。两者之间的落差,作者称之为未知项 (unknowns)。
- Fable 5 是第一个让作者感到"工作质量的瓶颈在于我能否把未知项讲清楚"的模型。仅靠事前规划并不够,未知项会潜伏到实现深处,甚至会反过来提示你:这个问题本该换一种方式解决。
- 用四象限拆解未知项:已知的已知、已知的未知、未知的已知、未知的未知。减少并预留未知项,正是 Agentic Coding 的核心技能,而这项技能可以通过与 Claude 协作练出来。
- 一套贯穿"实现前 / 实现中 / 实现后"的具体手法:盲点扫描、头脑风暴与原型、访谈式提问、参考源码、实现计划、实现笔记、路演/解说物料、以及"考我一考"。多数以 HTML Artifact 承载。
- 一句话方法论:每一次解说、头脑风暴、访谈、原型与参考,都是在昂贵的返工发生之前,用低成本把"你原本不知道的事"提前挖出来。
原文链接 原文:English Original 作者:Thariq (@trq212),Anthropic Claude Code 团队开发者,发布于 2026-07-04

与 Claude Fable 5 协作,让我一次次重温一个老道理:地图不等于疆域(the map is not the territory)。
地图,是对"要做的工作"的一种表示——也就是我的提示 (prompt)、技能 (skill) 和上下文,是我交给 Claude 的东西。而疆域,是工作真正需要发生的地方——代码库、真实世界,以及它们实际的约束。

地图与疆域之间的落差,就是我所说的未知项 (unknowns)。当 Claude 撞上一个未知项时,它必须基于"对我想要什么的最佳猜测"来做决定。工作量越大,Claude 可能撞上的未知项就越多。
Fable 是第一个让我明确感到——工作质量的瓶颈,在于我能否把它面对的未知项讲清楚——的模型。
更关键的是,仅仅提前规划并不总是够用。你可能会在实现的深处才发现未知项;甚至你的未知项会反过来提示你:这个问题其实应该换一种完全不同的方式去解决。
我发现,与 Fable 协作是一个迭代的过程——在实现之前、之中、之后,持续地发现自己的未知项。
我在这里做了一些"寻找未知项"的示例 Artifact,但请务必回过头来,去建立"何时该用它们"的直觉。
你的未知项是什么?当我带着一个问题来找 Claude 时,我倾向于按四种方式来拆解它:

最厉害的 Agentic Coding 高手,未知项相对很少。看 Boris 或 Jarred 这样的人写提示,我一眼就能看出他们非常清楚自己想要什么、且细节到位。他们与代码库、与模型的行为都深度同步。
但他们同样会为未知项预留空间。在很多意义上,减少未知项、并为未知项做好规划,正是 Agentic Coding 的核心技能 (skill)。而幸运的是,这是一项你可以通过与 Claude 协作不断精进的技能。

给 Claude 下指令是一门微妙的平衡艺术。如果你太具体,Claude 会严格照着你的指令走——哪怕此时"掉头换个方向"才是更合适的选择。如果你太笼统,Claude 往往会依据行业最佳实践来做选择和假设,而这些未必契合你的任务。
当你没有把未知项考虑进去时,你会在两端同时失手:你不知道前方哪一段路会布满障碍,也不知道哪一段路其实畅通无阻——可即便畅通,你依然希望 Claude 能主动拐弯(veer)。
Claude 可以帮你更快地发现未知项。它能极快地检索你的代码库和互联网,而且在大多数话题上懂得都比你多;它也能更快地从失败中迭代。
这个过程里最重要的一环,是给 Claude 关于你出发点的上下文。比如:告诉它你目前思考到了哪一步;坦白你对这个问题和这个代码库的经验深浅;让它像一个思考伙伴 (thought partner) 那样与你协作。
我此前写过如何配合 Claude 使用 HTML——几乎在所有这些场景里,一个 HTML Artifact 都是把问题可视化、表达出来的最佳方式。
在这篇文章里,我会详细介绍一些我用来挖掘未知项的模式。我不会每次都把每种手法都用上,但把它们攒成一套工具箱是很有用的。

开工时,你能做的最有用的事情之一,就是搞清楚自己的盲点。举例来说,如果你要在代码库里一个陌生的部分写功能,或者用 Claude 帮你做不熟悉的活儿(比如打磨一版设计),你很可能有大量的未知的未知。
你可能都不知道该问什么问题、不知道"好"长什么样、不知道历史上做过哪些相关工作、也不知道有哪些坑要避开。
要解决这个,你可以让 Claude 帮你找出这些未知的未知、并讲给你听。我喜欢直接用"盲点扫描 (blindspot pass)"和"未知的未知 (unknown unknowns)"这两个字面词。把"你是谁、你已经知道什么"这层上下文交代给它,通常很重要。
示例提示:
当我在一个充满未知的已知的领域里工作——那些"我只有看到了才知道该怎么定义"的判断标准——我喜欢让 Claude 陪我一起头脑风暴、做原型。
在原型阶段就尽早识别并把未知的已知说出口,价值极大;因为等到实现阶段才发现它们,代价会(相对而言)高很多。功能或规格上一点小改动,可能导致代码里天差地别的实现,而让你的 Agent 回退之前的改动也会更困难。
举个例子,你可能只是想看看"往某个界面框里加个按钮长什么样",而并不想为此接一条后端路由、或在前端多维护一份状态。
视觉设计对我来说是很难用语言讲清楚的东西,但我一看到就知道自己想要什么。这种情况下,我会让它给同一个 Artifact 出好几种设计方向。
我几乎每一次编码会话都以一段探索或头脑风暴开场。这帮我带着意图 (intent) 出发,去定义项目的范围。Claude 常常会找到一些我本会错过的高价值思路,偶尔也会"只见树木不见森林"。头脑风暴能防止我把范围设得太窄或太宽。
示例提示:
当我做完足够的头脑风暴后,很可能仍然残留着一些未知项。
这时,我会让 Claude 就任何未知或含糊之处来访谈我。让 Claude 访谈你的时候,尽量给它关于你问题的上下文,好引导它的提问。下面是一些例子。
示例提示:
有时候你没法把想要的东西描述得很细。比如你可能缺少相应的词汇,或者它复杂到你要费好大劲才讲得清。
这种情况下,最好的答案是一个参考物 (reference)。图表、文档或图片都可以,但最顶级的参考物是源码。
如果你有一个库,它以某种方式实现了某个东西,或者有一个你特别喜欢的设计组件,那就直接把 Fable 指向那个文件夹,告诉它去找什么——哪怕它是用另一种语言写的。
Claude Design 也是这么工作的。你不必递给它一个文件(当然你也可以这么做)。你可以把它指向某个你喜欢的网站上的一个模块,它会去读底层的代码,而不只是看截图。这样就能拿到关于标记 (markup)、结构、以及组件究竟是怎么搭起来的更丰富细节。
示例提示:
当我觉得自己可以动手实现了,我通常会让 Claude 先给我拟一份实现计划供我审阅,重点放在最可能发生变化的部分——比如让它梳理数据模型、类型接口 (type interface)、或 UX 流程。这样 Claude 就能把那些我可能真的需要改动的东西提前浮出来。
示例提示:
当我对计划满意后,我会新开一个会话,把各种 Artifact 塞进提示里。比如,我可能会传入一个规格文件和一个原型,让 Agent 去实现它。
但事实是,无论你规划得多充分,总有未知的未知潜伏着。Agent 在干活的过程中,可能会因为在代码里发现某个边界情况 (edge case),而不得不改换思路。
我会让 Claude Code 维护一个临时的 implementation-notes.md(或 .html)文件,把它做过的决定记录下来,好让我们从下一次尝试中学习。
示例提示:

交付一件东西时,最重要的环节之一是争取认同与审批 (buy-in and approvals)。在最终文档里搭建路演 (pitch) 和解说 (explainer) 类的 Artifact,能帮上忙:
示例提示:
一段漫长的工作会话之后,Claude 完成的事情,可能比我意识到的要多得多。光读代码 diff 只能让我对发生了什么有个浅浅的理解,因为很多行为都依赖于既有的代码路径。
在给我铺垫一堆上下文之后,让 Claude 就这次改动来考我一考,能帮我真正搞懂到底发生了什么。我只在满分通过测验之后才合并 (merge)。
示例提示:
Fable 的发布视频完全是由 Claude Code 剪辑的。这对我是个全新的领域,我绝算不上专家。
于是我从"我确实知道的东西"开始。我知道 Claude 能用代码来剪辑视频、给视频转写字幕,但我不确定它够不够准。于是我让 Claude 给我解释像 Whisper 这样的转写是怎么工作的,以及我能不能用 ffmpeg 精准地剪掉像"呃"这样的口头语或长停顿。
我想让 Claude 做一个和我说话的字词同步对齐的 UI,但不确定它做不做得到,于是我让 Claude 用 Remotion 加一份转写字幕做一个原型视频,看看行不行得通。
最后,视频本身看起来有点发闷 (muted),我知道这是调色 (color grading) 的问题,但我并不真的懂调色是什么。我第一次尝试是想让 Claude 做几个版本给我挑,可我意识到——在调色这件事上,我根本不知道"好"是什么样子。于是我换了个做法:让 Claude 教我认识调色,好发现我的未知项。
你可以在这里看到关于那部分更深入的讲解。
模型越强,用对方法能达成的就越多。当一个长周期 (long-horizon) 任务交回来的结果是错的,很可能意味着你需要花更多时间去定义你的未知项,或者拟一份"允许 Claude 在其中随机应变 (improvise)"的实现计划。
每一次解说、头脑风暴、访谈、原型和参考,都是在"修复它变得昂贵之前",用低成本弄清"你原本不知道的事"。
所以,开始你的下一个项目时,先让 Claude 帮你找到你的未知项吧。