Notes · 2026.04.04

一次会话一个仓库

第二个必须点名。

1 min · tools

这台机器上同时躺着全站、智能体、文本训练、视觉、评测、论文、建模。打开 ~/Projects 能数出一串根目录,每个根有自己的锁文件和完成标准。一次会话只认一个主仓库。第二个必须被点名,否则默认还在上一个里改。

不要把 A 的 lint、目录结构、commit 习惯套到 B。这个站是 Jekyll + al-folio,构建走 bundle exec,内容在 _posts/ 和 _stories/。隔壁前端可能是 pnpm-lock.yaml,训练仓可能是 uv.lock。我在站点会话里敲过 pnpm dev,终端报没有 package.json 的脚本;反过来在 pnpm 仓库里敲 bundle exec,又会去找不存在的 Gemfile。工具链跟仓库走,不跟我顺手的那个栈走。

完成标准更不能混。测试绿勾不去验收训练,loss 不去验收网站。这个站「做好了」的意思是:真用户路径能走通,点、打字、跳转,同一份状态在首页、故事页、联系页一致;窄屏和桌面都看过。训练仓「做好了」是划分无泄漏、数字能指到脚本和 seed。把一边的绿灯拿去签另一边的完成,是假完成。我写个人站的时候,经常被课设和国创打断;打断回来,要先确认自己还在 bosprimigenious.github.io 里,再继续改 permalink 或照片路径。

混成仓库按当前这一刀分型。干涉仪那种仓里同时有硬件、CV、Web;有的仓同时有全站和评测。标签是仓库的总称,验收看这一次请求在干什么。我改这个站的 blog,验收是汉字写够、事实能对上简历、页面能编出来;不要用模型 loss 来判断一篇关于西土城路的笔记写没写完。同样,课设那一周仓库根是作业,验收是程序能讲、边界有测试,不要把站点预览没报错当成课设过了。

一次会话一个仓库,说起来像纪律,落地是工作目录和心理上下文。agent 会记住上一轮的文件树。你让它「按惯例改」,它可能把 TextGuard 的论文口径搬进 _posts,或者把站点的 permalink 规则套到智能体产物上。我吃过一次:会话里刚改完简历故事页的 weight,紧接着让它去改检测平台的超时;它把「文档不能超证据」写进了前端提示文案。提示文案要短,故事页才需要那句。点名第二个仓库,等于把上下文清掉一截,强迫双方重新读现场。

时间也按仓库切。课设截止和答辩撞周的时候,我没有把三件事开在同一会话里并行「加速」。并行的是日历,不是 cwd。站点要上新页,单独开一轮,进 bosprimigenious.github.io,改完就停。国创演示要重录,进项目仓,冻结数据,再改话术。作业要交,进课设目录,先保证能跑。混在一起的那些晚上,git status 会变得很难看:未跟踪的照片、半截 typst、一份误放的 notebook,最后谁都不敢 commit。

分型这件事我以前讲得太抽象。抽象的时候人会点头,然后继续用测试绿勾去签训练。训练仓要看划分有没有漏、数字能不能指到脚本和随机种子。个人站要看真用户能不能点完、窄屏会不会把汉服图挤没、页脚路名还在不在。课设要看程序能不能讲、边界有没有测。三套标准不能共用一张清单。共用了,最快完成的那项会把另外两项冒充成完成。冒充在撞周尤其严重:演示能跑,不等于作业能交;作业能交,不等于首页数字还指得回简历。

我吃过把论文口径搬进前端提示的那次之后,给自己加了一条更笨的检查。准备切仓时,先把上一仓打开的文件合上,再把终端里的当前目录打出来看。看完,用一句话说这一刀的完成标准。说不出来,就还没准备好切。说得出来,才点名第二个仓库。点名要带路径,不能只带外号。外号会让人捡到同名的旧仓。旧仓的锁文件可能还是另一种安装器。安装器一旦跟错,半天会耗在「为什么这条命令在这边能跑、在那边不能」。能跑的那边往往是上一个会话的幽灵。

日历并行、会话不并行。这句话是从课设和路演撞周里逼出来的。那一周我试过同一个对话里同时改作业、改演示、改站点。对话记得三套目录树,改出来的东西互相串味:作业说明里出现站点的永久链接规则,演示备注里出现简历汇总函数的名字。串味要删。删比当时「加速」省下的时间更多。后来改成三轮短会话。每轮只进一个根,只交一种产物。产物交了就停。停的时候把未跟踪文件看一眼,别把照片和笔记本文件丢进错仓。错仓的提交很难解释,也很难回滚给老师或评委。

站点仓的产物是页面。页面要能在本地指定端口打开,要能看见自己刚保存的那篇。看不见,先查是不是还在上一个仓的预览里。预览串仓和会话串仓是同一类错。我现在的做法很笨。开终端先问当前目录。看到家目录或看到一串仓库的父目录,就先切进去。看到目标根,再读这个仓库的说明、读我、读依赖表、读站点配置。读完再让人动手。第二个仓库出现在对话里,我会把上一轮的假设作废。同一台机器可以有很多仓,一次会话不能有很多主仓。这条限制看起来慢,实际上少把这边的绿勾签给那边。慢下来的那几分钟,比假完成便宜。