跳转至

设置 Matt Pocock 技能

它的作用

setup-matt-pocock-skills 会回答关于一个仓库的三个问题:问题存放在哪里、分诊标签叫什么、领域文档位于哪里。它会将答案记录为 docs/agents/ 下的 Markdown 文件。

这些文件是不同仓库之间唯一会变化的内容。技能本身在所有地方都相同。它们在运行时读取 docs/agents/issue-tracker.md,并按照其中的说明执行。这就是为什么这套技能不绑定 GitHub,也为什么你从不编辑技能文件来让它指向另一个跟踪器。用“将技能链接到自定义问题跟踪器”来调用它,可以适用于任何你能以编程方式连接的对象,且无需修改技能。

它是一个提示驱动的技能,而不是确定性脚本。它会读取你的 git remote、CLAUDE.md 和 GLOSSARY.md,提出它发现的内容,并在写入任何内容之前等待你确认。

何时使用

你通过输入 /setup-matt-pocock-skills 来调用它;代理 不会自行使用它。它的元数据有意将其标记为不可调用,因此没有其他技能可以替你触发它。

每个仓库使用一次,在任何其他工程技能首次使用之前使用它。如果 triage、to-spec、to-tickets 或 wayfinder 开始猜测你的问题应该去哪里,或者应用你的跟踪器中不存在的标签,说明这个仓库尚未完成设置。你可以在项目进行到一半的仓库中运行它。该技能会读取已经存在的内容,因此不会丢失之前的工作。

前置条件

它会写入你运行它的仓库:

它写入 位置
issue-tracker.md docs/agents/
domain.md docs/agents/
triage-labels.md docs/agents/,仅当安装了 triage 技能时
一个 ## Agent skills 块 CLAUDE.md 或 AGENTS.md 中已存在的那个

你以 Markdown 形式提交所有内容。没有用户级或全局模式。配置存放在仓库中,因此每个仓库都有自己的副本。

三个决策

它会在每个部分开头给出推荐答案,并跳过其探索过程已经回答的问题。大多数运行只需要两次确认。

决策 它建议的内容 何时询问
问题跟踪器 与你的 git remote 匹配的那个 总是询问,因为这是唯一真正的选择
分诊标签 保留五个规范名称(needs-triage、needs-info、ready-for-agent、ready-for-human、wontfix) 仅当安装了 triage 技能时
领域文档 单上下文:根目录下一个 GLOSSARY.md 加上 docs/adr/ 仅当它发现 monorepo 信号时,然后它会提供一个多上下文 GLOSSARY-MAP.md

跟踪器选项:

选项 问题所在位置 需要
GitHub 仓库的 GitHub Issues gh CLI
GitLab 仓库的 GitLab Issues glab CLI
本地 Markdown 本仓库中 .scratch/<feature>/ 下的文件 无,甚至不需要远程仓库
其他 你指定的任何位置 你提供的一段描述工作流程的文字

前三个作为模板随技能提供,开箱即用。本地 Markdown 是一个完整选项,而不是回退方案。该技能支持没有远程仓库的单人项目。一个注意事项:如果你使用 GitHub,就不要使用本地 Markdown。它们是替代方案,所以请选择其中一个。

其他 也是一个完整选项。Jira、Linear、Azure DevOps 和 Beads 都是这样工作的。你描述工作流程,技能会将你的文字记录到 docs/agents/issue-tracker.md 中,下游技能会遵循这些文字。用户已经构建过这样的方案:一个 Jira-over-MCP 变体、一个形如 gh 的 Gitea CLI、一个手工搭建的本地仪表盘。

常见问题

我必须使用 GitHub 吗?

不。GitHub、GitLab 以及 .scratch/ 下的本地 Markdown 都作为现成模板提供,其他任何方案都可以通过“其他”路径实现。这是被问得最多的问题,大致是这些说法:“硬编码绑定到 GitHub”、“我可以使用 GitLab / Jira 吗”、“Azure DevOps 怎么办”。答案始终相同:setup 选择跟踪器,而不是技能。

更新技能后,我需要重新运行它吗?

在 v1.1 之后,直接答案是:需要。技能自身的结束提示更温和。它告诉你只有在切换跟踪器或重新开始时才重新运行。两种说法都有道理。种子模板会随版本变化,因此来自旧版本的 docs/agents/issue-tracker.md 可能相对于现在读取它的技能而过时。如果某个下游技能的行为与文档描述不同,请重新运行 setup。它很轻量。

它写入了 CLAUDE.md,但我使用的是 Codex。

这是一个已知缺口,目前仍未解决。文件选择规则是“如果 CLAUDE.md 存在,则编辑 CLAUDE.md,否则编辑 AGENTS.md”。它检查的是哪个文件存在,而不是哪个 运行框架 正在运行。在一个遗留了来自 Claude Code 的 CLAUDE.md 的仓库中,该技能会将它的 ## Agent skills 块写入一个 Codex 从不读取的文件。用户有两种变通方法:手动将该块移动到 AGENTS.md,或者以 AGENTS.md 为准,并将 CLAUDE.md 做成指向它的一行指针。如果两个文件都不存在,技能会询问你要创建哪一个,而不是自行选择。这曾让那些期望它自行决定的人感到困惑。

它没有创建我的分诊标签。

它不会创建。docs/agents/triage-labels.md 是一个映射:它告诉 /triage 你的跟踪器中的哪些字符串对应五个规范角色。它不会运行 gh label create。在一个全新的 GitHub 仓库中,这些标签尚不存在,用户已经不止一次将其作为 bug 提交。有两个后果:

  • 如果你的跟踪器已经使用规范名称,那么映射就是一个恒等表,没有需要配置的内容。这是预期的常见情况,而不是缺失的步骤。
  • 该技能也不会创建 wayfinder 的 wayfinder:map 和 wayfinder:<type> 标签,并且 gh issue create --label <missing> 会失败,而不是创建标签。在 GitHub 仓库上第一次运行 wayfinder 之前,请手动创建它们。

我能在这里配置其他技能的行为吗(盘问 的节奏、问题格式、语气)?

不能。它只配置三样东西:跟踪器、标签、文档布局。用户曾希望把它作为按用户偏好设置的位置。答案是:技能保持有主见的默认行为,不接受按用户配置。偏好应作为普通指令放在你的 CLAUDE.md 中,每个技能本来就会读取它。

我能否将配置保留在 ~/.claude 中,而不是提交到每个仓库?

目前不行。有用户在多个仓库中运行这些技能,并已提出此需求,但尚不存在用户级模式。每个仓库都带有自己的 docs/agents/。

有一个技能来配置其他技能,这难道不奇怪吗?

一个长期存在的抱怨确实如此,原话是:“用一个技能来设置另一个技能让我感觉不对劲:这意味着 LLM 在配置它自己的技能。” 这种权衡是真实存在的。如果没有设置步骤,每个涉及问题的技能都需要自己的一份跟踪器说明。输出是你可读可编辑的 Markdown,这限制了风险。你可以阅读它写入的每个文件并手动修改。日常更改应通过这种方式进行,而不是再运行一次。

如果满足以下条件,说明它正在工作

  • 存在 docs/agents/issue-tracker.md 和 docs/agents/domain.md;如果安装了 triage,还存在 triage-labels.md。
  • 你的 harness 读取的指令文件中出现 ## Agent skills 部分,其中有一行摘要,指向上述每个文件。
  • 它建议的跟踪器与你使用的远程仓库匹配,且标签字符串与你跟踪器中已存在的标签匹配。
  • 之后,/to-tickets 发布时不会询问你问题存放在哪里,/triage 会应用标签而不是自行发明标签。
  • 技能文件本身没有任何变化。如果设置步骤编辑了 SKILL.md,说明出了问题。

它在流程中的位置

setup-matt-pocock-skills 是工程流程的一次性设置,是其他所有内容都假定的前提条件,而不是链中的一个步骤。它的相邻技能是它的读取者:triage,应用这里写入的标签词汇;to-spec 和 to-tickets,发布到此处命名的跟踪器;以及 wayfinder,读取同一跟踪器文件中的 “Wayfinding operations” 部分,以了解如何存储地图和子工单。domain-modeling 随后填充设置步骤记录的领域文档布局。只有当你确定某个术语或决策时,它才会创建 GLOSSARY.md 和 ADR,因此设置后没有领域文档的仓库是正常的。至于下一步该使用哪个技能,ask-matt 会路由整个集合。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 skills13/skills