尧图精选

Ask Matt 技能路由指南:在 skills13/skills 中为你的工作流找到正确的 Skill 与 Flow

🕒 发布时间:2026/9/11 18:23:50 📁 来源:尧图网络
Ask Matt 技能路由指南在 skills13/skills 中为你的工作流找到正确的 Skill 与 Flow【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skillsAsk Mattskills/engineering/ask-matt/SKILL.md是本仓库的“路由器”技能它不亲自执行任何工程动作而是根据你当下的处境——是在打磨一个想法、修复一个顽固 bug、拆分一张巨大的特性地图还是整理代码库健康度——为你指出应该调用哪个 Skill、走哪条 flow。读完本文你将掌握这条以“idea → ship”为主线、以两个 on-ramp接入匝道和一个旁路prototype 绕行为分支、底层铺设词汇层与阶段边界决策树的完整路由图并能在实际会话中正确地做出“继续 / 清理 / 交接 / 子代理 / 压缩”五选一的边界决策。一、Ask Matt 是什么一个 user-invoked 的路由器Ask Matt 在仓库中的定位非常明确它的description是“Ask which skill or flow fits your situation. A router over the skills in this repo.”即一个覆盖本仓库全部技能的路由器。它有一个关键特性--- name: ask-matt description: Ask which skill or flow fits your situation. A router over the skills in this repo. disable-model-invocation: true ---disable-model-invocation: true意味着这个 Skill 只能由用户主动键入/ask-matt触发模型不会被允许擅自调用它——路由器本身不应该被“自动”拿起必须由人来问。这一点在 engineering/README.md 的 user-invoked 列表和 agents/openai.yaml 中policy.allow_implicit_invocation: false得到了双重确认它是与grill-with-docs、triage、wayfinder等并列的“只有你输入才会触达”的技能。而它的开场白也只有一句“You dont remember every skill, so ask.”你不会记得每一个技能所以问。这句话点出了路由器存在的根本理由技能太多人记不全让路由器替你索引。Ask Matt 把整个仓库的技能组织成如下结构一条主流程main flow绝大多数工作沿它而行两条接入匝道on-ramps产生工作的起始情境汇入主流程一个代码库健康度地带codebase health不是特性工作只是日常维护一层底层词汇vocabulary underneath在所有技能之下运行的两个被模型调用的参考一批独立技能standalone完全在主流程之外一个前置条件precondition首次使用前的配置步骤。二、主流程idea → ship从想法到交付Ask Matt 描述的主流程是“绝大多数工作所走的路线”你有一个想法想把它建成。路由如下。1. 第一步/grill-with-docs打磨想法无论何时只要你在一个工作目录里工作就从/grill-with-docs开始它通过一轮接一轮的拷问interview来锐化想法并且是有状态的——它会把学到的内容写进CONTEXT.md和 ADR架构决策记录中留下纸质轨迹。如果你不在工作目录里则改用/grill-me见 Standalone 一节。两者的关系值得注意两者运行的是同一个/grilling原语grill-with-docs是那个留下纸质轨迹的版本因此只要有一个仓库可供留下轨迹它就是两者中更好的那一个。从源码看grill-with-docs/SKILL.md 的正文极其精简——它本身只做一件事“Call the Skill tool twice, for grilling and domain-modeling.”调用两次 Skill 工具一次是 grilling一次是 domain-modeling。也就是说真正的拷问逻辑完全委托给了 grilling/SKILL.md它把对话建模成一棵设计树design tree每一轮询问当前边界frontier上的全部问题即所有前置条件已满足、现在就能回答的决策给每个问题编号并提供推荐答案等用户答完后再重算边界、进入下一轮。grill-with-docs相对/grill-me的唯一差别就是它顺带把 domain-modeling 接进来实时把收敛出的术语写进CONTEXT.md、把难逆转的决策记成 ADR。2. 第二步分支原型绕行prototype detour在打磨过程中会出现一个判断点“每一个问题都能在对话中解决吗”如果某个问题需要一个可运行的答案——比如状态state、业务逻辑、或者一个你必须亲眼看到的 UI——那就绕道走一遍原型并且用/handoff双向搭桥/handoff出去把当前会话压缩成一份可移植的 Markdown 交接文档见 handoff/SKILL.md它会把文档保存到操作系统的临时目录而非工作区并附上“suggested skills”小节然后针对该文件开一个全新会话/prototype回答用可抛弃的代码回答那个设计问题见 prototype/SKILL.md——它按问题类型分成两个分支LOGIC.md的“状态/逻辑感觉对吗”和UI.md的“应该长什么样”/handoff回来把学到的结论带回并在原始想法线程中引用它。为什么要绕这一圈因为“原型生活在自己独立的目录里”——这正是/handoff的用武之地交接换来的价值是可移植性portability一份能随会话旅行的文件。原型本身是“可抛弃”的代码throwaway code但“可抛弃”是对写作方式的约束不是删除的承诺验证过的决策要折回真实代码而原型本身会被当作**一手资料primary source**保存在脱离 main 的prototype/name分支上由实现 issue 指向。3. 第三步分支是否多会话构建打磨完成之后进入第二个判断点“这是一个多会话multi-session的构建吗”是→ 先/to-spec把对话线程合成一份 spec见 to-spec/SKILL.md它明确“不面试只综合你已经讨论过的内容”并按内置模板输出 Problem Statement / Solution / User Stories / Implementation Decisions / Testing Decisions / Out of Scope / Further Notes发布到项目的 issue tracker 并打上ready-for-agent标签。再/to-tickets把它拆成一串曳光弹工单tracer-bullet tickets见 to-tickets/SKILL.md每个工单是一刀切穿所有层schema、API、UI、tests的垂直切片单独可演示、可验证、能装进一个全新的上下文窗口每个工单都声明它的阻塞边blocking edges在本地跟踪器上就是一个 feature 一个目录/scratch/feature/issues/NN-slug.md一个工单一个文件按依赖顺序从01编号人工按“阻塞者优先”逐张处理在真实跟踪器GitHub、Linear 等上阻塞边变成原生的 blocking 链接任何“阻塞者都已完成”的工单都可以被直接抓取执行。随后每个工单跑一次/implement并且在两个工单之间/clear清空上下文——每个工单自包含所以上一个工单留下的上下文是可以丢弃的。否→ 直接在这里、在同一个上下文窗口内跑/implement见 implement/SKILL.md按 spec/工单实现尽可能在预商定的 seam 处使用/tdd定期跑类型检查与单测、结尾跑全量测试完成后用/code-review审查再提交到当前分支。无论走哪条路/implement都在内部驱动/tddtdd/SKILL.md 的 red → green 循环一次一个垂直切片先红后绿、一次一切片、重构不属于循环而是属于审查阶段来构建每个 issue最后用/code-reviewcode-review/SKILL.md对HEAD与某个固定点之间的 diff 做双轴审查——Standards 轴对照仓库文档化的编码标准外加一套 Fowler 坏味道基线Spec 轴对照发起 issue/spec——两个轴以并行子代理运行互不污染上下文最后并排汇报绝不合并排序收尾然后再提交。4. 上下文卫生Context hygiene这是 Ask Matt 路由图里容易被忽略但非常关键的一条纪律把第 13 步保持在一个不间断的上下文窗口里在/to-tickets完成之前不要 compact 或 clear这样拷问、spec、工单都建立在同一份思考之上。之后的每个/implement再从工单出发、以全新上下文开始。它的天花板是智能区smart zone即模型仍能清晰推理的窗口在 SOTA 模型上约为 15 万 tokens。如果会话在/to-tickets之前就逼近这个上限不要硬撑着用退化的上下文继续正确的动作是在最近的阶段边界处/compact然后继续具体决策见下文“阶段边界”。三、接入匝道On-ramps匝道是“一种产生工作、然后汇入主流程的起始情境”。Ask Matt 定义了三条bug 和请求堆积成山→/triagetriage/SKILL.md。它把 issue 推过一个由分类角色bug/enhancement与状态角色needs-triage/needs-info/ready-for-agent/ready-for-human/wontfix组成的小状态机产出 agent-ready 的简报供后续/implement拾取。关键约束triage 只用于不是你创建的 issue——bug 报告、外部特性请求、任何以原始形态到达的东西/to-tickets产出的工单已经是 agent-ready 的不要 triage 它们。有东西坏了→/diagnosing-bugsdiagnosing-bugs/SKILL.md。专治硬 bug一眼看不透的、间歇性 flake、潜伏在两个已知良好状态之间的回归。它在建立起紧反馈回路tight feedback loop之前拒绝臆测——回路就是“一条已经在这个 bug 上变红的命令”然后带着回归测试修复。如果事后复盘post-mortem发现真正的结论是“这里根本没有好的 seam 可以锁死这个 bug”它会把手交给/improve-codebase-architecture。一个巨大而迷雾重重的工程——绿地项目或超大特性一个会话装不下 →/wayfinderwayfinder/SKILL.md这是全仓库认知负荷最高的 flow。当“从这里到目的地的路”还看不见时它在 issue tracker 上画一张由决策工单decision tickets组成的共享地图一次解决一张产出的是决策而非交付物直到迷雾被推开、路变清晰。它默认只规划不执行地图完成、无事可决时就应该交接。地图清晰后它交接、不构建汇入主流程的/to-spec处——to-spec把地图上相互链接的决策坍缩成一个可构建的计划再走/to-tickets和/implement。把地图直接灌进/implement会跳过这次坍缩、丢掉链接的细节只有当这个工程真的小到出乎意料时才允许直接上/implement。四、代码库健康度Codebase health不属于特性工作只是日常维护/improve-codebase-architectureimprove-codebase-architecture/SKILL.md只要你有零碎时间就运行它来保持代码库“对 agent 友好可操作”。它扫描并呈现加深机会deepening opportunities——把浅模块改造成深模块的重构机会挑中其中一个就产生一个想法你可以带着它从/grill-with-docs汇入主流程。它是发现候选者的“勘察”而codebase-design见下是你在上面设计所选方案的“工作台”。五、底层词汇层Vocabulary underneath两个由模型调用的参考运行在其他所有技能之下各自是其词汇表的唯一事实来源。当问题出在“词”而非“流程”时直接去找它们或者让上面的技能把它们拉进来/domain-modelingdomain-modeling/SKILL.md打磨项目的领域语言——挑战一个模糊的术语、消解一个过载的词比如“account”干着三份工作、把难逆转的决策记成 ADR。它是/grill-with-docs驱动的那个“主动纪律”用来保持CONTEXT.md是一份干净的术语表glossary。值得注意的是它有一条硬规则CONTEXT.md必须是“纯术语表 别的东西都没有”不得当作 spec、草稿纸或实现决策的仓库。/codebase-designcodebase-design/SKILL.md深模块词汇表module、interface、depth、seam、adapter、leverage、locality用来设计一个模块的形状在干净的 seam 后面、用小接口罩住一大堆行为。/tdd和/improve-codebase-architecture都说的是这门语言。六、阶段边界Phase boundaries全地图最模糊的决策Ask Matt 把阶段边界称为“这张地图里最模糊的决策”并单独立了一节。阶段phase是会话内的一块工作块拷问、实现、QA。在边界处——也就是两块工作之间的间隙——你有五个选项而这个决定只属于边界阶段中途没有决策可做要么继续要么把剩余工作拆给子代理。中途 compact 会让 agent 丢失线索。完整的决策逻辑在 PHASE-BOUNDARIES.md 里以“有序决策树”的形式给出自顶向下工作第一个“是”胜出。五个选项选项作用Continue留在当前会话。完全没有上下文切换。/clear清空上下文窗口从零开始。/handoff写一份可移植的 Markdown 文件用它把会话种到任何地方。Subagent把任务送进它自己的上下文窗口拿回一份报告。/compact压缩当前上下文用摘要种出一个新会话。决策树五问自顶向下问题 1能在本会话继续吗两个条件使答案为“是”下一阶段需要当前阶段作为一手资料primary source或者你还有足够的智能区约 15 万 tokens装下下一阶段。标准的“是”就是拷问 → 实现实现要的是逐字逐句的推理过程而不是它的摘要。Continue 不花钱、不丢东西所以在其他任何选项之前先排除它。问题 2上下文与接下来要做的事无关吗本会话里的一切探索、决策、死胡同是否都可丢弃如果是/clear。它是棋盘上最便宜的走法不花时间把整个窗口还给你而且/clear不是终局——旧会话依然可以恢复。搞错它的代价是单向的清掉一份相关的上下文你就失去了所做之事背后的“为什么”无论把 diff 读多少遍都找不回来。问题 3需要交接吗/handoff是窄的。只有在以下情况你才需要它换到新的工具harness如 Claude → Codex移到新目录或新仓库把工作交给同事或者阶段中途分叉出一个旁支任务而不打断当前工作。这份清单就是整个条款。/handoff买到的是可移植性一份能旅行的文件。如果没有任何东西在旅行你就不需要它。问题 4这个任务能 AFK无人值守完成吗它的范围是否紧到可以在你离开键盘、不做任何引导的情况下运行如果能就把它交给子代理让当前会话保持原样。自动审查是标准案例agent 读 diff 并汇报期间不需要你。问题 5否则/compact。上下文相关、同一工具、同一目录、而且你需要保持在回路中决策树落在这里而且经常落在这里。给它一条指令/compact were going to QA this area让摘要保留下一阶段需要的东西。一个重要的警示/compact是默认项而不是首选。它坐在树底是因为上面的四个问题全都更便宜或更精确。人们从 compact 开始的失败模式是一个全新会话对“被摘要压平的那个决策”自信地犯错。一手与二手资料Primary and secondary sources为什么问题 1 必须排第一因为除了Continue之外每一步都会把一手资料变成二手资料会话原本的样子被它的摘要所取代。交易永远是这个形状来源信息量噪声腾挪空间一手Continue完整多少二手/compact、/handoff有损少多只有“留在原地”的成本大于收益时你才付出这个有损的代价。PHASE-BOUNDARIES.md 最后还强调这些都是判断judgement calls不是客观题——每个问题里都有品味成分同一个边界两天可以走出两条路价值在于按顺序提问在边界而非工作中间提问。七、独立技能Standalone完全在主流程之外/grill-me与/grill-with-docs同样不留情面的拷问但是无状态的不本地保存任何东西、不建CONTEXT.md。当你在非工作目录里打磨一个计划、一份设计、一段文字任何没有仓库垫底的东西时找它在工作目录里则用/grill-with-docs因为同样的拷问会留下纸质轨迹严格更好。/grilling拷问原语本身——轮次rounds、边界frontier、事实是 agent 的活儿、决策是你的见 grilling/SKILL.md。/grill-me与/grill-with-docs是两个命名入口/triage、/wayfinder、/improve-codebase-architecture内部都在跑它。只有在“只想要没有包装的拷问”时才直接找它。/resolving-merge-conflictsresolving-merge-conflicts/SKILL.md逐 hunk 处理进行中的 merge/rebase 冲突按意图解析——追溯每一侧的一手资料——而不是挑选代码行然后完成操作。它从不运行--abort。独立于所有 flow当你已经身在冲突之中时找它。/prototype一个回答单个设计问题的小型可抛弃程序——这个状态模型感觉对吗、UI 应该长什么样。如上所述结论折回真实代码原型本身作为一手资料留在prototype/name分支上。它是主流程第 2 步的绕行但任何“纸上难定的设计问题”都可以找它。/researchresearch/SKILL.md把阅读的腿脚活委托给后台 agent——它对照一手资料调查问题然后给仓库留下一份带引用的 Markdown 文件。你可以在它阅读时继续干活。它产出的文件是要带进主流程在/grill-with-docs处的东西研究滋养思考而不是替代思考。/to-questionnaireto-questionnaire/SKILL.md当卡住你的东西不在你脑子里、也不在代码库里而是在别人的脑子里时它给对方写一份问卷去填。它是/grill-me的反面不是拷问你关于主题而是拷问你关于发送发给谁、你需要什么回来并把问题对准缺口。回来的东西是/grill-with-docs或/to-spec的素材。/wizardwizard/SKILL.md用于只有人能做的步骤——开通基础设施、设置凭据或 CI secrets、点击不熟悉的第三方后台、跑一次性迁移或切换。它生成一个交互式 bash 脚本基于template.sh的 stage-by-stage 进度、确认门、跨平台开 URL、隐藏式密钥输入、幂等的.envupsert、gh secret/gh variable写入逐个打开 URL、捕获每个值、写进.env和 GitHub secrets让这个流程不再每次都要向 agent 重新解释。它是模型可调用的agent 一撞到“只有你能通过的墙”就拿起它如果 agent 自己能做就不该用它——它只为“人真正在回路里”的场合存在。/wait-whatwait-what/SKILL.md对一条没接住的消息的矫正。在任何其他技能内部的对话中途使用agent 用你缺失的上下文、用CONTEXT.md的词汇、用简化技术英语重新解释它刚说的话。它是在事后起作用/grill-with-docs是事前解药——因为提前约定好的共同语言才是让黑话根本不出现的办法。/teachteach/SKILL.md跨多个会话学习一个概念把当前目录当作有状态的工作区MISSION.md、RESOURCES.md、learning-records/、lessons/*.html等结构。/writing-for-agentswriting-for-agents/SKILL.md写作“agent 会消费的文档”的参考——技能本身、AGENTS.md、被指针指向的文档。它讲解上下文指针、两步负荷context load 与 cognitive load、信息层级与渐进披露、完成判据等写作机制。八、前置条件Precondition先配置再开工/setup-matt-pocock-skillssetup-matt-pocock-skills/SKILL.md在第一次运行任何工程 flow 之前执行用来配置其他技能所假设的issue tracker、triage 标签词汇与领域文档布局CONTEXT.md与 ADR 放哪里。它支持 GitHub默认、GitLab、本地 markdown.scratch/feature/以及自定义 issue tracker——“自定义 issue tracker 也可以用”。配置产物是docs/agents/issue-tracker.md、docs/agents/domain.md与装有 triage 时docs/agents/triage-labels.md并写入CLAUDE.md或AGENTS.md的## Agent skills块这些文件以后可直接手工编辑只有想切换 tracker 或重来时才需要重跑该技能。仓库中的issue-tracker-github.md、issue-tracker-gitlab.md、issue-tracker-local.md、triage-labels.md、domain.md就是该技能使用的种子模板。九、从源码看这个路由器的组织方式engineering/README.md 对全部工程技能做了一个二分法恰好解释了 Ask Matt 路由图中“谁可以被自动唤起”的底层机制User-invoked用户唤起只有你键入才会触达——ask-matt之外还有grill-with-docs、triage、improve-codebase-architecture、setup-matt-pocock-skills、to-spec、to-tickets、implement、wayfinder其声明方式就是disable-model-invocation: trueClaude Code 侧或agents/openai.yaml里的policy.allow_implicit_invocation: falseCodex 侧。Model-invoked模型唤起模型或用户都能触达——prototype、diagnosing-bugs、research、tdd、domain-modeling、codebase-design、code-review、resolving-merge-conflicts、wizard。Ask Matt 作为路由器的设计由此一目了然需要人来判断“接下来该干什么”的决策全部收窄为一次用户主动的/ask-matt一旦方向确定剩下的执行技能大多可以被模型自行唤起。这也解释了为什么 router 本身必须是disable-model-invocation——路由是一个人在回路中的判断不应被模型擅自代劳。十、把这张地图用起来综合全文一次典型会话的走法是首次使用前先跑/setup-matt-pocock-skills把 issue tracker、triage 标签与领域文档布局配置好进入工作目录用/grill-with-docs非目录则/grill-me拷问并锐化想法边问边把术语写进CONTEXT.md、把难逆转的决策记成 ADR若某个问题需要可运行的答案用/handoff→/prototype→/handoff绕行判断是否多会话构建是则/to-spec→/to-tickets→ 逐工单/implement之间/clear否则直接/implement/implement内部驱动/tdd提交前跑/code-review双轴审查全程注意上下文卫生13 步保持在一个不中断的窗口里逼近智能区上限时只在阶段边界处做/compact边界处的五个选项Continue //clear//handoff/ Subagent //compact按 PHASE-BOUNDARIES.md 的五问树自顶向下决策身处“bug 堆积 / 东西坏了 / 巨大迷雾工程”三种起始情境时分别从/triage、/diagnosing-bugs、/wayfinder三张匝道汇入日常维护交给/improve-codebase-architecture词的问题找/domain-modeling与/codebase-design其余独立场景按 Standalone 一节各取所需。当你不确定此刻该用哪个技能时直接键入/ask-matt——你不需要记住每个技能路由器替你索引。【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →