关于 setup-matt-pocock-skills
用于为仓库生成配置的 skill,供其他工程类 skill 读取。它记录问题跟踪器、分诊标签和领域文档(GLOSSARY.md 与 ADR)的约定,并在写入前让用户确认。适合首次在仓库中启用这些 skill 的团队。
主要功能
- 01检测仓库的 GitHub 或 GitLab 远程配置
- 02记录问题跟踪器的使用方式
- 03配置分诊标签的名称映射
- 04生成领域文档的读取规则
- 05写入前展示草稿并允许编辑
适用场景
- 01为新仓库初始化工程 skill 所需的配置文件
- 02将已有的分诊标签名称映射到标准角色
- 03在单上下文或多上下文布局之间选择领域文档结构
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mattpocock/ skills --skill setup-matt-pocock-skills安装后在 Claude Code 中输入/setup-matt-pocock-skills确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
domain.mdissue-tracker-github.mdissue-tracker-gitlab.mdissue-tracker-local.mdtriage-labels.mdagents/openai.yaml详细介绍
搭建 Matt Pocock's Skills
为工程类技能搭建其所依赖的仓库级配置:
- Issue 跟踪器:issue 的存放位置(默认为 GitHub;开箱即支持本地 Markdown)
- Triage 标签:五种标准 triage 角色所使用的字符串
- 领域文档:
GLOSSARY.md与 ADR 的存放位置,以及读取它们时的使用规则
这是一个由提示词驱动的技能,而非确定性脚本。先探索,再汇报发现的内容,与用户确认后再写入。
流程
1. 探索
查看当前仓库的初始状态。阅读已有内容,不要做任何假设:
git remote -v和.git/config:这是否是 GitHub 仓库?如果是,是哪一个?- 仓库根目录下的
AGENTS.md和CLAUDE.md:是否存在?其中是否已有## Agent skills小节? - 仓库根目录下的
GLOSSARY.md和GLOSSARY-MAP.md docs/adr/以及所有src/*/docs/adr/目录docs/agents/:本技能之前的输出是否已存在?.scratch/:表明已在使用本地 Markdown issue 跟踪约定的迹象- 是否已安装
triage技能?(与本技能同级的triage技能文件夹,或可用技能列表中的triage。)这决定了 B 节是否运行。 - Monorepo 信号:
pnpm-workspace.yaml、package.json中的workspaces字段,或带有各自src/的已填充packages/*。这些仅出现在真正的大型多包仓库中;若不存在,则意味着单上下文,而这几乎是所有仓库的情况。
2. 呈现发现并提问
总结已存在和缺失的内容。然后按顺序处理各个部分:一个部分给出一个回答,再进入下一个部分。
每个部分都以推荐答案开头,让用户只需一个词即可确认。仅当选择确实存在分支时,才给出一行说明。若探索阶段已经确定答案,则直接跳过该部分(当 triage 未安装时跳过 B 部分,当没有 monorepo 时跳过 C 部分)。
A 部分:Issue 追踪器。
说明:“Issue 追踪器”是本仓库 issue 的存放位置。
to-tickets、triage和to-spec等技能会读写它。它们需要知道应调用gh issue create,还是在.scratch/下写入 markdown 文件,或遵循你描述的其他工作流。请选择你实际用于追踪本仓库工作的地方。
默认立场:这些技能是为 GitHub 设计的。如果 git remote 指向 GitHub,则推荐 GitHub。如果 git remote 指向 GitLab(gitlab.com 或可自托管的主机),则推荐 GitLab。否则(或用户有偏好时),提供以下选项:
- GitHub:issue 存放在仓库的 GitHub Issues 中(使用
gh命令行工具) - GitLab:issue 存放在仓库的 GitLab Issues 中(使用
glab命令行工具) - 本地 Markdown:issue 以文件形式存放在本仓库的
.scratch/<feature>/下(适合个人项目或没有远程仓库的仓库) - 其他(Jira、Linear 等):请用户用一段话描述工作流;技能会将其记录为自由文本
将选择记录到 docs/agents/issue-tracker.md。GitHub 和 GitLab 模板带有一个“将 PR 作为需求入口”标记,默认关闭。保持关闭且不要主动提及:想让外部 PR 进入分诊队列的用户,可以之后在文件中修改该标记。
B 部分:分诊标签词表。 若 triage 技能未安装(探索阶段已得知),则完全跳过本部分,因为未安装的技能不需要标签。
若已安装,只问一个问题:
是否保留默认的分诊标签?(推荐:是)
默认值为五个标准角色,每个标签字符串与其名称相同:needs-triage、needs-info、ready-for-agent、ready-for-human、wontfix。选择“是”时,原样写入。只有用户选择“否”(通常是因为其 issue 追踪器已使用其他名称,例如用 bug:triage 代替 needs-triage)时,才收集覆盖配置,以便 triage 应用已有标签而不是创建重复标签。
C 部分:领域文档。 默认采用单上下文(仓库根目录下一个 GLOSSARY.md 加 docs/adr/)。这适用于几乎所有仓库,直接写入,无需询问。
仅当探索发现 monorepo 信号时,才提供多上下文选项(根目录的 GLOSSARY-MAP.md 指向各上下文的 GLOSSARY.md 文件),然后确认用户想要哪种布局。
3. 确认与编辑
向用户展示以下内容的草稿:
- 要添加到
CLAUDE.md/AGENTS.md中正在编辑的那个文件的## Agent skills块(选择规则见第 4 步) docs/agents/issue-tracker.md、docs/agents/domain.md和docs/agents/triage-labels.md的内容(最后一个仅在安装了triage时)
在写入前,让用户进行编辑。
4. 写入
选择要编辑的文件:
- 如果存在
CLAUDE.md,则编辑它。 - 否则,如果存在
AGENTS.md,则编辑它。 - 如果两者都不存在,询问用户要创建哪一个,不要替用户做选择。
当 CLAUDE.md 已存在时,绝不创建 AGENTS.md(反之亦然);始终编辑已存在的那个文件。
如果所选文件中已存在 ## Agent skills 块,则原地更新其内容,而不是追加重复的块。不要覆盖用户对周围章节所做的编辑。
该块内容如下:
## Agent skills
### Issue tracker
[one-line summary of where issues are tracked]. See `docs/agents/issue-tracker.md`.
### Triage labels
[one-line summary of the label vocabulary]. See `docs/agents/triage-labels.md`.
### Domain docs
[one-line summary of layout: "single-context" or "multi-context"]. See `docs/agents/domain.md`.
仅当已安装 triage 且 B 部分已运行时,才包含 ### Triage labels 子块,并编写 docs/agents/triage-labels.md。否则两者都省略。
当 B 部分在 GitHub 或 GitLab 上运行时,为跟踪器中缺少的每个已配置标签创建标签(gh label create / glab label create)。
然后以本技能文件夹中的种子模板为起点编写文档文件:
- issue-tracker-github.md:GitHub 问题跟踪器
- issue-tracker-gitlab.md:GitLab 问题跟踪器
- issue-tracker-local.md:本地 Markdown 问题跟踪器
- triage-labels.md:标签映射(仅当安装了
triage时) - domain.md:领域文档使用者规则与布局
对于“其他”问题跟踪器,根据用户的描述从头编写 docs/agents/issue-tracker.md。
5. 完成
告知用户设置已完成,并说明哪些工程技能将从这些文件读取配置。提示用户之后可以直接编辑 docs/agents/*.md;只有在需要切换问题跟踪器或从头重新开始时,才需要重新运行此技能。