/ask-matt 技能
判断当前情境该用哪个技能。
安装此技能
npx skills@latest add mattpocock/skills --skill=ask-matt然后输入 /ask-matt 来调用它。
本页内容
它的作用
ask-matt is the router over the skills in this repo. You describe the situation you are in (an idea you cannot start, a pile of incoming bug reports, a 会话 that has run long), and it names the skill or the sequence of skills that fits, plus where the human decisions in that sequence sit.
它推荐然后就停。它不审问、不写 spec,打开文件或触发它刚点名的技能;你得到的回复是下一步该输入什么,然后你输入它。它也是这个仓库技能的手写地图,而不是对你已安装内容的扫描,所以它不会把你路由到你自己的技能或另一位作者的技能上。
何时使用
你通过输入 /ask-matt; the agent won't reach for it on its own.
| 你的情境 | 路由器返回什么 |
|---|---|
| 一个想法,却不知道从哪开始 | 主流程的头部,以及构建是否小到可以跳过规格说明 |
| 来自他人的 bug 和请求 | 这个 triage 入口,以及为什么 tickets 你自己生成的并不属于它 |
| 两个看起来可互换的技能 | 它们之间的分界线,而且通常是一个具体测试,而不是品味问题。 grill-me or grill-with-docs 取决于你是否在工作目录中; grill-with-docs or wayfinder 取决于任务是否装得进一个会话 |
| 一次长会话,以及关于 context | 阶段边界上覆盖五个选项的有序树 |
| 一个你已经选好的技能 | 没有有用的。直接调用那个技能。 |
前置条件
路由器点名技能;它不安装它们。它指向的一切都必须已安装,推荐才可执行,而且它只认识这个仓库里正式推广的技能。
The tracker-dependent routes (triage, to-spec, to-tickets, implement) assume setup-matt-pocock-skills has already configured an issue tracker in the repo. The router recommends them even before that has happened.
是流程,不是技能
The skill's leading word is flow, a path through the skills rather than a single skill. When you name your situation, the router places you at a step on a flow. That is a different answer from "here is the skill that matches your keywords". There are five kinds of route, and the skill itself describes them in full:
- 主流程, idea to ship. Grill, spec, tickets, implement (one ticket at a time, or the whole task graph in parallel with implement-spec), review, then retro, which feeds what the build taught back into the agent's environment. It has two branches. One is a prototype detour, for when a question needs runnable code to settle it. The other is the spec-and-tickets split, which is only worth its cost when the build spans more than one session.
- 入口,用于会产生工作、随后汇入主流程的情境:新来的 bug 报告、某个损坏的东西,或者过于模糊庞大、无法在一次会话中承载的任务。
- Codebase health, upkeep rather than feature work. improve-codebase-architecture surveys the code for deepening opportunities, and each one it finds re-enters the main flow as an idea.
- 独立技能, which sit off every flow and which you use on their own: the prototype, the questionnaire, the research run.
- 位于,这两个是其他技能在「问题出在词汇而非流程」时拉取的参考。
阶段边界
The skill's other key idea is the 阶段边界. A phase is a chunk of work inside a session (the 追问审视, the implementation, the QA), and the boundary between two of them is the only place the question "what do I do with this context?" belongs. Mid-phase there is nothing to decide: continue, or split what is left into subagents.
| 选项 | 当 |
|---|---|
| 继续 | 下一阶段需要这一阶段逐字的内容,或者你 聪明区 留下。它是唯一能让会话保持为 第一手资料,所以先排除它 |
/clear | Everything behind you is disposable. The cheapest option, and you cannot undo it if you were wrong |
| handoff | 必须有东西在传递:一个新 运行框架,一个新目录、一个同事、一个阶段中途分叉的支线任务 |
| 子智能体 | 任务范围紧到足以让你在场运行 离开键盘 |
/compact | None of the above. It is the default, and the tree often ends here |
People often get two of these wrong, which is why the router gives the order and not only the list. /handoff looks like the general way to move between context windows, but it is not. All it gives you is portability. /compact is the last option in the tree, not the first, because each of the four options above it is cheaper or more precise.
常见问题
不是直接有一个按正确顺序排列的技能列表吗?
People keep asking for one in the README. This skill is that list. A static table would say wayfinder → to-spec → to-tickets → implement → code-review → retro and be wrong for most situations. The important parts are the branches: is there a codebase, does the build span sessions, can talking settle this question. The cost is that the router is maintained by hand, so it lags behind the repo. /grilling shipped long before the router named it.
它告诉我一半技能没安装。
This is a known bug, and it is not fixed. Most of the skills the router routes you through set disable-model-invocation: true, which means the harness leaves them out of the skill list it injects into the agent's context. The agent reads that list as exhaustive and reports them missing. In one reported session, it declared the whole spec-and-tickets flow absent and rerouted to bare /grilling and /tdd. Sixteen of the plugin's twenty-seven skills carry the flag, so this is the common case rather than an edge. They are installed. Type the slash command anyway, or check .claude-plugin/plugin.json,它是「现有什么」的权威来源。
它描述了某个技能的行为,而那个技能并不那样做。
This is also a real bug, and also not fixed. The router answers from its own one-line summary of each skill rather than from the skill. One detailed report tracked three instances in a single session, including a recommendation to skip to-spec based only on the summary "turn the thread into a spec". The router never opened to-spec/SKILL.md. In every case it verified only after the user pushed back, and never on its own initiative. Skipping to-spec there cost a real seam check, and the tickets that came out undercounted the work. When the router states something about another skill that you will act on, ask it to open that SKILL.md 首先。同样的道理也适用于地图完全不覆盖的问题,比如是否使用 Plan 模式:那个答案就是 model的推理,而不是写在这里的东西。
为什么它是散文而不是编号检查清单?
It is a fair complaint. An open issue argues that most of the routing is deterministic and that the narrative makes it hard to scan. Nothing stops you asking for the compressed form: "just give me the sequence" gets you the sequence. The prose carries the conditional part: the branches, where a human decision is expected, and where to clear or compact between steps. A flat checklist drops exactly that.
它能在我自己的技能或另一位作者的技能之间路由吗?
不。三个独立的提案要求一个读取你本地 skills/ 目录,并根据已安装的内容给出推荐。 ask-matt 不是那样。它是某一套技能的地图,手工维护,对你编写或从别处安装的技能一无所知。
它让我编辑一个 SKILL.md。
That advice is often correct, but the edit rarely lasts. Someone asked it how to make implement close tickets, was told to add a line to the skill, and saw the problem at once. npx skills update 会覆盖文件,而插件安装是只读的。把常驻行为放进你自己的 CLAUDE.md or AGENTS.md, or say it in the invocation. Changes you make in the prompt survive updates. People point the flow at Linear instead of GitHub this way, or ask it which open tickets could run in parallel.
它点名了一个我没有的技能,或漏掉了一个我有的。
在认定它消失之前,先查更新日志有没有重命名。 writing-great-skills became writing-for-agents 没有别名, to-prd became to-spec,以及 pathfinder became wayfinder。有四个技能被直接退役,并入吸收它们的技能: ubiquitous-language, design-an-interface, qa and request-refactor-plan. If it misses a skill you have, that is the router's own lag, described above.
做到以下就算成功
- 它以点明该输入什么结束,并就此打住,而不是自己开始工作。
- 它返回的路线提到在哪里清空或压缩上下文、在哪里需要你审查,而不只是技能名列表。
- 当两个技能相近时,它说出选哪个以及为什么另一个不适合你。
- 它关于另一个技能行为的任何论断,都会在追踪记录中显示为它正在阅读那个技能的
SKILL.md. - 你在它返回的内容中认出自己的情境,而不是最接近的通用场景。
在流程中的位置
ask-matt 是一个 独立路由器 that sits over the whole set. It is never a step in a chain. It points into every chain, and the other docs pages link back to it so none of them has to redraw the graph. From here you most often land on grill-with-docs,主流程的头部,或 triage,它是为「找上门的工作」而不是「你发起的工作」准备的入口。
它是一个 二手资料 覆盖它所描述的技能。当路由器和 SKILL.md 意见不合时, SKILL.md 是对的。
技能操作
npx skills@latest add mattpocock/skills安装整套技能,然后在智能体中输入 /ask-matt 来调用它。