BaseHalf
全部文章

把核对时用到的条文,写在答案旁边

我们在 BaseHalf 文件夹里打开 RFC 9535,从官方 PDF 生长出一则笔记,核对 JSONPath 简写和带点号的成员名,再把答案连同确切的章节和原文写回同一页问题里。

我总是把名为 a.b 的 JSON 成员,和分两步走的路径搞混。我想把官方原句放在答案旁边,而不是只留在关掉就会消失的对话里。

我把 RFC 9535 的官方文本放进一个文件夹,再在 BaseHalf 0.7.0 里打开它。这份 RFC 的标题是 JSONPath Query Expressions for JSON,作者是 S. Gössner、E. Normington 和 C. Bormann,由 IETF 于 2024 年 2 月发布。我在 2026-11-14、Asia/Shanghai 时间从 RFC Editor 取回了 PDF 和 纯文本,留在文件夹里阅读,不会把整份文件重新发布。一份简短的 SOURCE.md 记录了这些事实。我还先写了 question.md,在核对原文之前,写下下面这个 JSON 值和两个初步判断:

{
  "a": { "b": 2 },
  "a.b": 1
}

我的第一个判断是:$.a.b 会选出 1,因为存在名为 a.b 的成员。至于怎样选出这个 1,我猜还是 $.a.b,或者也许是 $.a\.b。

我在 Card Detail 里打开这份 PDF,翻到第 2.5.1.1 节 Syntax,也就是第 41 页,选中以 $.foo.bar is shorthand 开头的那一句,然后使用 Grow branch。这会生成 rfc9535-note.md,它已经把 rfc9535.pdf 列为上游,并带有引用块和指向第 41 页的来源链接。产品把标题和引文截到了 $['f 这里。我没有事后把它改整齐。

我把两份官方文本和这则生长出来的笔记写进 question.md 的 upstream 列表,从而连上它们。画布上,同样的文件之间出现了连线。SOURCE.md 就放在旁边,但我没有连接它。靠近是给人看的。连接才是应当留下来的依据。

jsonpath-dotted-keys 文件夹的 BaseHalf 画布:左侧是 rfc9535.pdf 和 rfc9535.txt,中间是生长出的笔记,它连向问题,右侧是没有连线进入问题的 SOURCE.md。

Card Detail 打开 rfc9535.pdf 第 41 页的第 2.5.1.1 节,官方的简写原句已被选中,工具栏里可以看到 Grow branch 按钮。

我选中了问题这张卡片,并在 Agent Area 里启动 Claude Code。Agent Area 是会话运行的地方,它本身并不是那个 agent。我请它阅读 question.md 以及其上游列出的文件,对每个问题说明我的初步判断对不对,给出答案,并引用官方规则及章节编号,不要改任何文件。

它打开了这些文件,在 53 秒之后、18:26 Asia/Shanghai,指出我的两个初步判断都是错的。

同一块画布旁的 Agent Area 里,Claude Code 在 53 秒后给出了核对结论,并可见官方的简写原句。

我没有停在模型的措辞上。我自己又核对了官方文本里的同样几句。

  1. $.a.b 选出的是 2,不是 1。每一个 .name 都是单独的一步,所以这条查询等于 $['a']['b']。RFC 9535 第 2.5.1.1 节写道:"Thus, for example, $.foo.bar is shorthand for $['foo']['bar'] (but not for $['foo.bar'])."
  2. 要选出名为 a.b 的成员上的 1,查询是 $['a.b'],或者 $["a.b"]。$.a\.b 并不是合法的简写:member-name-shorthand 不允许 . 或 \。第 2.3.1.2 节说,名称选择器 "selects a member value whose name equals the member name M"。第 2.1 节说,实现 "MUST raise an error for any query that is not well-formed and valid."

我把这些核对过的答案,连同用到的章节号和原句,写回同一页 question.md,放在事先留好的标题下面,并把初步判断留在上面。在 Card Detail 里,Preview 显示的就是我明天还能再打开的那一页,答案和条文都在。Source 视图里,同一文件的开头是 upstream 列表:rfc9535.pdf、rfc9535.txt 和 rfc9535-note.md。

Card Detail 以 Preview 打开 question.md,初步判断仍在,核对过的答案写在下面,每一条都带着所用的 RFC 章节和原句。

同一文件的 Source 视图,frontmatter 里是 upstream 列表,下面的 Markdown 里是核对过的答案。

这并不是一个会自动给每个文件作答的笔记本,也不是内置摘要。状态栏里的选中只在窗口开着时有效。官方文本、生长出来的笔记、问题,以及带有条文的核对答案,都是文件夹里的普通文件。即便关掉对话,我仍然留着那一页:原句就写在答案旁边。