先澄清
在代码库内从 /grill-with-docs 开始,明确行为、边界、术语和关键决策。
根据任务的清晰度、规模和问题类型选择合适的 AI 编程工作流:先对齐,再以小而可验证的切片交付。
每个仓库首次使用前:运行一次 /setup-matt-pocock-skills,配置 Issue tracker、triage 标签和领域文档位置。后续工程流程都以此配置为基础。
在代码库内从 /grill-with-docs 开始,明确行为、边界、术语和关键决策。
单会话可完成则实施;跨会话时先生成 spec 和可独立交付的 Issue。
/implement 通过 /tdd 推进,最后以 /code-review 收尾。
| 先问什么? | 答案为“是” | 答案为“否” |
|---|---|---|
| 需求、模块边界或关键决策仍说不清? | 先用 /grill-with-docs;若大到一个会话无法理清,用 /wayfinder | 继续下一问 |
| 工作会跨多个会话,或可拆成多个独立交付的切片? | /to-spec → /to-tickets → 每个 Issue 在新会话中 /implement | 在当前会话中 /implement |
| 当前要处理的是异常、错误结果、性能下降或偶发现象? | /diagnosing-bugs:先建立可重复、能变红的反馈循环 | 使用前两问决定的需求实现流程 |
不要只按改动行数判断。一个短小但涉及权限、状态迁移或跨服务契约的改动,仍值得先澄清和拆分;行为和边界明确的局部能力则可直接 test-first 实现。
小而明确的改动可跳过 /to-spec 与 /to-tickets,从 /grill-with-docs 直接进入 /implement。不在代码库内工作时,用无状态的 /grill-me 替代。
模块不存在,需要定义职责、公共接口、数据流或与现有系统的边界。
/grill-with-docs → /implement
先确认模块职责和测试接缝,再以垂直切片实现。
/grill-with-docs → /to-spec → /to-tickets → /implement
若连技术路线或优先级都不明确,先用 /wayfinder 解决决策问题。
CONTEXT.md;只有难逆转、需要解释、且存在真实权衡的决策才写 ADR。/implement 中以“一个公共接缝、一个失败测试、一个最小实现”推进。/grill-with-docs 我要从零实现“优惠规则引擎”模块。它需要被结算服务调用, 目前已知输入是订单和用户信息,输出是可叠加的优惠明细。 请先帮我厘清模块职责、公共接口、规则冲突和测试接缝; 确定后再决定是否需要拆成多个 Issue。
已有模块和调用链,需要增加用户可见能力,例如审批流程、筛选条件或支付方式。
小而明确:/grill-with-docs → /implement
跨模块或多会话:/grill-with-docs → /to-spec → /to-tickets → /implement
/handoff → /prototype → /handoff,再回到主流程。/implement 开始。/grill-with-docs 在现有订单后台增加“部分退款”能力。请先阅读相关领域文档和订单、 支付模块,确认允许退款的状态、金额校验、幂等要求、权限和审计行为。 这是一个可能跨订单与支付服务的功能;需求明确后,请建议直接实施还是 生成 spec 和拆分 Issue。
调用方、模块职责和预期行为已明确,例如增加查询、校验或确定的状态转换。
/tdd
先确认公共接口及测试接缝,再红—绿循环实现。
/grill-with-docs → /implement
涉及调用方、持久化格式、权限、缓存或状态机时,不应视作局部改动。
/tdd 适合已确定的具体行为;/implement 适合需要完整实施、检查和 review 流程的工作。/tdd 请为 Inventory 的公共接口新增 reserve(sku, quantity)。 已确认规则:库存不足时返回 InsufficientStock;成功时减少可用库存。 测试只通过 Inventory 的公开接口观察结果,不测试内部仓储实现。 先确认这个测试接缝,然后按红—绿循环实现。
出现报错、结果错误、性能回归、偶现问题,或需要从用户现象查找根因。
/diagnosing-bugs → 最小复现 → 假设与验证 → 修复 + 回归测试
第一步不是读代码猜原因。必须先建立紧凑、可重复、能捕获该现象的反馈循环:失败测试、HTTP/CLI 脚本、浏览器脚本、请求回放或最小 harness 都可以。若没有循环,应索取环境或脱敏后的证据,而不是直接改代码。
/diagnosing-bugs 生产环境中,已支付订单偶尔显示为“待支付”。预期支付回调成功后订单应稳定 显示“已支付”。复现率约 5%,集中在移动端支付;附件是已脱敏的回调 payload 和订单状态日志。请先建立一个能稳定捕获该状态不一致的反馈循环,再最小化复现、 列出可证伪假设并验证;在未建立循环前不要直接修改代码。
外部 Issue 信息不足时:先用 /triage 补齐信息并标为 ready-for-agent。由 /to-tickets 生成的 Issue 已经可供 Agent 实施,不需要再次 triage。
核心原则:用引用切入,不用回忆切入。每个由 /to-tickets 生成的 Issue 都应能在一个全新的上下文中完成。新会话以 当前 Issue、父级 spec、长期领域文档和代码当前状态为事实来源,而不是依赖上一轮聊天记录。
CONTEXT.md、ADR 和仓库的 Agent 指令。/tdd 的红—绿循环推进。/code-review。假设“部分退款”需求已经拆为以下 Issue:
| Issue | 交付内容 | Blocked by |
|---|---|---|
#421 | 建立部分退款的领域状态和金额校验 | 无,可立即开始 |
#422 | 提供部分退款 API | #421 |
#423 | 在订单后台展示并发起部分退款 | #422 |
#424 | 记录退款审计事件 | #422 |
当 #421 已完成后,#422 才处于可实施的 frontier。此时开一个干净会话,只以 #422 为本次工作范围。
/implement 实施 GitHub Issue #422「提供部分退款 API」。 请将 #422 作为本次工作的唯一实施范围。开始修改前: 1. 读取 #422 的完整内容、评论和验收标准; 2. 确认前置 Issue #421 已完成,并检查前置改动已存在于当前代码; 3. 阅读 #422 引用的父级 spec,尤其是业务规则、测试决策和 Out of scope; 4. 阅读相关 CONTEXT.md 和 ADR; 5. 查找现有退款 API 及其测试,确认应测试的公共接缝和可运行的测试命令。 随后按 TDD 实施 #422 的验收标准。不要实现 UI、审计事件或其他后续 Issue 的内容;如果当前 Issue 无法在既定边界内完成,请说明缺失的决策或 阻塞项,而不要自行扩大范围。 在开始写代码前,请用不超过五条内容确认:交付行为、已确认的前置 Issue、 不包含的范围、测试接缝和验证命令。
/implement 实施 .scratch/partial-refund/issues/02-expose-partial-refund-api.md。 先读取该文件、它的 Blocked by、父级 spec、CONTEXT.md 和相关 ADR, 再检查前置 Issue 已落地的代码。严格按该 Issue 的验收标准实施;如果 信息不足或前置依赖未完成,请说明阻塞原因,不要根据上一个会话的记忆猜测。
ready-for-agent 状态。通常不需要在两个 Issue 之间使用 /handoff。Issue 与 spec 已经是跨会话的正式交接物。/handoff 更适合在同一 Issue 未完成时切换目录、交给其他人、转去做原型,或保存尚未沉淀进 Issue/spec 的推理过程。
/triage → agent-ready Issue → /implement
适合处理别人提交的原始 bug 报告、需求或外部 PR。
/wayfinder → /to-spec → /to-tickets → /implement
先产生决策地图,不要把未澄清的方向直接交给实现流程。
/handoff → /prototype → /handoff → 主流程
原型用来回答一个具体设计问题,并保留结论作为后续决策依据。
/improve-codebase-architecture → /grill-with-docs → 主流程
先发现可加深模块的候选项,再挑选一个进入正常需求流程。
/resolving-merge-conflicts
按双方的一手意图逐 hunk 解决并完成操作,而不是简单选一侧或 abort。
/code-review
基于固定点审查 diff:同时检查编码标准与是否忠实实现原始 spec。
没有匹配的 Skill。
| Skill | 何时使用 |
|---|---|
/ask-matt | 不确定该选哪个 skill 或工作流。 |
/grill-with-docs | 在代码库内澄清计划,同时沉淀领域术语和 ADR。 |
/triage | 处理别人提交、信息尚不完整的 Issue。 |
/to-spec | 将已讨论清楚的内容综合成 spec。 |
/to-tickets | 将 spec 拆成带依赖、可独立交付的垂直切片。 |
/implement | 按 spec 或 Issue 实施,驱动 TDD 和代码审查。 |
/wayfinder | 大型、路径不清晰的项目或功能。 |
/improve-codebase-architecture | 发现并评估代码库的结构改进机会。 |
| Skill | 何时使用 |
|---|---|
/tdd | 已确认公共接口和测试接缝时,test-first 构建具体行为。 |
/diagnosing-bugs | 疑难 bug、性能回归、偶现问题的纪律化诊断。 |
/prototype | 用一次性代码回答状态模型或 UI 设计问题。 |
/research | 委托后台 Agent 基于一手来源进行带引用调研。 |
/domain-modeling | 处理模糊或重载的领域术语,维护 CONTEXT.md。 |
/code-review | 从标准和 spec 两个维度审查现有 diff。 |
/resolving-merge-conflicts | 解决进行中的 merge 或 rebase 冲突。 |
| Skill | 何时使用 |
|---|---|
/grill-me | 不在代码库内,仍需要澄清计划或设计。 |
/handoff | 切换目录、原型、协作者或需要携带上下文时。 |
/teach | 跨多个会话系统学习一个概念或技能。 |
/wait-what | 当前解释没有理解,希望 Agent 换一种易懂的方式说明。 |
从 /grill-with-docs 到 /to-spec、/to-tickets 应尽量在同一上下文中完成。这样需求澄清、规格和 Issue 建立在相同的判断之上。
每个 /implement 应在新会话中从自己的 Issue 开始。已拆分的 Issue 本身就是实现所需的上下文,上一项的工作记忆应被丢弃。
会话接近模型的高质量推理窗口时,不要强行延续。优先在阶段边界 compact;需要跨目录、交给同事或带往原型时使用 /handoff。
测试验证公共接口的行为,避免与实现细节耦合。/implement 结束前应运行类型检查、针对性测试、完整测试套件,并使用 /code-review 审查 diff。
/ask-matt,并说明你的目标、当前已知信息和约束。它会把场景路由到合适的用户可调用 skill。/grill-me 和 /grill-with-docs 怎么选?/grill-with-docs:它会建立或更新 CONTEXT.md、ADR 等长期上下文。不在工作目录或是非代码场景时,使用无状态的 /grill-me。/implement,什么时候先拆 Issue?/to-spec 再 /to-tickets。/triage 和 /to-tickets 有什么区别?/triage 用来分类、补充别人提交的原始 Issue;/to-tickets 把自己的 spec 拆成已经 agent-ready 的实现 Issue,后者无需再次 triage。