先把模糊问题摊开在画布上,再给问题起名字
一句含糊的抱怨还不是问题。先把碎片摊到 BaseHalf 画布上,用眼睛分组,只有该留下的证据才写入 upstream,再把起好名字的问题选给 Claude Code 或 Codex。
同事说「onboarding 感觉坏了」。你手里还没有一个值得拿去问 Claude Code 或 Codex 的问题。如果把这句话直接贴进 Agent Area,你会得到一段流畅的诊断,内容多半是模型对 onboarding 的既有想象。便宜的功夫在更前面:把你真正有的碎片倒上画布,看看哪些该坐在一起,然后才给问题起名字。
这是比较选项之前的那一步。你还没有选项,只有一团雾。
抱怨还不是问题
假设 Slack 里就这一句:onboarding 感觉坏了。周围其实已经有些边角料,但没有哪条算简报:
- 有两个人提到,欢迎页过后就离开了。
- 另有人说,接受了邀请,却始终看不到共享文件夹。
- 一个猜测:欢迎页文案让人看不懂。
- 另一个猜测:新工作区的默认权限写错了。
- 一条支持回复:「我昨天加入的,项目列表是空的。」
- 一段首次运行的日志摘录,再加上欢迎页截图。
这些并不指向同一个原因。把它们当成一个「onboarding 问题」,会掩盖你其实可能在看两种失败。
把碎片倒成卡片
用 BaseHalf 打开项目文件夹。建短笔记,别急着写成调查报告:
complaint.md:原话、是谁说的,此外什么都不写。symptom-welcome-bounce.md:有人在第一屏之后离开。symptom-empty-project-list.md:接受邀请后,共享文件夹一直不出现。guess-welcome-copy.md:也许是文案不清楚。guess-default-acl.md:也许新成员没有拿到默认项目的访问权。evidence-support-quote.md:支持回复原句,照实抄上。evidence-firstrun.log:日志摘录自成一个文件。screenshot-welcome.png:截图,作为普通文件待在画布上。constraints.md:这周动不了的东西(不重写欢迎流程、不加新的身份提供方)。whose-problem.md:新成员的问题,不是已经有工作区的管理员的问题。
每张卡片短到能挪。目的是看见零件,不是先写完调查。
像白板上的纸条,或自己用手画的思维导图那样拖开。原话放上面。症状一区,猜测一区,证据靠近它可能解释的症状,约束和「这是谁的问题」放到边上。然后把真正像的东西聚在一起。首次使用时的困惑(欢迎页跳出、文案猜测、欢迎页截图、首次运行日志)会漂向一边。更靠后的权限失败(空项目列表、ACL 猜测、支持回复)会漂向另一边。
这套摆法是给你看的。卡片位置和尺寸写在 .bh/ 下,通常不进 git,所以你可以一边改分组,一边不用把一个直觉变成合并冲突。

簇不是连接
板子一旦看起来像图,三种动作很容易混在一起。
| 动作 | 它是什么 | 它用来干什么 |
|---|---|---|
| 空间分组 | 卡片坐在哪、有多大,一般记在 .bh/ 下 | 让眼睛发现:两个症状也许不是同一个问题 |
| Upstream 连接 | 文件里的纯文本列表:Markdown frontmatter 的 upstream:,或 .bh/mirror/.../upstream.yaml | 该留下、并流入另一则笔记的上下文 |
| 选中 | 你为这次提问高亮的卡片或段落 | 此刻 Claude Code 或 Codex 在 Agent Area 里该看到的东西 |
视觉组织是座位。它不是语义关系,不是自动生成的思维导图,也不是画布替你建好的知识图谱。BaseHalf 不会给卡片自动分簇、给分组贴标签,或替你找出真正的问题。你自己挪,直到形状出现。
只有 A 确实该持续喂给 B 的时候才连线。比如,一旦有了 question-empty-project-list.md,如果支持回复和那截日志下周还该跟着这个问题走,就把 evidence-support-quote.md 和 evidence-firstrun.log 连进去。不要因为卡片碰巧坐在同一个角落,就给它们统统连线。坐在一起是直觉。一条线是在声称:上下文从这里流到那里。
先给问题起名字,再问那一簇
挪过几轮,雾常常会裂开。「onboarding 感觉坏了」底下至少藏着两个问得出口的问题:
- 为什么有人在欢迎页就离开?
- 为什么新成员接受了邀请,项目列表仍是空的?
这是不同的问法,证据也不同。挑那簇已经清楚到能起名字的。写一则终于成问题的短笔记,比如 question-empty-project-list.md:「新成员加入后看不到共享文件夹。邀请和默认 ACL 路径上,什么会导致空的项目列表?」
如果支持回复和 ACL 猜测应该一直贴着这个问题,现在就画上这些 upstream 连接。然后选中这则问题卡,加上属于它的证据和约束,不要把欢迎页那一簇也选上,也不要捎上剩下的猜测。选中内容进入 Agent Area,Claude Code 或 Codex 看到的是你为这次提问挑中的那一块。板上其余部分可以继续给你看,而不必倒进 prompt。

有了回答之后留什么
留下让下一小时更好想的东西:起好名字的问题、真正起作用的证据,也许还有一段短结论,写在同一则笔记里或旁边。如果它们该继续同行,再用 upstream 连上。
另一簇先搁着,等到你准备好给它起名字。没站得住的猜测可以删,也可以不理。别因为板子看起来整齐,就把每一个空间分组升级成永久连接。整齐堆着的剩余直觉,仍然是剩余直觉,只不过被写进了文件。
边界
画布不会替你发现真正的问题。它只是让碎片足够可见,好让你别再把它们当成同一件事。碎片写错了(支持回复说的是另一个产品表面,或日志来自一次成功的运行),你会给一个整齐的错误问题起好名字,模型也会流畅地回答它。空间分组是一种看的办法;它不是分析,也不是自动聚类出来的真相地图。
先把雾摊开。用眼睛分组。只有该留下的上下文才写进 upstream。给问题起名字,选中那一簇,然后再问。