Glean 拾遗
日刊 /2026-07-08 / Claude Fable 使用心得:如何系统性地发现未知盲区

Claude Fable 使用心得:如何系统性地发现未知盲区

原文 x.com 收录 2026-07-08 06:00 阅读 13 min
AI 解读

作者分享使用 Claude Fable 进行 agentic coding 的经验,核心观点是“地图不等于疆域”——提示词与现实代码之间存在未知。他将未知分为四类(已知已知、已知未知、未知已知、未知未知),并提出一系列实用技巧来系统化地发现和减少未知:盲点扫描、头脑风暴与原型、面试式提问、参考代码、实施计划、实施笔记、推销文与测验。并以编辑 Fable 发布视频为例说明全过程。适合所有使用 AI 辅助编码的工程师。

原文 13 分钟
原文 x.com ↗
§ 1

A Field Guide to Fable: Finding Your Unknowns

By @trq212 · 2026-07-03T17:43:35.000Z

Fable 现场指南:发现你的未知数

作者 @trq212 · 2026-07-03T17:43:35.000Z

§ 2

A Field Guide to Fable: Finding Your Unknowns

Fable 现场指南:发现你的未知数

§ 3

Working with Claude Fable 5 keeps re-teaching me an old lesson: the map is not the territory.

The map, a representation of the work to be done, is my prompts and skills and context, it’s what I give Claude. The territory is where the work needs to happen, the codebase, the real world, its actual constraints.

与 Claude Fable 5 协作不断让我重学一个老道理:地图不是领土。

地图,是对待完成工作的表征,是我的提示词、技能和上下文,是我给 Claude 的东西。领土是工作实际发生的地方:代码库、真实世界及其实际约束。

§ 4

§ 5

The difference between the map and the territory is what I call unknowns. When Claude runs into an unknown, it needs to make a decision based on its best guess of what I want. The more work being done, the more unknowns Claude might run into

Fable is the first model where I find the quality of the work is bottlenecked by my ability to clarify its unknowns.

Importantly, just planning ahead isn’t always enough. You can find unknowns deep in implementation, or your unknowns may point you to the fact that you should actually be solving the problem in a different way altogether.

I've found that working with Fable is an iterative process of discovering my unknowns before, during, and after implementation.

I've made some example artifacts for finding unknowns here, but be sure to come back to build the intuition for when to use them.

地图与领土之间的差异就是我所谓的未知数。当 Claude 遇到未知数时,它需要基于对我意图的最佳猜测做出决策。完成的工作越多,Claude 可能遇到的未知数就越多。

Fable 是第一个让我发现工作质量受限于我澄清其未知数能力的模型。

重要的是,仅仅提前规划往往不够。你会在实现深处发现未知数,或者未知数可能指向这样一个事实:你应该彻底换一种方式解决问题。

我发现与 Fable 协作是一个在实现之前、期间和之后不断发现未知数的迭代过程。

我在这里制作了一些用于发现未知数的样例工件,但请务必回来建立何时使用它们的直觉。

§ 6

Knowing your unknowns

What are your unknowns? When I come to Claude with a problem I tend to break it down in 4 ways:

  • Known Knowns: This is essentially what is in my prompt. What do I tell the agent that I want?
  • Known Unknowns: What haven't I figured out yet, but I’m aware that I haven’t?
  • Unknown Knowns: What's so obvious I’d never write it down, but would recognize it if I saw it?
  • Unknown Unknowns: What haven't I considered at all? What knowledge am I not aware of? Do I know how good something can be?

了解你的未知数

你的未知数是什么?当我带着问题来找 Claude 时,我倾向于将其分解为 4 种方式:

  • 已知已知:本质上是我提示词中的内容。我告诉智能体我想要什么?
  • 已知未知:我尚未搞清楚,但我意识到自己还没搞清楚的事情?
  • 未知已知:那些太显而易见,我从不会写下来,但看到就能认出的事情?
  • 未知未知:我完全没有考虑过的事情?我不知道哪些知识?我知道某件事可以有多好吗?
§ 7

§ 8

The best agentic coders are good have relatively few unknowns. Watching someone like Boris or Jarred prompt, it is obvious to me that they know what they want in-detail. They are deeply in-sync with both the codebase and the model behaviors.

But they also assume unknowns. In many ways, reducing and planning for your unknowns is the skill of agentic coding. But luckily, this is a skill you can improve at, by working with Claude.

最好的智能编码者擅长拥有相对较少的未知数。观察像 Boris 或 Jarred 这样的高手进行提示,我明显看到他们详细知道自己想要什么。他们与代码库和模型行为深度同步。

但他们也假设未知数存在。从很多方面来看,减少未知数并为之规划就是智能编码的技能。幸运的是,这是一种通过与 Claude 协作可以提升的技能。

§ 9

Help Claude help you

帮助 Claude 帮助你

§ 10

§ 11

Instructing Claude is a delicate balance. If you are too specific, Claude will follow your instructions even when a pivot may be more appropriate. If you are too vague, Claude will often make choices and assumptions based on industry best practices that may not be a fit for your task.

When you don’t account for your unknowns you fail both ways. You don't know when the path will be filled with obstacles and you don't know when the path will be clear, but you still want Claude to veer.

Claude can help you discover your unknowns faster. It can search through your codebase and the internet extremely quickly and it knows much more about the average topic than you. It can also iterate from failure faster.

The most important part of this process is to give Claude context about your starting point. For example, tell it where you are in your thought process; disclose your experience with the problem and codebase; and let it work with you like a thought partner.

I've previously written about using HTML with Claude, in almost all of these cases, a HTML artifact is the best way to visualize and represent it.

In this article I detail some of the patterns I use to uncover these unknowns. I don't use every technique each time, but it's a useful collection of techniques to have.

向 Claude 下达指令是一种微妙的平衡。如果你过于具体,Claude 会遵循你的指令,即使转向可能更合适;如果你过于模糊,Claude 常常会基于行业最佳实践做出选择和假设,但这些可能不适合你的任务。

当你没有考虑自己的未知数时,你会两种方式都失败。你不知道路径何时会充满障碍,也不知道路径何时会畅通,但你仍然希望 Claude 偏离原路。

Claude 能帮你更快地发现未知数。它可以极快地搜索你的代码库和互联网,并且对一般主题的了解远多于你。它还能从失败中更快地迭代。

这个过程最重要的部分是给 Claude 提供关于你起点的上下文。例如,告诉它你在思考过程中的位置;披露你对问题和代码库的经验;让它像思想伙伴一样与你协作。

我之前写过关于使用 HTML 与 Claude 协作的文章,在几乎所有情况下,HTML 工件都是可视化和呈现它的最佳方式。

在本文中,我详细介绍了用来揭示这些未知数的一些模式。我并非每次都会使用每种技术,但这些技术集合起来很有用。

§ 12

§ 13

Pre-implementation

Blind Spot Pass

When starting work, one of the most useful things you can do is understand your blindspots. For example, if you’re writing a feature in a new part of the codebase or using Claude to help you with unfamiliar work like iterating on a design, you’re likely to have a lot of unknown unknowns.

You may not know what questions to ask, what good looks like, what historical work has been done or what potholes to avoid.

To do this, you can ask Claude to help you find your unknown unknowns and explain them to you. I like to use the literal words “blindspot pass” and “unknown unknowns”. Giving it context on who you are and what you know is usually important for

Example Prompts:

  • “I'm working on adding a new auth provider but I know nothing about the auth modules in this codebase. Can you do a blindspot pass to help me figure out my relevant unknown unknowns and help me prompt you better.”
  • “I don’t know what color grading is but I need to grade this video. Can you teach me to understand my unknown unknowns about color grading, so that I can prompt better?”

实施前

盲点检查

开始工作时,最有用的做法之一就是了解自己的盲点。例如,如果你在代码库的新部分编写功能,或者使用 Claude 帮助你完成不熟悉的工作(如迭代设计),你很可能会遇到很多未知未知数。

你可能不知道该问什么问题,不知道好的标准是什么,不知道已经完成了哪些历史工作,也不知道要避开哪些坑。

为此,你可以让 Claude 帮你找出未知未知数并向你解释。我喜欢使用“盲点检查”和“未知未知”这些字眼。向它提供关于你是谁、你知道什么的信息通常很重要。

示例提示:

  • “我正在添加一个新的认证提供商,但我对这个代码库中的认证模块一无所知。你能做一次盲点检查,帮我找出相关的未知未知数,并帮助你更好地提示吗?”
  • “我不知道什么是色彩分级,但我需要对这段视频进行调色。你能教我怎么理解关于色彩分级的未知未知数,以便我能更好地进行提示吗?”
§ 14

Brainstorms and prototypes

When I’m working in an area with a lot of unknown knowns, involving criteria I only know to define when I see it, I like to ask Claude to brainstorm and prototype with me.

It’s extremely valuable to identify and verbalize unknown knowns early during prototyping, because finding them out during implementation can be (relatively) expensive. Small changes in a feature or spec can cause drastically different implementations in code and it can be more difficult for your agent to revert previous changes.

For example, you may just want to see how a button added to a frame looks without having to wire up a backend route or maintaining additional state in the frontend.

Visual design is something that for me is difficult to articulate, but I know what I want when I see it. In these cases, I’ll ask for several design approaches to an artifact.

I also start almost every coding session with an exploration or brainstorming phase. This helps me start with intent to define the project’s scope. Claude often finds high-value approaches I would have missed and sometimes misses the forest through the trees. Brainstorming prevents me from setting too narrow or too wide a scope.

Example prompts:

  • "I want a dashboard for this data but I have no visual taste and don't know what's possible. Make me an HTML page with 4 wildly different design directions so I can react to them."
  • “Before wiring anything up, make a single HTML file mocking the new editor toolbar with fake data. I want to react to the layout before you touch the treal app."
  • "Here's my rough problem: users churn after onboarding. Search the codebase and brainstorm 10 places we could intervene, from cheapest to most ambitious. I'll tell you which ones resonate."

头脑风暴与原型

当我在一个包含大量未知已知的领域工作时——涉及的标准需要我亲眼看到才能定义——我喜欢让 Claude 和我一起头脑风暴和制作原型。

在原型阶段早期识别并口头表达未知已知非常有价值,因为在实现过程中才发现它们(相对)代价高昂。功能或规格上的微小变化可能导致代码实现截然不同,并且让智能体更难回退之前的更改。

例如,你可能只想看看按钮添加到框架后的效果,而无需连接后端路由或在前端维护额外状态。

视觉设计对我来说很难用语言表达,但我看到就能知道是不是我想要的。在这些情况下,我会要求对工件提供几种设计方案。

我几乎每次编码会话都会从探索或头脑风暴阶段开始。这有助于我带着意图出发,定义项目范围。Claude 常常能发现我错过的高价值方法,但有时也会只见树木不见森林。头脑风暴可以防止我设定范围过窄或过宽。

示例提示:

  • “我想要的这个数据仪表盘,但我没有视觉品位,也不知道可能实现哪些样式。给我做一个包含 4 种截然不同设计方向的 HTML 页面,这样我就能给出反馈。”
  • “在连接任何真实代码之前,先创建一个模拟新编辑器工具栏的单一 HTML 文件,使用假数据。我希望先对布局做出反馈,然后你再碰真实应用。”
  • “我的粗略问题:用户在上手后流失。搜索代码库,头脑风暴出 10 个我们可以干预的点,从最便宜到最雄心勃勃。我会告诉你哪些点打动了我。”
§ 15

Interviews

Once I’ve done sufficient brainstorming, I likely still have unknowns.

In this case, I ask Claude to interview me about any unknowns or ambiguities. When asking Claude to interview you, try and give it context about your problem to guide its questions. Here are some examples.

Example prompts:

  • "Interview me one question at a time about anything ambiguous, prioritize questions where my answer would change the architecture."

访谈

在进行了充分的头脑风暴之后,我可能仍然存在未知数。

在这种情况下,我会让 Claude 就任何未知或模糊之处对我进行访谈。要求 Claude 访谈你时,尽量给它提供关于问题的上下文,以引导其问题。以下是一些示例。

示例提示:

  • “一次问一个问题,关于任何模糊之处,优先询问那些我的回答会改变架构的问题。”
§ 16

References

Sometimes you can’t describe what you want in detail. For example, you might not have the language or it might be so complicated that it would take you quite a while.

In this case, the best answer is a reference. While you can include diagrams, documentation or pictures, the absolute best reference is source code.

If you have a library that implements something in a certain way or a design component you really like, just point Fable at the folder and tell it what to look for, even if it’s in a different language.

This is also the way Claude Design works. You don't have to hand it a file (although you can do that too). You can point it at a module on a website you like, and it reads the underlying code, not just the screenshot. This provides much richer detail around the markup, structure, and how the component is actually built.

Example prompts:

  • This Rust crate in vendor/rate-limiter implements the exact backoff behavior I want. Read it and reimplement the same semantics in our TypeScript API client.

参考

有时你无法详细描述你想要什么。例如,你可能缺乏相应语言,或者它太复杂,需要花很长时间。

这种情况下,最好的答案是参考。虽然你可以包含示意图、文档或图片,但绝对最好的参考是源代码。

如果你有一个以某种方式实现某功能的库,或者你非常喜欢的设计组件,只需将 Fable 指向该文件夹,告诉它要查找什么,即使它是用不同语言写的。

这也是 Claude Design 的工作方式。你不必给它一个文件(尽管你也可以这么做)。你可以指向你喜欢的网站上的一个模块,它会读取底层代码而不仅仅是截图。这提供了关于标记、结构以及组件实际构建方式的更丰富细节。

示例提示:

  • 这个位于 vendor/rate-limiter 的 Rust crate 实现了我要的精确回退行为。读取它并在我们的 TypeScript API 客户端中重新实现相同的语义。
§ 17

Implementation Plans

When I think I’m ready to implement, I tend to ask Claude to put together an implementation plan for me to review that focuses on the parts that might be most likely to change, for example to review data models, type interfaces or UX flows. This allows Claude to surface things I might actually need to alter.

Example Prompts:

  • Write an implementation plan in HTML, but lead with the decisions I'm most likely to tweak with: data model changes, new type interfaces, and anything user-facing. Bury the mechanical refactoring at the bottom, I trust you on that part.

实施计划

当我认为自己准备好实施时,我倾向于让 Claude 整理一份实施计划供我审阅,重点关注最可能发生变化的部分,例如数据模型、类型接口或用户体验流程。这让 Claude 暴露我实际可能需要修改的地方。

示例提示:

  • 用 HTML 写一份实施计划,但首先列出我最可能调整的决策:数据模型变更、新类型接口以及任何面向用户的内容。将机械性的重构放在底部,这部分我信任你。
§ 18

During implementation

Implementation notes

Once I am satisfied with my plan, I make a new session and pass any artifacts to the prompt. For example, I might pass in a spec file and a prototype and ask an agent to implement it.

But the truth is that no matter how much planning you do, there are always unknown unknowns lurking. The agent may find during its work that it needs to take a different tack due to an edge case it found in the code.

I ask Claude Code to keep a temporary ‘implementation-notes.md’ (or .html) file where it keeps track of decisions it makes so we can learn from our next attempt.

Example prompts:

  • "Keep an implementation-notes.md file. If you hit an edge case that forces you to deviate from the plan, pick the conservative option, log it under 'Deviations', and keep going."

实施中

实施笔记

一旦我对计划满意,我会创建一个新会话,并将任何工件传递给提示。例如,我可能会传入一个规格文件和原型,然后让智能体实现它。

但事实上,无论你做多少规划,总会有未知未知数潜伏着。智能体可能在工作中发现,由于代码中的一个边缘情况,它需要采取不同的策略。

我让 Claude Code 维护一个临时的‘implementation-notes.md’(或 .html)文件,记录它做出的决策,以便我们可以从下一次尝试中学习。

示例提示:

  • “保持一个 implementation-notes.md 文件。如果你遇到一个迫使你偏离计划的边缘情况,选择保守选项,记录在‘偏离’条目下,然后继续前进。”
§ 19

Post implementation

实施后

§ 20

§ 21

Pitches and explainers

One of the most important parts of shipping something is getting buy-in and approvals.  Building pitch and explainer artifacts in the final document helps:

  • Accelerate understanding when reviewers start with the same unknowns you did
  • Accelerate approvals when experts want to see you accounted for the unknowns and common failure points they would have anticipated

Example prompts:

  • "Package the prototype, the spec, and the implementation notes into a single doc I can drop in Slack to get buy-in. Lead with the demo GIF."

推介与解释

交付产品最重要的部分之一是获得认同和批准。在最终文档中构建推介和解释工件有助于:

  • 当审阅者从与你相同的未知数开始时,加速理解
  • 当专家希望看到你考虑了他们会预见的未知数和常见失败点时,加速批准

示例提示:

  • “将原型、规格和实施笔记打包成一个文档,我可以丢到 Slack 里以获得认同。以演示 GIF 开头。”
§ 22

Quizzes

After a long working session, Claude might have accomplished a lot more than I realized. Reading the code diffs can only give me a light understanding of what happened, since much of the behavior will depend on existing code paths.

Asking Claude to quiz me about the change after giving me a bunch of context helps me understand what happens. I only merge after I pass the quiz perfectly.

Example prompts:

  • “I want to make sure I understand everything that's happened in this change. Give me a HTML report on the changes for me to read and understand with context, intuition, what was done, etc. and a quiz at the bottom on the changes that I must pass.”

测验

经过长时间的工作会话后,Claude 可能完成了比我意识到的多得多的内容。阅读代码差异只能让我对发生的事情有浅层了解,因为很多行为取决于现有代码路径。

让 Claude 在给我一堆上下文后,就变更向我提问,这帮助我理解发生了什么。只有完美通过测验后我才会合并。

示例提示:

  • “我想确保我完全理解此次变更中发生的一切。给我一份 HTML 报告,说明变更内容,包含上下文、直觉、做了什么等,并在底部附上我必须通过的关于变更的测验。”
§ 23

How this comes together: launching Fable

The launch video for Fable was edited entirely by Claude Code. This was a new domain for me and I’m by no means an expert.

So I started with what I did know. I knew that Claude could use code to edit videos and transcribe them, but I wasn’t sure if it was accurate enough. I then asked Claude to explain to me how transcription like Whisper worked, and whether I would be able to accurately cut out things like ums or large pauses using ffmpeg.

I wanted Claude to create a UI that was timed with the words I was saying, but wasn’t sure if it would be able to so I asked Claude to create a prototype video using Remotion and a transcription to see if it would work.

Finally, the video itself looked a bit muted, which I knew was the result of color grading but I didn’t really know what color grading was. My first pass attempt was to try and get Claude to do a few variations to pick, but I realized that I didn’t know what “good” looked like when it came to color grading. So instead, I asked Claude to teach me about color grading to discover my unknowns.

You can watch a more in-depth explanation on that here.

整合应用:Fable 发布

Fable 的发布视频完全由 Claude Code 编辑完成。这对我是个全新领域,我绝非专家。

所以我从我知道的开始。我知道 Claude 可以用代码编辑视频并转录,但我不确定它是否足够精确。于是我让 Claude 给我解释像 Whisper 这样的转录是如何工作的,以及我能否用 ffmpeg 精确剪掉像“嗯”或长时间停顿之类的内容。

我希望 Claude 创建一个与我说的话时间同步的 UI,但不确定它能否做到,所以我让 Claude 使用 Remotion 和转录创建一个原型视频,看看是否可行。

最后,视频本身看起来有点暗淡,我知道这是色彩分级的结果,但我其实不知道什么是色彩分级。我第一遍尝试是让 Claude 制作几个变体供我选择,但我意识到我不知道色彩分级中“好”的标准。于是,我转而让 Claude 教我关于色彩分级的知识,以发现我的未知数。

你可以在此处观看更深入的解释。

§ 24

Matching the Map and Territory

The better models get, the more you can achieve with the right approach. When a long-horizon task comes back wrong, it's likely you need to spend more time defining your unknowns or creating an implementation plan that allows for Claude to improvise through them.

Every explainer, brainstorm, interview, prototype, and reference is a cheap way to find out what you didn't know before it gets expensive to fix.

So start your next project by asking Claude to help you find your unknowns.

匹配地图与领土

模型越好,你越能通过正确的方法取得更多成就。当一项长周期任务的结果不理想时,很可能你需要花更多时间来定义未知数,或者制定一个允许 Claude 在其中即兴发挥的实施计划。

每一个解释、头脑风暴、访谈、原型和参考,都是在问题变得昂贵之前发现你不知道的东西的廉价方式。

所以,开始你的下一个项目时,先让 Claude 帮你找到你的未知数。

打开原文 ↗