前几天干了一件很土的事:把本机 ~/.codex 里的会话记录扫了一遍。
不是怀旧,也不是做数据面板。就想看看自己到底在哪些地方反复浪费时间。
猜也猜得到。真正耗人的不是某次代码改得难,是一堆小动作每天都得来一遍:
git status、git diff、glab api、glab mr- 查 CI 第一个挂掉的 job
- 远端主机查 SSH、PATH、Tailscale、权限
- 判断这次改动该跑哪组测试
- release / deploy 前确认 SHA、workflow、artifact
- 中途续会话重新捋 issue、branch、MR
这些事都太小了,小到你懒得专门去管。但就是因为小,才一直被放过。结果就是每天泡在这些手工胶水里。
别急着写工具 #
我以前也这样——看见重复就觉得该写脚本。后来发现这一步常常太早。
很多重复不是命令本身重复,是判断过程重复。比如 CI 挂了,真正该固化的不是某条 gh run view,而是:
- 先确认 run 和 head SHA
- 找第一个挂掉的 job
- 把有效错误截出来
- 再判断是 workflow 的问题、依赖的问题、测试还是代码
一上来就写个大工具,容易把错误假设焊进去。轻一点的做法是先写成 skill:什么时候用、最小几步、别干什么、输出什么。
skill 不是百科全书,就是张便签——让 agent 少走一条死路。
flowchart LR A[Session history] --> B[Repeated friction] B --> C[Small skill] C --> D[Run on real tasks] D --> E[Script only when repeated] E --> C
最后只留了这几个:
agent-preflight:开工前读真实 repo 状态,不靠印象gitlab-mr-context:用glab api拉 issue / MR / pipeline / notes,稳得多ci-first-failure:先找第一个真实失败点,再动代码path-verify:按改动的文件选最小验证命令release-deploy-preflight:部署前确认 full SHA、workflow、artifact、健康检查remote-health:远端主机先查 SSH、PATH、服务、锁和 Tailscale
名字都不酷,好处是不用想就知道该什么时候用。
skill 先行,脚本后补 #
还有一个教训:别一上来就给每个 skill 配脚本目录。
很多流程写个 SKILL.md 就够用了。path-verify 不是替你跑测试,是提醒你按变更路径选最小检查。让它先跟 agent 在真实任务里跑几轮,自动化等确认了再说。
脚本只干一类事:已经确定重复、确定机械、确定低风险的。
这轮我只加了一个——把 repo 里的 skills 链接到用户目录:
scripts/link-user-skills.shWindows 补了个 PowerShell 版:
.\scripts\link-user-skills.ps1中间踩了个坑:软链接方向。
正确方向是 repo 放真实文件,用户目录放链接:
~/.agents/skills/glab -> /path/to/repo/skills/glab这样 repo 能提交真实内容,本机 Codex 也能直接用。搞反了就糟了——repo 里只剩一个指向 ~/.agents 的链接,推上去别人拿不到内容,Git 还以为原文件被删了。
让它跨机器能跑 #
我常年在 macOS、Windows、远端之间切。skill 要是只在一台机器上能用,价值直接打折。
所以本机搞完之后,把 repo 同步到 my-win,Windows 上也跑同一套维护。PowerShell 版用的是 directory junction 而不是 symlink——Windows 上建 symlink 经常跟权限干架,junction 对目录链接已经够用了。
挺琐碎的一步。但不做的话,工作流沉淀很快退化成一台机器的偏方。
我现在这样想 #
做了这轮以后,几个想法慢慢变硬了。
先从会话里找重复,别从想象里设计系统。如果 git status、glab api、ssh、pnpm test 真的是高频,就从它们开刀。别为了"流程治理"编一套没人用的东西出来。
skill 要短。一个只堵一个口子。它唯一的作用是让 agent 少问一次、少查一次、少猜一次。别往里面塞百科全书。
脚本只做机械活——链接 skills、采 CI 日志、远端健康检查。产品判断、风险边界、要不要部署,该留人的确认就留,至少留个显式 preflight。
错误得回炉。软链接方向我一上来就搞反了。修完以后经验不能只停在对话窗口里,得落到脚本和 README 里,不然下次还犯。
最后留下的 #
不多:
- 几个短 skill
- 一个 Bash 链接脚本
- 一个 PowerShell 链接脚本
- 一次 Windows 同步确认
- 一条规则:repo 放真实 skill,用户目录放链接
够了。
越来越觉得,AI coding 的工作流不是造一个大平台。是把最烦人的五分钟,一遍一遍地拿掉。每次少一点,系统就轻一点。这些小规则攒够了,agent 才像是在一个配好的工程环境里干活,而不是每次从野地里重新开路。