BaseHalf
全部文章

把 Agent 上下文写进 upstream 列表,别塞进提示

在画布上连一条线,BaseHalf 就把纯文本 upstream 条目写进文件。Git 看得到。下一轮 Claude Code 或 Codex 也看得到。

我们以前每次新开 Claude Code,都要把那三份笔记再贴一遍。关系活在脑子里,或活在马上会关掉的聊天里。下一个人打开文件夹时,那些关系就没了。

在 BaseHalf 画布上,从卡片 A 连到卡片 B,表示 A 的上下文流入 B。A 是 B 的 upstream。画出这条线,BaseHalf 就把一条纯文本条目写进 B。Git 看得到这次改动。下一轮 Claude Code 或 Codex 打开的是同一份列表。这段关系不必再被塞进提示里。

画布上卡片互相连接,笔记连向目标文件的 upstream 线。

连接怎么表现

这是图,不是树。环是允许的。一项不能成为自己的 upstream。笔记里的 Markdown 链接仍是普通链接,不是连接。连接是你在画布上画出的线,或写进文件的列表。

从卡片的拖拽柄拖到另一张卡片即可连接。拖到空白画布上,BaseHalf 会新建笔记或草稿,并已经带上这条 upstream。卡片上的徽章会显示描述、Upstream 和 Downstream。Downstream 是根据谁连向这里算出来的,我们从不单独存一份。

Agent 和工具可以直接改这份纯文本列表。BaseHalf 以文件里写的为准。坏掉的条目会一直留着,直到你 Relink、Relink Everywhere,或 Remove。这是故意的:路径缺失本身仍是信号,直到你决定怎么处理。

列表写在哪里

BaseHalf 把列表写到哪里,取决于文件类型。

文件类型upstream 存在哪
Markdown 笔记Frontmatter 里的 upstream: 列表,路径相对工作区
其它文件.bh/mirror/<path>/upstream.yaml

Markdown 把关系放在你本来就会提交的正文旁边。其它文件在 .bh/ 下留一份镜像,这样就不必给每种扩展名发明一套 frontmatter。两种情况下列表都是普通文本。搜索找得到。diff 看得到。Claude Code 和 Codex 读它的方式,跟读文件夹里其它文件一样。

我们不再在提示框里重建“这个依赖什么”。依赖写在文件里。线画一次,下一轮会话一开始就带着它。