用途
setup-matt-pocock-skills 用于为当前仓库配置 Matt Pocock 的 engineering skills 所假定的每仓库设置。官方说明要求在首次使用其他 engineering skills 之前运行一次。
它建立三类配置:
- Issue tracker:issues 存放在哪里(默认 GitHub;也原生支持 local markdown)。
- Triage labels:五个 canonical triage roles 使用的字符串。
- Domain docs:GLOSSARY.md 与 ADRs 的位置,以及读取它们的 consumer rules。
该技能是 prompt-driven skill,不是确定性脚本。其流程为:先探索,展示发现,与用户确认,然后写入。
主要能力与使用方式
1. 探索
查看当前 repo,理解起始状态,读取已有内容而不做假设,包括:
- git remote -v 和 .git/config(是否为 GitHub repo、是哪一个)
- repo root 的 AGENTS.md 和 CLAUDE.md(是否存在、是否已有 ## Agent skills section)
- repo root 的 GLOSSARY.md 和 GLOSSARY-MAP.md
- docs/adr/ 以及任何 src/*/docs/adr/ directories
- docs/agents/(此前是否已由该 skill 输出内容)
- .scratch/(表明已在用 local-markdown issue tracker 约定)
- 是否已安装 triage skill(本 skill 旁边有 triage folder,或 available skills 中存在 triage);这决定 Section B 是否运行
- Monorepo signals:pnpm-workspace.yaml、package.json 的 workspaces field,或已有内容且各自带 src/ 的 packages/*。只有真正的大型 multi-package repo 才算;没有这些 signal 即为 single-context,几乎所有 repo 都如此。
2. 呈现发现并询问
总结已有内容与缺失内容。按顺序处理各个 section:每次一个 section、一个回答,再进入下一个。每个 section 先给 recommended answer,让用户用一个词即可接受;只有选择真正分叉时才给一行 explainer;探索已确定答案时跳过整个 section(未安装 triage 时跳过 Section B;没有 monorepo 时跳过 Section C)。
Section A - Issue tracker:说明 "issue tracker" 是该 repo 存放 issues 的地方,to-tickets、triage 和 to-spec 等 skills 会从中读取并写入,它们需要知道是调用 gh issue create、在 .scratch/ 下写 markdown 文件,还是遵循其他工作流。默认姿态是为 GitHub 设计:若 git remote 指向 GitHub,推荐 GitHub;若指向 GitLab(gitlab.com 或 self-hosted host),推荐 GitLab;否则提供 GitHub(使用 gh CLI)、GitLab(使用 glab CLI)、Local markdown(issues 作为文件位于 .scratch/<feature>/ 下,适合个人项目或没有 remote 的 repos)、Other(Jira、Linear 等,由用户用一段话描述工作流,skill 记录为 freeform prose)。选择记录到 docs/agents/issue-tracker.md。GitHub 和 GitLab templates 带有 "PRs as a request surface" flag,默认 off;保持关闭且不提问,用户可之后直接修改文件。
Section B - Triage label vocabulary:未安装 triage 则完全跳过。已安装则只问:是否保留默认 triage labels(recommended: yes)。默认值为五个 canonical roles,label string 与 role name 相同:needs-triage、needs-info、ready-for-agent、ready-for-human、wontfix。回答 yes 即原样写入;只有用户说 no(通常因 tracker 已用其他名称,例如用 bug:triage 表示 needs-triage)时才收集 overrides,避免 triage 创建重复 labels。
Section C - Domain docs:默认 single-context,即 repo root 下一个 GLOSSARY.md 加 docs/adr/,适合几乎所有 repo,直接写入、无需提问。只有探索发现 monorepo signals 时才提供 multi-context(root 下 GLOSSARY-MAP.md 指向每个 context 的 GLOSSARY.md files),并确认用户想要哪种 layout。
3. 确认并编辑
向用户展示草稿:要添加到 CLAUDE.md / AGENTS.md 的 ## Agent skills block,以及 docs/agents/issue-tracker.md、docs/agents/domain.md,和仅在安装了 triage 时才有的 docs/agents/triage-labels.md 内容。写入前允许用户修改。
4. 写入
选择要编辑的文件:
- 如果 CLAUDE.md 存在,编辑它。
- 否则如果 AGENTS.md 存在,编辑它。
- 如果两者都不存在,询问用户要创建哪一个,不要替用户选择。
- 当 CLAUDE.md 已存在时,绝不创建 AGENTS.md(反之亦然);始终编辑已经存在的那个。
- 如果所选文件已有 ## Agent skills block,就地更新其内容,而不是追加重复 block;不要覆盖周围 sections 的用户编辑。
写入的 Block 形式:
## 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 且 Section B 实际运行时,才包含 ### Triage labels sub-block 并写入 docs/agents/triage-labels.md;否则两者都省略。
随后使用本 skill folder 中的 seed templates 作为起点写 docs files:
- issue-tracker-github.md - GitHub issue tracker
- issue-tracker-gitlab.md - GitLab issue tracker
- issue-tracker-local.md - local-markdown issue tracker
- triage-labels.md - label mapping(仅当安装了 triage)
- domain.md - domain doc consumer rules + layout
对于 "other" issue trackers,根据用户描述从头写 docs/agents/issue-tracker.md。
5. 完成
告知用户 setup 已完成,以及哪些 engineering skills 现在会读取这些文件。说明用户之后可以直接编辑 docs/agents/*.md;只有当他们想切换 issue trackers 或从头开始时,才需要重新运行此 skill。
适用场景
适用于已经采用 Matt Pocock engineering skills 工作流的仓库,在首次使用其他 engineering skills 之前完成一次配置。未安装 triage skill 时不会涉及 triage labels 配置;非 monorepo 的仓库不会涉及 multi-context domain docs 选择。
限制
该 skill 为 prompt-driven,不是确定性脚本,执行过程依赖探索结果与用户确认。其默认设计面向 GitHub,GitLab 与 local markdown 为原生支持的备选;其他 tracker(Jira、Linear 等)需要用户自行描述工作流并记录为自由文本。关于该 skill 的具体价格、收费、平台支持范围、运行效果等信息,资料中暂未提供。