跳转到内容

种子园

想法常常还在酝酿:不属于任何仓库,也许永远不需要代码。种子就是这样的想法,放在全局的种子园里,有自己的 marimo notebook;想清楚了,再种进某个仓库,变成普通的 idea。

arb seed new rank-schedule "LoRA 的秩随层深度变化" --metric "同参数量下的 GLUE 平均分"
marimo edit ~/arboria/seeds/rank-schedule.py # 或在 VS Code 里用 marimo 扩展打开
arb seed list # 最近编辑的在前;--all 含已放弃的
arb seed set rank-schedule --hypothesis "浅层需要更高的秩"
cd ~/code/lm && arb seed plant rank-schedule # 在这个仓库里建 idea
种子 loss-spikes 的 notebook:一句话想法、假设、指标,然后是观察、猜想,一个画 |m/√v| 的玩具实验,最后一个给 Claude 的待办
种子 notebook(演示数据):观察、猜想、一个玩具实验,最后给 Claude 留了一个查文献的待办。
  • 位置是 ~/arboria/,环境变量 ARBORIA_HOME 可以改。任何目录下的第一个 arb seed …(以及仓库外的 arb ui、arb install-claude --home)会自动建好它,并打印一行说明位置。
  • 里面是 seeds/<名字>.py(种子 notebook,普通文件,好找好打开)和 .arboria/(和项目一样的账本和备份仓库)。种子园本身不是 git 仓库。
  • 种子的字段:名字(规则和 idea 一样)、一句话想法(≤300,可空)、可选的假设(≤300)和指标(≤200)、状态(思考中 / 已种下 / 已放弃)、种在哪里(可以有多处)、创建和最近编辑时间(notebook 文件改过也算)。

arb seed new / set / drop / revive / plant 在 Claude Code 里会被拒绝,arb install-claude --home 也把它们设为 deny。Claude 可以读:arb seed list、arb seed show、种子 notebook。

arb seed plant NAME [--repo PATH] [--as IDEA] [--hypothesis T] [--metric T] [--again]
  • 目标仓库默认是当前目录所在的仓库,必须已经 arb init。种子里没有假设和指标时,用 --hypothesis / --metric 给出。
  • 它走和 arb idea new 完全一样的路径:从主 worktree 的 HEAD 建分支、worktree 和 notebook。
  • 新 idea 的 notebook 开头写着“来自种子 NAME”和种子 notebook 的路径,下面一个折叠的“种子里的思路”里是种子 notebook 的全部 markdown cell。代码 cell 不复制:它们可能假设了别的环境。
  • 种子变成“已种下”,两个账本里各记一条事件。一个种子默认只种一次;--again 可以再种进别的仓库(或换个名字),每处都记下。
种下后的 idea notebook:rank-schedule,假设、指标、来自种子的链接,下面展开的“种子里的思路”
种下后的 idea notebook:开头链接回种子,种子里的 markdown 收在“种子里的思路”里。
  • arb seed drop NAME:放弃一个种子,notebook 留着。
  • arb seed revive NAME:改主意了,让已放弃的种子回到“思考中”。只对已放弃的种子有效;种在哪里的记录不变。

from arboria import lab 认得出这是种子(文件在 <种子园>/seeds/ 下):

  • lab.todo("…") / lab.todos():待办记在种子园的账本里,给在 ~/arboria 里打开的 Claude Code 会话。
  • lab.metric("…") 改种子的指标;lab.conf 拒绝(种子没有置信度)。
  • lab.run、lab.get、lab.runs、lab.compare、lab.fork、lab.prune 报错,提示先 arb seed plant NAME --repo …(已经种下的会说种在了哪里)。
  • 自定义命令只能用全局命令(~/.config/arboria/commands/)。命令里 ctx.idea 是 None,ctx.seed 有 name、gist、hypothesis、metric、notebook。

arb ui 在任何仓库之外运行(或 arb ui --home)打开种子园:顶部是三种状态的个数,下面是种子卡片(按最近编辑排序:名字、状态、一句话想法、假设、种在哪里、marimo edit 命令和 VS Code 链接),已放弃的折叠在最后(每个旁边是 arb seed revive NAME 的命令文本),右边是等 Claude 的待办。和项目看板一样只读。

种子园看板:思考中 3、已种下 1、已放弃 1;四张种子卡片;右边一个等 Claude 的待办
种子园看板(演示数据)。

在仓库里,arb ui 仍然是项目看板,标题下多一行灰字“种子园:N 个在思考中 · arb ui --home”。

arb install-claude --home # ~/arboria/.claude/settings.json 和 ~/arboria/CLAUDE.md
cd ~/arboria && claude
  • settings.json:同样的 SessionStart hook;deny 集群命令、arb approve、arb lesson accept、会写种子的 arb seed new/set/drop/revive/plant,以及对 **/seeds/** 和 **/.arboria/** 的编辑(读不受限)。
  • CLAUDE.md:只有一个 arboria 区块,写着种子园的规则;区块外是你的。
  • hook 在种子园里注入:三种状态的个数、最近编辑的 5 个种子和它们的一句话想法、未完成的待办。arb status 在种子园里显示同样的内容(不截断),arb todo list / done 是种子的待办。