Skip to content
// 0x
0x0C // 工具设计

设计经验的容器:AI Skill 的迭代过程

起点

“帮我生成今天的工作日报。”

一个简单的需求。AI 要从 git log、会话记录、会议纪要中汇总信息,写一篇格式规范的 markdown。一开始这就是一条指令,但随着每次使用逐步变成一份 SKILL.md。

第一版:日报 Skill

最初的日报 skill 骨架清晰,但实际使用中很快遇到三个问题。

rebase 污染日志

当工作分支 rebase 到 develop 后,develop 上的历史 commit 也会出现在 git log 中——那些 commit 根本不是今天做的,只是 rebase 重写了时间戳。

修复:加上 HEAD --not develop 过滤。

多次修正的噪音

同一个 bug 可能拆成 3 次 commit:

fix: add error check
fix: update status after tracking
fix: keep order_status unchanged

逐条列在日报里没有意义。一个修复拆成多次 commit 是常态,但日报反映的是”做了什么”而不是”commit 了几次”。

修复:要求 AI 按语义合并同类 commit。

多分支视野

仅看当前分支会遗漏项目整体动态——比如合作者今天合并了什么到 develop。

修复:同时采集 feature 分支、develop 本地、origin/develop 三路日志。

第二版:Git 工作流 Skill

日报稳定后,更深层的需求浮现:AI 做 git 操作时缺乏明确规则。

之前有一套安全代理脚本,强制只能在特定分支提交、禁止 push。但代理太严了,和实际工作流脱节。于是我们完整设计了一个本地 git 工作流。

逐步收敛的设计

起点是几个原则:提交只在私有分支完成、协作分支只做合并、冲突在缓冲区解决保护主线。

然后逐层展开层级关系:

main  ←  develop  ←  feature/xxx  ←  local/xxx

                       fix/xxx

每一层约束都来自讨论:

最终形成完整的 SKILL.md,7 个模块覆盖完整流程。

三个关键决策

保护现场 > 自动恢复

遇到脏工作区或冲突时不做任何自动处理——不 stash、不撤销、不丢弃。停住,报告用户,等人决定。这是最高原则。

提示驱动 > 自动执行

合并、推送、同步只提示不自动。时机由开发者决定——开发中段不想被打断,快合入时不需要同步。

按语义压缩 > 按次数记录

多条 commit 合并为一条概括性描述。这是 git log 和日报之间的语义鸿沟——git 记录的是操作过程,日报反映的是工作成果。

Skill 设计三原则

  1. Skill 是对话的沉淀物。不要一次性设计完美。从具体问题开始,每次遇到边界情况就加一条规则。
  2. 规则要可执行,不是口号。“注意安全”不是好规则。“操作前先 git status,脏工作区则停止”才是。
  3. 经验要跨项目复用。全局 skill 对所有项目生效——这是渐进的系统优化。

Share this post on:

Previous Post
工单系统的重生:从 Demo 到 WMS 集成
Next Post
三层防御:设计安全的危险操作