用途
Blindspot 面向这样一种场景:用户即将进入自己并不熟悉的领域。这类领域里存在两种盲区:未知的未知(用户不知道其存在的问题)和未知的已知(过于显而易见而未被写下的假设,以及用户确信但实际错误的事情)。该技能的目标是把前者转化为已知的未知,为后者命名,然后交回一张用户可以据此提问的地图。
边界
该技能在用户请求未提及的领域上横向铺开,每个领域一段;而 best-practices 技能则针对用户已经命名的主题深入展开。grilling 技能用于压力测试用户能够辩护的决策;Blindspot 则绘制用户尚无法决策的领域地图,因此它问的是探索哪个方向,而从不问选择哪个选项。它既不是教程,也不是计划。
工作流程
1. 侦察
事实是技能自身的职责,绝不交给用户。在写任何内容之前先进行扫描:
- 目标:请求所服务的目标,通过请求和仓库记录逐级向上追溯,直到穷尽。地图停留在仍然开放的最高层级;请求本身的措辞通常是最低层级。
- 前提:请求和仓库设计记录(ADR、文档、过往决策)视为已确定的内容,将其重述为问题。前提是想法层面领域的来源;文档和陷阱搜索则产生机制层面的内容。
- 仓库:使用 Claude Code 中的 Explore 智能体或 Codex 中的 explorer 子智能体,查找现有模式、约定和相邻解决方案。
- 工具与领域:用 find-docs 查找当前 API 和配置;用 Claude Code 中的 WebSearch 或 Codex 中的 web_search 查找陷阱(“X gotchas”“X common mistakes”)——陷阱存在于 issue 讨论和事后复盘中,而非入门文档里。
侦察要寻找的是从业者清单上会有、但请求从未提及的领域。当每个可能重排地图的领域都有其来源(侦察或某个前提),或有一条说明侦察未发现任何内容的记录时,侦察即告完成。
2. 展示领域
在任何提问之前,先给出一段用户可读的回复,不超过一页:
- 框架:请求视为理所当然的假设,以及会改变方法的信息缺失,以要点形式列出。这些就是未知的已知;为它们命名正是关键。用户用一个词或一个事实就能确定的前提留在这里;需要挖掘才能回答的前提则成为一个领域。
- 领域:编号,先按高度排序,再按答案对地图其余部分的重排程度排序。高度自上而下为:这个东西是做什么用的、什么算“更好”;它可能采取什么形态、谁负责什么;机制(API、限制、模式、代码接缝、工具选择)。只有当其上没有任何开放内容时,机制才成为领域;在此之前,侦察发现的机制只是它所回答的领域内的一行。想法层面:“模型是解决规则无法处理之事的分类器,还是重写文本的作者?”;机制层面:“提供方是否接受字符串枚举根模式?”每个领域一段:专家在此会问的问题、人们通常如何回答及原因、这个仓库或情境中什么让它变得棘手,并附上其来源:侦察或它所重述的前提。若请求已符合通常做法,用一行说明。“此处无重大未知”是有效结果;人为制造的担忧比简短的地图更快侵蚀信任。
3. 询问方向
在可用时使用 Claude Code 中的 AskUserQuestion 或 Codex 中的 request_user_input。
一个单选问题:按编号列出前 3 个未探索领域,外加“够了,交接”。每个选项是一个领域,其描述用一行说明该领域的缘由;每个选项都指向上述回复中解释过的领域。用户是在选择看哪里,因此标签保持不排序:不加“(推荐)”。自由文本回答可触及任何编号领域。
第 1 轮增加一个用过去时表述的事前验尸问题——“三个月后这件事失败了:是什么坏了?”——过去时能唤起前瞻性后见之明;“可能出什么问题”可测量地更弱。其答案常常点出真正的目标,因此据此重新排列领域。如果侦察后用户的目标或熟悉程度仍不清晰,第 1 轮还带一个校准问题。
“你来选”意味着取排名最高的领域,并将该选择记录为一个具名假设。
4. 挖掘,然后重复
将所选领域向下探索一个高度,绝不下探两个:目标层面的领域展开为它可能采取的形态;形态层面的领域展开为每种形态的构建成本。只有在机制层面,工具或设置选择才交给 best-practices 技能;其他任何内容都按同样方式向下侦察一层。以第 2 步的形式展示发现的内容(子领域加入编号地图,未选领域保留在地图上并重新排序),然后再次询问。当用户选择“够了”、某一轮没有发现新内容,或剩余内容在构建过程中学习更便宜时停止——并说明是哪一种。
5. 交接
以以下内容结束:
- 领域地图:已探索领域及其每次挖掘确定的内容;未探索领域,每个以通常做法作为默认值;具名假设——该技能通过猜测解决的每个开放点各占一条;引用侦察来源,以便用户深入挖掘。
- 精炼后的提示草稿,用户可发送:已探索领域内联解决,未探索领域列为带默认值的开放问题。
- 提供而非自动运行:用 grilling 技能压力测试现已可见的决策,通过 best-practices 获取建议,或进入计划模式。
每个已探索领域都要落入地图或提示草稿——一次不塑造任何内容的挖掘是浪费的一轮。
约束
- 只问侦察无法回答的问题:代码库或文档已能回答的问题会浪费一轮并侵蚀信任。
- 教人提问,而非精通。如果发现回复或交接超过约一页,就删减。
- 每个事实都基于侦察,而非训练数据:过时的事实会植入错误的已知的已知。问题除了它所重述的前提外不需要其他来源。