Ask Matt 是一个路由技能,用于回答“当前情况适合用哪个技能或哪条流程”。它隶属于 nathan-agent-skills 仓库,本身不执行具体工程任务,而是帮助用户在多条技能路径之间定位。
流程示例:一条路径穿过多个技能。大多数路径沿一条主流程展开,另有两个入口并入主流程,其余为独立技能或底层词汇层。
主流程:想法 → 交付
这是大多数工作走的路线:你有一个想法,希望它被构建出来。
- /grill-with-docs:通过访谈打磨想法。只要在工作目录中工作,就从此处开始。它是有状态的,会把学到的东西保留在 GLOSSARY.md 与 ADR 中。没有工作目录时改用 /grill-me(见独立技能部分)。两者运行同一个 /grilling 原语;grill-with-docs 会留下书面记录,因此在有仓库可留痕时更优。
- 分支:能否在对话中解决所有问题?如果某个问题需要可运行的答案(状态、业务逻辑、必须看到的 UI),就绕道原型,通过 /handoff 在两端衔接。原型位于自己的目录,这正是 /handoff 的用途所在。
- 分支:是否是多会话构建?是则先用 /to-spec 把讨论转成规格,再用 /to-tickets 拆成 tracer-bullet 工单,每个工单声明其阻塞边。之后可按工单逐个 /implement(每个之间清理上下文),或用 /implement-spec 对整个规格一次运行(读取工单作为任务图,在就绪前沿并行运行实现子代理,最终落到一个集成分支)。否则就在同一上下文窗口中 /implement。
- 无论如何,代码通过驱动 /tdd(一次一个红绿切片)构建,并以 /code-review 收尾:对差异做两轴审查(标准 + 规格)。/implement 按工单运行两者;/implement-spec 的实现者各自驱动 /tdd,并在集成分支上运行一次 /code-review。单独想要测试先行地构建具体行为时可单独用 /tdd;想针对固定点审查分支或 PR 时可单独用 /code-review。
- 工作作为拉取请求提交时,用 /pr 塑造正文:展示变更的最小可视化、证明其有效的 before/after 证据,以及单向或双向门的判断。它是模型触发的,代理在撰写 PR 时会自动选用。
- /retro 收尾闭环。构建之后,尤其是走偏之后,它回顾会话并提出对代理环境(而非代码)的修改建议:导航指针、自动检查、/code-review 执行的编码标准、引导文件、工具链。机械性错误变成确定性检查;判断性调用变成编码标准。
上下文卫生
步骤 1–3 保持在一个不间断的上下文窗口中(在 /to-tickets 之前不要压缩或清理),这样打磨、规格和工单都建立在同一思考之上。每个 /implement 随后从工单出发重新开始。在它所回顾的会话中运行 /retro,清理之前进行;清理之后则指向该会话的日志。
其限制是“智能区”:即窗口(在先进模型上约 150k token)内模型仍能敏锐推理的范围。如果会话在 /to-tickets 之前接近该值,不要在降级状态下硬撑;在最近的阶段边界 /compact 后继续。
入口(On-ramps)
一种生成工作的起始情况,随后并入主流程。
- 缺陷与请求堆积 → /triage。它把 issue 沿 triage 角色推进,产出代理就绪的 issue,之后由 /implement 接手。Triage 仅用于不是你创建的 issue:缺陷报告、传入的功能请求、任何原始到达的内容。/to-tickets 产出的工单已经代理就绪,不要 triage 它们。
- 某处坏了 → /diagnosing-bugs。用于难缠的问题:一眼看不透的缺陷、间歇性 flake、两个已知良好状态之间悄悄出现的回归。它在拥有紧密反馈回路(一条已对该缺陷变红的命令)之前拒绝理论化,然后用回归测试修复。修复到位后,在同一会话运行 /retro,问什么本可以预防该缺陷;若真实发现是没有好的接缝来锁定它,那是 /improve-codebase-architecture 的工作。
- 巨大而模糊的工作:绿地项目或巨大功能构建,对单个会话太大 → /wayfinder,此处认知需求最高的流程。当从这里到目的地的路尚不可见时,它在 issue 跟踪器上绘制决策工单的共享地图,逐一解决,产出决策而非交付物,直到迷雾被推开、道路清晰。当地图清晰后,它交接而非构建:在 /to-spec 处并入主流程。
代码库健康
不是功能工作,只是维护。
- /improve-codebase-architecture:只要有空闲时刻就运行,保持代码库适合代理操作。它浮现深化机会;选中一个会生成一个想法,可带入主流程的 /grill-with-docs。它是发现候选的调查;/codebase-design 是设计所选之物的工作台。
底层词汇
两个模型触发的参考,运行在其他技能之下,各自是其词汇的唯一真相来源。当问题是词而非流程时直接选用,或让上述技能拉入。
- /domain-modeling:磨砺项目的领域语言:质疑模糊术语、解决重载词、把难以逆转的决策记录为 ADR。它是 /grill-with-docs 驱动的主动纪律。
- /codebase-design:深模块词汇(module、interface、depth、seam、adapter、leverage、locality),用于设计模块形态。
阶段边界
阶段是会话内的一块工作:打磨、实现、QA。在两个阶段边界处有五个选项,选择它是整张地图中最模糊的决策:
- Continue:留在原地。不花费、不丢失。
- /clear:清空窗口,当此处对接下来无关时。
- /handoff:写入可移植的 markdown 文件。狭窄用途:仅用于新 harness、新目录、同事,或在阶段中途分叉侧任务。它买到的是可移植性。
- Subagent:把范围紧凑的任务送到自己的窗口并拿回报告。
- /compact:压缩此上下文并用它播种新会话。默认选项。
在边界处做决定;阶段中途则继续,或把其余部分拆成子代理。
独立技能
完全脱离主流程。
- /grill-me:与 /grill-with-docs 同样严厉的访谈,但无状态:不本地保存,不构建 GLOSSARY.md。不在工作目录中工作时选用。
- /grilling:访谈原语本身:轮次、前沿,事实归代理、决策归你。
- /prototype:一个小型一次性程序,回答一个设计问题。一次性是代码写法的约束,不是销毁承诺。
- /research:把阅读苦力委托给后台代理:针对一手来源调查问题,在仓库留下带引用的 Markdown 文件。
- /to-questionnaire:当阻塞你的事情不在你脑中或代码库中,而在别人那里时,它写一份问卷让对方填写。
- /wizard:用于只有人才能采取的步骤:配置基础设施、设置凭据或 CI 密钥、点击陌生第三方仪表盘、运行一次性迁移或切换。它生成交互式 bash 脚本。
- /wait-what:用于没听懂的消息的纠正。在对话中途、任何其他技能内使用,代理会用你缺失的上下文、以平实英语、使用 GLOSSARY.md 词汇重新阐述。
- /teach:跨多个会话学习一个概念,使用当前目录作为有状态工作区。
- /writing-for-agents:编写代理消费文档的参考:技能、AGENTS.md、被指向的文档。
前置条件
- /setup-agent-skills:在首次工程流程前运行,配置其他技能假设的 issue 跟踪器、triage 标签和文档布局。自定义 issue 跟踪器也可用。