BaseHalf
全部文章

把 AI 笔记留在文件里,而不是留在上一轮对话中

我们用普通 Markdown 笔记研究了 SemVer 2.0.0 的优先级,把来源写进文件,并在 Agent Area 里用 Claude Code 对照官方文本核对。会话结束后,这些笔记还在。

我想弄清一个很具体的版本顺序:1.0.0-beta.2 是否排在 1.0.0-beta.11 前面,以及 1.0.0+build 和 1.0.0 的优先级是否相同。聊天可以回答一次。我需要的是一本还能再打开的笔记,官方文本仍然挨着我自己写的解释。

我把官方的 Semantic Versioning 2.0.0 规范放进一个文件夹,附上一份简短的来源说明,再在 BaseHalf 0.6.0 里打开这个文件夹。文本来自 v2.0.0 文档,作者是 Tom Preston-Werner,许可是 Creative Commons Attribution 3.0。我没有改过这份文件。接着我用自己的话写了三则短笔记:主版本、次版本和补丁如何比较;两个预发布版本如何比较;以及构建元数据不会改变优先级。第四则 check.md 列出了我想排序的那些版本。

我把官方文本连到这些笔记,再把笔记连到这则核对问题,方法是把 upstream 列表写进 Markdown 的 frontmatter。画布上,同样的文件之间出现了连线。SOURCE.md 只记录规范从哪里来、按什么许可使用,它就放在官方文本旁边,但我没有连接它。靠近是给人看的。连接才是应当留下来的依据。

semver-research 文件夹的 BaseHalf 画布:左侧是 SOURCE 和官方 Semantic Versioning 2.0.0 文本,中间是我写的优先级笔记,右侧是核对问题;连线从官方文本通向笔记,再通向核对问题。

这些列表就写在文件里。我在 Card Detail 里用 Source 视图打开了 check.md。同一份文件的开头,普通的 YAML 里写着 semver-2.0.0.md、precedence.md、prerelease.md 和 build-metadata.md。Git 可以对比这段。打开这个文件的 Agent 也能读到。

Card Detail 以 Source 视图打开 check.md,上方是 frontmatter 里的 upstream 列表,下面是关于 SemVer 优先级的问题。

然后我选中核对卡片,在右侧的 Agent Area 里启动了 Claude Code。状态栏显示 Agents 此时看到的是 check。Agent Area 是会话运行的地方,它本身并不是 Agent。我请它阅读这个文件夹里的官方文本,给 check.md 里的版本排序,并说明 1.0.0+build 和 1.0.0 的优先级是否相同,引用规范原文;如果我的笔记和规范不一致,以规范为准。

它加载了 BaseHalf skill,读了这些文件,在 42 秒后,也就是 Asia/Shanghai 时间 18:05,给出了从低到高的顺序:1.0.0-alpha、1.0.0-alpha.1、1.0.0-alpha.beta、1.0.0-beta、1.0.0-beta.2、1.0.0-beta.11、1.0.0-rc.1、1.0.0。它也说明,1.0.0+build 和 1.0.0 的优先级相同。

同一块画布右侧的 Agent Area 中,Claude Code 已提交问题,加载了 BaseHalf skill,并列出了来自 SemVer 2.0.0 文本的官方优先级顺序。

我没有把模型的措辞当成最后结论。我自己打开了 semver-2.0.0.md,核对了里面的例子。第 11 节给出的就是这个顺序。第 10 节写明,判断优先级时应忽略构建元数据,所以只相差一个加号后缀的两个版本优先级相同;它们仍然是不同的版本字符串。就我问到的这些版本而言,我的笔记和规范一致。

我把这次核对写进新笔记 verified.md,并把官方文本和那则问题列为它的上游。卡片出现在同一块画布上,而且已经连好。Claude Code 的这次会话结束后,官方文本、我的笔记、问题和核对结果,都还是这个文件夹里的普通文件。

同一块画布在右侧的核对问题旁加入了 verified.md,连线从官方文本和问题通向它。

这不是一个会自动对整个资料库提问的检索系统,也不是会给笔记本做摘要的内置功能。状态栏里这次指向的选中项,只在窗口打开时存在。upstream 列表则留在文件里。即使我关掉对话、换一个 Agent,或者明天再打开,来源也还在笔记中。