一键导入
commit-lineage
commit message 必带 lineage 锚点——若改动来自 spec / lesson / 决策原文,message 必须引用源路径。Use when 准备 git commit、用户说「提交」「commit」「频繁 commit」、或起草 commit message 时。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
commit message 必带 lineage 锚点——若改动来自 spec / lesson / 决策原文,message 必须引用源路径。Use when 准备 git commit、用户说「提交」「commit」「频繁 commit」、或起草 commit message 时。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
调研开源 repo 看「可偷什么」时,用这个流程——克隆读全源、按 ROI 排清单、审视现有系统、偷抽象不偷代码、融入现有机制不做加法。Use when 用户发 GitHub 链接 + 问「可以偷师 / 借鉴什么」,或你提议要参考外部项目。
Session 收工标准 SOP——任何路径触发「收工」(reaction ✅ / 文字「收工 / wrap up / 闭包」/ cron 自动)都走同一动作链:自测 → commit(含受保护路径 override 规则)→ 清过程产物(临时 spec / debug 输出 / dry-run 文件 / 中间 patch)→ 报 commit hash + 清理清单。Use when 用户说「收工 / 闭包 / wrap up / OK 收工 / 结束这一段」,或 ✅ reaction 触发 inject 含「收工」字样。
Bug 修复 / 排查场景,连续 2 次假设或 patch 没命中根因时强制停手出 audit。Use when 同一 bug 已经试过 ≥2 次修复、症状仍在或换了形态再现、即将动「第 3 刀」时;触发关键词:「还是有这个问题」「又出现了」「同样的报错」「再试一次」「这次应该」。不适用于一次就 reproduce + 一次修好的场景。
存档目录,非可用 skill。
何时调 AskUserQuestion 工具(出 Slack Block Kit 选择卡)vs 何时直接做 / 文字反问。Use when 用户指令含「帮我看下 / 可以吗 / 你看着办 / 哪个 / 选 / 用 X 还是 Y」等歧义表达;或动作不可逆(push/删/对外发)且有多个等价方案;或同一指令有 ≥2 种合理解读且代价差异大。Skip when 自己能 grep/读文件查到、常规决策、thread 近 5 条已有就近答、cron worker。
改动开工前强制评估爆炸半径,避免「修一漏二 / 头疼医头」。Use when 改动涉及:删除文件/符号、重命名、路径迁移、接口签名变更、状态机修改、短路逻辑修正、配置 key 改名,或用户原话含「改 X / 删 X / 重命名 / 迁移 / 重构 X / 修这个 bug」+ 该 X 在多处被引用。不适用于纯新增、孤立 bugfix(无外部依赖)、文档/注释改动。
| name | commit-lineage |
| description | commit message 必带 lineage 锚点——若改动来自 spec / lesson / 决策原文,message 必须引用源路径。Use when 准备 git commit、用户说「提交」「commit」「频繁 commit」、或起草 commit message 时。 |
| provenance | user-authored |
每次 commit 把代码改动反向锚定到 spec / lesson / 决策原文,长期可审计「为什么这行长这样」。
借鉴 Yansu traceable lineage 原则:每行代码都该能追溯到引发它的需求或决策。
git commit 时commit message 末尾按需追加 lineage 行,使用以下锚点:
| 锚点 | 何时用 | 例 |
|---|---|---|
Spec: | 改动来自 workspace/specs/*.md 的实施 | Spec: specs/dm-routing.md#实施步骤-3 |
Lesson: | 改动是为了规避某条踩坑复盘 | Lesson: lessons/slack-stream-chunk-semantics.md |
Decision: | 改动来自架构决策原文(CLAUDE.md / soul / spec 的 Decision Log) | Decision: CLAUDE.md#Worker-IPC-Protocol |
Issue: | 改动是为了修复一个 issue / 用户报告的 bug | Issue: 2026-04-25 Karry 反馈 cron 卡死 |
Followup: | 来自之前 commit 的遗留 TODO | Followup: 40b358a |
没有源头的改动(探索性 / 临时调试 / 重构)不强制带 lineage,但 message 主体要写清「为什么」。
conventional commits + lineage 行:
{type}({scope}): {简述}
{可选 body}
Spec: specs/xxx.md[#section]
Lesson: lessons/yyy.md
好:
feat(execplan): 加 ## 验收场景 段
借鉴 Yansu scenario-simulation,spec 草稿后增加 Karry 拍板 gate。
Spec: specs/yansu-borrow.md
Decision: CLAUDE.md#Surgical-Changes
好(无源头但 why 清晰):
fix(worker): typo 导致 inject 失败
变量名 `injectId` 写成 `injetId`。
坏(有 spec 来源但没引用):
feat: 新增场景段
lessons/xxx.md,不要绝对路径(commit history 跨机器看也能 grep)#anchor 锚到具体段,否则 spec 长了找不到Spec: see above / Lesson: 见之前讨论(不可追溯)