SuperAPI AI 工具集

setup-matt-pocock-skills

编程与开发

查看项目

更新于 10-16 06:07

技能介绍

用途

Setup Matt Pocock's Skills 用于为仓库搭建工程技能所依赖的每仓库配置。它会在首次使用相关工程技能前运行一次,生成并写入以下三类配置:

  • 问题跟踪器(Issue tracker):问题存放的位置(默认 GitHub;也开箱支持本地 Markdown)
  • 分诊标签(Triage labels):五个规范分诊角色所使用的标签字符串
  • 领域文档(Domain docs):CONTEXT.md 与 ADR 的存放位置,以及读取它们的消费规则

该技能是提示驱动的,不是确定性脚本。它会先探索、展示发现结果、仅确认仍然开放的选择,然后写入。

主要能力

  • 探索仓库当前状态,包括 git remote 与 .git/config、当前 harness 的指令文件(如 AGENTS.md 或 CLAUDE.md)、根目录的 CONTEXT.md 与 CONTEXT-MAP.md、docs/adr/ 与 src//docs/adr/、docs/agents/、.scratch/、分诊技能是否已安装,以及 monorepo 信号(pnpm-workspace.yaml、package.json 的 workspaces 字段、packages/ 等)。
  • 汇总已存在与缺失的内容,记录已由仓库文件或当前 harness 确定的选择,仅对仍开放的选择提问。
  • 按 A、B、C 三个部分依次处理,需要回答时一次只问一个部分、一个答案。
  • 每个开放部分先给出推荐答案,便于用户一词接受;仅在选择确实分叉时给出一行说明;探索已确定的部分直接跳过。

使用方式

第 1 步:探索

查看当前仓库以了解起始状态,读取已有内容而不做假设:

  • git remote -v 与 .git/config:是否为 GitHub 仓库?是哪一个?
  • 当前 harness 的文档化指令文件(例如 AGENTS.md 或 CLAUDE.md):是否已包含 ## Agent skills 部分?
  • 仓库根目录的 CONTEXT.md 与 CONTEXT-MAP.md
  • docs/adr/ 以及任何 src/*/docs/adr/ 目录
  • docs/agents/:该技能此前的输出是否已存在?
  • .scratch/:是否已有本地 Markdown 问题跟踪器约定的迹象
  • 分诊技能是否已安装?(与本技能并列的分诊技能文件夹,或可用技能中有 triage。)这决定 B 部分是否运行。
  • Monorepo 信号:pnpm-workspace.yaml、package.json 中的 workspaces 字段,或带有自身 src/ 的 packages/*。将这些视为包布局证据;其缺失并不排除多个已文档化上下文。

第 2 步:展示发现并提问

汇总已存在与缺失的内容。记录已由仓库文件或当前 harness 确定的选择,然后仅询问仍然开放的选择。按顺序处理各部分,需要回答时一次一个部分、一个答案。

每个开放部分先给出推荐答案,便于用户一词接受。仅在选择确实分叉时给出一行说明;探索已确定的部分直接跳过(未安装分诊时跳过 B 部分,布局已文档化时跳过 C 部分)。

A 部分:问题跟踪器。

说明:"问题跟踪器"是本仓库问题的存放位置。to-tickets、triage、to-spec 等技能会从中读取并写入。它们需要知道是调用 gh issue create、在 .scratch/ 下写 Markdown 文件,还是遵循你描述的其他工作流。请选择你实际跟踪本仓库工作的地方。

默认姿态:这些技能为 GitHub 设计。如果 git remote 指向 GitHub,则提议 GitHub。如果 git remote 指向 GitLab(gitlab.com 或自托管主机),则提议 GitLab。否则(或用户偏好时),提供:

  • GitHub:问题存放在仓库的 GitHub Issues(使用 gh CLI)
  • GitLab:问题存放在仓库的 GitLab Issues(使用 glab CLI)
  • 本地 Markdown:问题作为文件存放在本仓库 .scratch/<feature>/ 下(适合个人项目或无远程仓库)
  • 其他(Jira、Linear 等):请用户用一段话描述工作流;技能将记录为自由文本

将选择记录在 docs/agents/issue-tracker.md。如果该文件已存在,保留其仓库特定约定,仅按确认的选择编辑必要内容。GitHub 与 GitLab 模板带有"PRs as a request surface"标志,默认关闭。保持关闭且不要提起:希望外部 PR 进入分诊队列的用户可稍后在文件中翻转该标志。

B 部分:分诊标签词汇表。 如果分诊技能未安装(探索已告知),完全跳过此部分,因为未安装的技能不需要标签。

如果已安装且标签词汇表尚未由仓库或 harness 确定,只问一个问题:

是否保留默认分诊标签?(推荐:是)

默认值是五个规范角色,每个标签字符串等于其名称:needs-triage、needs-info、ready-for-agent、ready-for-human、wontfix。若回答是,则按原样写入。仅当用户说不时(通常因为其跟踪器已使用其他名称,例如用 bug:triage 表示 needs-triage),收集覆盖项,使分诊应用现有标签而非创建重复项。如果仓库或 harness 已确定词汇表,则保留且不再询问。

C 部分:领域文档。 当已文档化的单上下文或多上下文布局已确定时,使用现有布局。如果尚未确定,根据仓库实际领域、结构和 context-map 信号提议布局;不要仅因缺少多上下文文档就选择单上下文。仅当该选择仍开放时才确认。

当布局尚未确定时,没有现有多上下文文档的仓库,如果其实际领域和结构支持,仍可选择多上下文;不要仅因缺少 CONTEXT-MAP.md 就默认。

第 3 步:确认并编辑

当仍有真实选择或实质性编辑时,向用户展示预期更改的草稿。当 harness 或用户请求已确定目标时,展示编辑并继续,不添加额外的批准仪式:

  • 要添加到当前 harness 实际消费的指令文件中的 ## Agent skills 块(选择规则见第 4 步)
  • docs/agents/issue-tracker.md、docs/agents/domain.md 和 docs/agents/triage-labels.md 的内容(最后一个仅在安装分诊时)

当选择仍开放时,允许他们在写入前编辑。当目标已确定时,按展示的编辑继续,不要发明另一个批准仪式。

第 4 步:写入

选择要编辑的文件:

  • 编辑当前 harness 实际消费的指令文件,使用其文档化的优先级。对于 Codex,当 AGENTS.md 是文档化的仓库指令文件时,创建或编辑 AGENTS.md,即使 CLAUDE.md 也存在;保留另一个文件。
  • 如果恰好一个现有指令文件与 harness 兼容,直接使用而不询问。如果两者都存在且 harness 未文档化优先级,报告该缺口并仅询问这个真实选择。
  • 如果两个指令文件都不存在且 harness 指定了目标,创建该目标;否则询问用户创建哪一个。
  • 如果所选文件中已存在 ## Agent skills 块,就地更新其内容,而不是追加重复项。不要覆盖用户对周围部分的编辑。

该块内容:

## Agent skills

### Issue tracker

[问题跟踪位置的一行摘要]. See `docs/agents/issue-tracker.md`.

### Triage labels

[标签词汇表的一行摘要]. See `docs/agents/triage-labels.md`.

### Domain docs

[布局的一行摘要:"single-context" 或 "multi-context"]. See `docs/agents/domain.md`.

仅当分诊已安装且 B 部分运行过时,才包含 ### Triage labels 子块并写入 docs/agents/triage-labels.md。未安装时,两者均省略。

然后使用本技能文件夹中的种子模板作为起点写入 docs 文件:

  • issue-tracker-github.md:GitHub 问题跟踪器
  • issue-tracker-gitlab.md:GitLab 问题跟踪器
  • issue-tracker-local.md:本地 Markdown 问题跟踪器
  • triage-labels.md:标签映射(仅在安装分诊时)
  • domain.md:领域文档消费规则 + 布局

对于"其他"问题跟踪器,根据用户描述从头编写 docs/agents/issue-tracker.md。

第 5 步:完成

告知用户设置已完成,以及哪些工程技能现在会从这些文件读取。提及他们之后可以直接编辑 docs/agents/*.md;仅当想切换问题跟踪器或从头重启时,才需要重新运行此技能。

适用场景

  • 首次在仓库中使用 Matt Pocock 的工程技能集之前,需要一次性搭建配置。
  • 需要为 to-tickets、triage、to-spec 等技能明确问题跟踪位置、分诊标签和领域文档布局。
  • 仓库使用 GitHub、GitLab、本地 Markdown 或其他问题跟踪器,需要统一约定。
  • 单上下文或多上下文领域文档布局需要根据仓库实际情况确定。

限制

  • 该技能是提示驱动的,不是确定性脚本;需要交互式确认仍开放的选择。
  • 分诊标签部分仅在分诊技能已安装时运行;未安装时跳过且不写入相关文件。
  • 领域文档布局仅在选择仍开放时确认;已确定时直接沿用。
  • 不覆盖用户对指令文件周围部分的编辑;已存在的 ## Agent skills 块就地更新而非追加。
  • 关于具体收费、价格、平台支持范围、效果等事实,资料中暂未提供。