Find unknowns
Finding-Your-Unknowns 方法论(Thariq《A Field Guide to Fable》):用四象限诊断 + 八件仪器(盲点扫描 Blindspot Pass / 多方向原型 / 访谈 Interview / 参照物 References / 可变项置顶的实现计划 / 偏离笔记 implementation-notes / 讲解文档 Pitch / 测验 Quiz) 把任务中的未知转化为明确决策。ONLY use when the user explicitly invokes the methodology or one of its techniques by name — e.g. 盲点扫描 / blindspot pass / 找未知 / 发现未知 / unknown unknowns / 四象限 / 采访我 / interview me / 考考我 / quiz me / find-unknowns / 完整流程走一遍. Do NOT auto-trigger just because a task seems vague, large, or unfamiliar — without an explicit request, handle the task normally without this skill.From its SKILL.md
npx -y skills add dreamitclean/find-unknownsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.0 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it
Find Unknowns — 把未知转化为决策
核心模型
用户给你的 prompt、上下文、记忆是地图;真实的代码库、文档、约束、评分标准是疆域。 两者之间的差就是未知,工作量越大,撞上未知、只能靠猜的地方越多。未知分五类:
| 类型 | 定义 | 主治仪器 |
|---|---|---|
| Known Knowns | 用户已写进 prompt 的 | —— |
| Known Unknowns | 用户知道自己没想清的 | ③ 访谈 |
| Unknown Knowns | 显而易见到懒得说、见了才认得的 | ② 原型 ④ 参照 ③ 访谈 |
| Unknown Unknowns | 完全没想到的 | ① 盲点扫描 ⑧ 测验 |
| 假 Known Knowns | 以为知道、其实是错的 | ⑧ 测验 |
第五类最危险:错误的自信不会触发任何查证,只有对抗性的测验能把它炸出来。 四象限表永远是事后才填得出来的——unknown unknowns 按定义列不出来, 所以八件仪器是八种探测器,每种照亮特定象限;产出的不是一张填好的表,而是被转化成决策的未知。
先定位,再开火
被调用时先判断三件事,再动手:
- 用户点名了单件仪器("盲点扫描"、"采访我"、"考考我")→ 只跑那一件,别把全流程强加给人。
- 用户要完整流程 → 按目标任务的阶段裁剪(见第 3 条)。
- 目标任务处于什么阶段:
- 未开工 → ① ② ③ ④ ⑤
- 实现中 → ⑥(补做 ① ③ 也常有价值)
- 已完成/已交付 → ①(交付风险向)③ ⑦ ⑧
铁律
- 先勘察疆域,再谈未知。 盲点扫描的全部价值来自证据:文件时间戳、需求文档原文、 代码实际行为、依赖清单、声明与实现的对照。不读疆域就输出"你可能没考虑测试/文档/边界情况" 式的通用清单等于星座运势——哪个项目套上都成立,用户读完毫无行动可做。 每个发现必须附上你在疆域里亲眼看到的具体证据。
- 访谈问真人,别自问自答。 有 AskUserQuestion 就用它(每批 ≤4 题;每个选项写明 "选它意味着后续怎么变")。在无法交互的环境(子代理、批处理、后台任务)里, 把问题成文列出、逐题注明"这个答案会改变什么",留给用户回答——代替用户作答会把 猜测伪装成事实,恰好制造这个方法要消灭的东西。
- 方法不是仪式。 每件仪器都要有靶子;没靶子就明确跳过,并在收尾说明跳过原因。 宁可只跑两步跑出真发现,不要八步全走走成表演。
- 产出是决策,不是清单。 每个发现的归宿要么是一次行动(修复/加警告/补文档), 要么是抛给用户的一次明确取舍。收尾时按此逐条对账,没有归宿的发现等于没发现。
八件仪器
① 盲点扫描 Blindspot Pass
- 靶子:开工前的 unknown unknowns;或已完成任务的交付风险。
- 做法:先动用工具勘察疆域(读需求原文、
ls -la看时间戳、翻代码、对照声明与实现), 再输出按危害排序的发现:🔴 已在造成/将造成实际损失,🟡 有条件触发,🟢 可代办的核对项。 每条发现 = 一句话结论 + 疆域证据 + 建议归宿。 - 特别留意"分叉"类问题:文档说的 ≠ 代码做的、生成物 ≠ 生成脚本、README ≠ 依赖清单、 新版 ≠ 归档版。地图与疆域的分叉用户几乎永远自己看不见,是含金量最高的发现。
② 多方向原型
- 靶子:unknown knowns——用户说不出、见了才认得的标准(审美、交互、报告结构)。
- 做法:给 3–4 个彼此差异极大的方向(假数据即可,不接后端),让用户"反应"而不是"描述"。 视觉类用 HTML。用户的反应词("这个感觉对,但是……")就是挖出来的未知,原话记下来。
③ 访谈 Interview
- 靶子:known unknowns + 用户懒得说的 unknown knowns。
- 做法:见铁律 2。问题排序标准只有一条:答案会改变架构或计划的优先。 问出关键事实后立即复述其后果(例:"既然已经交付,后半程全部改为收尾形态"), 让用户有机会纠正你的理解。
④ 参照物 References
- 靶子:用户描述不出来的需求。
- 做法:请用户指一个现成的东西——最好是源码(跨语言也行),读它的实现语义而不是外观截图, 然后复述"我理解你要的是 X 的这几个性质",让用户确认或删改。
⑤ 实现计划(可变项置顶)
- 做法:计划按"用户最可能改的决定"排序——数据模型、接口、用户可见行为放最前; 机械性重构压到最底并注明"这部分请信任执行"。用户的评审时间应该全花在会变的地方。
⑥ 偏离笔记 implementation-notes.md
- 做法:实现期间维护一个笔记文件。凡被迫偏离计划的决定:选保守方案 → 在
Deviations下记一条(现象 / 选择 / 理由)→ 继续干,不阻塞等指示。收尾时把笔记喂给 ⑦, 并提示用户哪些条目该进下一轮的 prompt 或长期记忆。
⑦ 讲解文档 Pitch
- 做法:把原型、spec、偏离笔记打包成一份给他人看的文档,开头放结论和演示。 目的:让评审者从你的终点起步,而不是重走一遍你趟过的未知。
⑧ 测验 Quiz
- 靶子:收工后残留的 unknown unknowns + 假 known knowns。
- 做法:从真实承重决策出题——"为什么这样初始化"、"这个符号为什么要翻转"、 "这两个失败模式是什么关系",4–8 题,不出记忆性琐碎题。用户作答后严格批改: 满分才算通过。答错的逐题讲透(现象 → 机制 → 直觉),并单独标注哪些题属于 "假 known known"(答得自信且错)——那是最需要用户警惕的信号。
收尾交付(完整流程时)
用两张表收口,让用户一眼看到方法兑现了什么:
- 步骤命运表:八件仪器各自跑了还是跳了,各一句话原因。
- 四象限战果表:本轮每个象限挖到了什么、用的哪件仪器、每个发现的归宿(行动 / 取舍)。
What ships with it: 9 files
13.3 KB alongside SKILL.md, 2 of them executable