本地技能库 ~/.agents/skills(symlink 至 ~/.pi/agent/skills)整体刷新,约 55 个 skill 全量更新。核心是一条完整的 idea → ship 工程主流程,本次重点解读三个新技能:/pr、/implement-spec、/retro。
这批 skill 不是零散工具,而是一套有明确设计意图的工程流水线。ask-matt 技能(技能路由器)把整张地图讲得很清楚:
注意 /pr 是 model-invoked(agent 写 PR 时自动触发),另外两个是 slash command 手动触发。这是有意的分层:写 PR 是高频机械动作交给模型,编排和复盘是人的决策。
写 PR 描述的技能。最大的特色是强制可视化:Summary 不许写成大段散文,必须从一组固定的「图示菜单」里挑最小够用的一种。致谢文件(CREDITS.md)表明它源自 Dex Horthy(HumanLayer)的 show-me 技能,内容几乎逐字移植,只是把目标从「现场讲解」改成了「描述一个 diff」。
| 形式 | 适用场景 | 示例 |
|---|---|---|
| pseudocode | 逻辑 / 算法 | on(save) if unchanged → return cached |
| call tree | 运行时控制流 | submitForm → createSession → persistPrompt |
| component tree | UI 结构 / 状态边界 | <SessionPage> → <SessionToolbar> |
| file tree | 文件职责 / 大重构 | src/ ├── commands/ ├── sessions/ |
| Mermaid | 组件交互 / 数据流 | sequenceDiagram |
| diff | 关键变更点(形状对应主题) | + <RunSkillButton /> |
原则:每张图紧挨它支持的短文字;只保留回答当前问题所需的调用、文件、状态和边界;「不太可能全用上,别压垮读者」。
对应旧流程里「逐个 ticket 手动 /implement + 每张 ticket 之间 /clear」的替代方案:当整个 spec 已经通过 /to-spec / /to-tickets 拆解完毕,它把实现工作升级为子代理编排,一次跑完全部 ticket。
每张 ticket 声明自己的 blocking edges(阻塞关系)。任意时刻都存在一个frontier:所有前置已完成的、现在就能开工的 ticket 集合。编排的本质就是不断消化 frontier 并随合并推进扩展它。
/tdd 逐个红绿循环;完工前先把 integration branch tip 合进自己分支再报告。/code-review,发现的问题由单个 implementer 子代理统一修复;然后 draft PR 转 ready,清理所有 worktree。/implement 的分工| /implement(逐张票) | /implement-spec(整包编排) | |
|---|---|---|
| 驱动方式 | 人在主会话逐张驱动,票间 /clear | 一次调用,子代理自动编排 |
| 并发 | 串行 | frontier 内所有就绪 ticket 并行 |
| 隔离 | 主会话直接改 | 每票独立 worktree + 分支 |
| code-review | 每张票各跑一次 | 整个 integration branch 跑一次 |
| 适用 | 想亲自控制每一步 | 「宁可做编排者,不想逐票驾驶」 |
对一次 coding session 做回顾,但产出不是改进代码,而是改进 agent 的工作环境——下次跑得更好。它明确写出「实现 vs 审查」的两阶段认知:实现代理上下文压力最大,审查代理拿到 diff 压力最小,所以编码标准应该由审查方执行,而不是塞进实现方的 AGENTS.md。
| 类别 | 找什么 | 触发信号 |
|---|---|---|
| Navigation | 文件间的隐性依赖,需要加导航指针 | 找某个信息花了很久 |
| Automated checks | 已存在却没接线 / 静默坏掉的检查;没有任何 guardrail 的仓库本身就是 finding | agent 犯了机器能拦的错误 |
| Coding standards | 机械类违规→确定性检查(linter 规则 / pre-commit / CI,默认造检查而不是写规则);判断类才进 CODING_STANDARDS.md(跨文件一致性、「符合周边风格」) | reviewer 漏掉了错误 |
| Global AGENTS.md | 该下放到 coding standards 或自动化检查的指令 | AGENTS.md 过大(仓库级或全局) |
| Tool economy | 昂贵且可精简的工具调用、token 低效的工具 | 出现了昂贵调用 |
| No-ops | 不改变 agent 行为的死指令 | steering 文件臃肿 |
| Information access | tee dev server 日志、第三方服务只读权限等 | 关键信息 agent 拿不到 |
/writing-for-agents 拿写作风格,再读 session 日志(用户没指定就复盘当前会话),按严重度排序呈现改进候选。/retro 改环境:机械错误沉淀成确定性检查、判断类错误沉淀成标准、死指令被清除——每次构建后环境变好一点,形成复利。配合 /diagnosing-bugs 的说明(修完 bug 在同一 session 跑 retro 问「什么本可预防它」),闭环更完整。除三个主角外,这一批里还有不少成形的设计值得留意:
针对「一个 session 装不下、路线完全看不见」的超大工程(绿地项目 / 超大 feature):在 issue tracker 上铺一张决策 ticket 的共享地图,逐张解决,产出决策而非交付物,直到路线清晰。地图清空后交接而不施工——在 /to-spec 汇入主流程。文档明确警告:直接从地图跳 /implement 会丢掉关联决策。
把 spec 拆成「曳光弹」ticket,每张声明 blocking edges:本地 tracker 是 .scratch/<feature>/issues/ 一票一文件、阻塞关系写在文本里;真实 tracker(GitHub/GitLab)则用原生 blocking link。这正是 /implement-spec 任务图的物料来源。
只 triage 不是你自己创建的 issue(bug 报告、外部 PR、原始 feature 请求);/to-tickets 产出的票已经 agent-ready,不再过 triage。五角色:needs-triage → needs-info / ready-for-agent / ready-for-human / wontfix。
/pr 的上游源头:现场讲解当前话题,同一个「图示菜单」(伪代码/调用树/组件树/文件树/Mermaid/diff)。writing-beats / writing-fragments / writing-shape)+ /writing-for-agents(写 agent 消费文档的参考标准,几乎所有技能的写作底座)。claude --bg 拉起后台代理立即接手。/grill-me 的反向:卡点在别人脑子里时,替你生成给对方填的问卷。C:\ai 已配置为本地 markdown tracker + 默认五标签 + 单上下文。.scratch/<feature>/)、默认五 triage 标签、根 CONTEXT.md + docs/adr/ 单上下文布局(AGENTS.md 已记录)。/grill-me / /grill-with-docs / /triage / /wayfinder / /improve-codebase-architecture 共享同一个内核原语 /grilling(轮次化提问 + frontier + 推荐答案)。/compact。/pr 把 review 成本压到最低:图示代替散文,证据前后对照,风险一句话定级。
/implement-spec 把人从逐票驾驶解放成编排者:任务图 + frontier 并发 + 独立 worktree + 指针通信。
/retro 是唯一的复利来源:不修代码,修环境——机械错误变确定性检查,判断类错误变标准,环境每次构建后更好一点。
合起来看,这批更新让 idea → ship 变成了完整闭环:grill 出想法 → spec → tickets → 并行实现 → 可视化 PR → 复盘环境 → 下次更好。