跳转到正文
报告库
用途分类 / 其他用途

Setup Matt Pocock Skills Skill 安全审计

作者说它能做什么(原文)

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

第三方安全检查结论

发现安全风险

已检查文件
7
发现的风险
2
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

探索并汇报 Git 远程配置时可能暴露嵌入 URL 的凭据

原文依据:2 处
发现了什么

Skill 明确要求读取 `git remote -v` 和 `.git/config`,随后总结发现。旧仓库或自动化环境有时会把访问令牌、用户名或密码嵌入远程 URL;这里没有要求在展示前清除 URL 的 userinfo、令牌或查询参数。

为什么需要注意

如果代理原样展示远程地址,凭据可能进入聊天记录、日志或后续模型上下文,使他人能够访问相应代码托管账户或仓库。

该 Skill 会检查 `git remote -v` 和 `.git/config`,之后向用户总结发现。如果远程 URL 内嵌用户名、密码、访问令牌或敏感查询参数,而代理直接展示原始值,凭据可能进入对话或日志。源码没有要求隐藏这些字段。用户可要求作者只报告托管平台和仓库名,并在展示前移除 URL 的 userinfo、令牌和查询参数。

SKILL.md:21来自说明文档打开原文件
Look at the current repo to understand its starting state. Read whatever exists; don't assume:- `git remote -v` and `.git/config`: is this a GitHub repo? Which one?- `AGENTS.md` and `CLAUDE.md` at the repo root: does either exist? Is there already an `## Agent skills` section in either?- `CONTEXT.md` and `CONTEXT-MAP.md` at the repo root- `docs/adr/` and any `src/*/docs/adr/` directories- `docs/agents/`: does this skill's prior output already exist?- `.scratch/`: a sign that a local-markdown issue tracker convention is already in use- Is the `triage` skill installed? (a `triage` skill folder alongside this one, or `triage` in your available skills.) This decides whether Section B runs at all.- Monorepo signals: a `pnpm-workspace.yaml`, a `workspaces` field in `package.json`, or a populated `packages/*` with its own `src/`. These are present only in a genuinely large multi-package repo; their absence means single-context, which is almost every repo.
查看另外 1 个位置
SKILL.md:32来自说明文档打开原文件
### 2. Present findings and askSummarise what's present and what's missing. Then take the sections in order. One section, one answer, then the next.Lead each section with the recommended answer so the user can accept it in a word. Give a one-line explainer only when the choice genuinely branches; skip the section entirely when exploration already settled it (Section B when `triage` isn't installed, Section C when there's no monorepo).
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
中风险

后续代理会读取外部工单和评论,但模板没有提示将其视为不可信内容

原文依据:6 处
发现了什么

安装后的模板要求后续 Skill 获取工单正文、评论以及外部贡献者的 PR/MR,并同时提供评论、加标签、分配和关闭等写权限操作。模板没有明确要求忽略正文或评论中面向代理的指令。攻击者可在公开工单或评论里放入提示注入文本。

为什么需要注意

若后续代理把外部文本当成操作指令,可能错误评论、改标签、认领或关闭工单,并使项目队列和协作者收到误导信息。

该 Skill 会把工单模板写入仓库;GitHub 模板让后续 Skill 读取工单正文和评论,并允许评论、改标签和关闭。若启用 PR 请求入口,还会读取外部贡献者的 PR、评论及 diff。公开内容可包含诱导代理采取越权写操作的文本,而模板未规定将其视为不可信数据。风险取决于后续代理是否遵从这些文本以及其账号权限。用户可限制令牌为只读,并要求任何写入、分配或关闭操作先确认。

SKILL.md:104来自说明文档打开原文件
Then write the docs files using the seed templates in this skill folder as a starting point:- [issue-tracker-github.md](./issue-tracker-github.md): GitHub issue tracker- [issue-tracker-gitlab.md](./issue-tracker-gitlab.md): GitLab issue tracker- [issue-tracker-local.md](./issue-tracker-local.md): local-markdown issue tracker- [triage-labels.md](./triage-labels.md): label mapping (only if `triage` is installed)- [domain.md](./domain.md): domain doc consumer rules + layout
查看另外 5 个位置
issue-tracker-github.md:8来自说明文档打开原文件
- **Create an issue**: `gh issue create --title "..." --body "..."`. Use a heredoc for multi-line bodies.- **Read an issue**: `gh issue view <number> --comments`, filtering comments by `jq` and also fetching labels.- **List issues**: `gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'` with appropriate `--label` and `--state` filters.- **Comment on an issue**: `gh issue comment <number> --body "..."`- **Apply / remove labels**: `gh issue edit <number> --add-label "..."` / `--remove-label "..."`- **Close**: `gh issue close <number> --comment "..."`
issue-tracker-github.md:22来自说明文档打开原文件
- **Read a PR**: `gh pr view <number> --comments` and `gh pr diff <number>` for the diff.- **List external PRs for triage**: `gh pr list --state open --json number,title,body,labels,author,authorAssociation,comments` then keep only `authorAssociation` of `CONTRIBUTOR`, `FIRST_TIME_CONTRIBUTOR`, or `NONE` (drop `OWNER`/`MEMBER`/`COLLABORATOR`).- **Comment / label / close**: `gh pr comment`, `gh pr edit --add-label`/`--remove-label`, `gh pr close`.
issue-tracker-gitlab.md:23来自说明文档打开原文件
- **Read an MR**: `glab mr view <number> --comments` and `glab mr diff <number>` for the diff.- **List external MRs for triage**: `glab mr list -F json`, then keep only MRs whose author is not a project member/owner (a contributor's MR, not a maintainer's in-flight work).- **Comment / label / close**: `glab mr note`, `glab mr update --label`/`--unlabel`, `glab mr close`.
issue-tracker-github.md:7来自说明文档打开原文件
- **Create an issue**: `gh issue create --title "..." --body "..."`. Use a heredoc for multi-line bodies.- **Read an issue**: `gh issue view <number> --comments`, filtering comments by `jq` and also fetching labels.- **List issues**: `gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'` with appropriate `--label` and `--state` filters.- **Comment on an issue**: `gh issue comment <number> --body "..."`- **Apply / remove labels**: `gh issue edit <number> --add-label "..."` / `--remove-label "..."`- **Close**: `gh issue close <number> --comment "..."`
issue-tracker-github.md:18来自说明文档打开原文件
**PRs as a request surface: no.** _(Set to `yes` if this repo treats external PRs as feature requests; `/triage` reads this flag.)_When set to `yes`, PRs run through the same labels and states as issues, using the `gh pr` equivalents:- **Read a PR**: `gh pr view <number> --comments` and `gh pr diff <number>` for the diff.- **List external PRs for triage**: `gh pr list --state open --json number,title,body,labels,author,authorAssociation,comments` then keep only `authorAssociation` of `CONTRIBUTOR`, `FIRST_TIME_CONTRIBUTOR`, or `NONE` (drop `OWNER`/`MEMBER`/`COLLABORATOR`).- **Comment / label / close**: `gh pr comment`, `gh pr edit --add-label`/`--remove-label`, `gh pr close`.
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

1 个说明模块

该 Skill 不能被模型隐式调用,并声明采用“先探索、展示、确认,再写入”的流程;用户在写入前可以审阅草稿。

查看原文
agents/openai.yaml:4来自说明文档打开原文件
  short_description: "Configure a repo for the skills"policy:  allow_implicit_invocation: false
SKILL.md:15来自说明文档打开原文件
This is a prompt-driven skill, not a deterministic script. Explore, present what you found, confirm with the user, then write.
SKILL.md:63来自说明文档打开原文件
### 3. Confirm and editShow the user a draft of:- The `## Agent skills` block to add to whichever of `CLAUDE.md` / `AGENTS.md` is being edited (see step 4 for selection rules)- The contents of `docs/agents/issue-tracker.md`, `docs/agents/domain.md`, and `docs/agents/triage-labels.md` (the last only when `triage` is installed)Let them edit before writing.

确认后,该 Skill 会持久修改现有的 CLAUDE.md 或 AGENTS.md,并在 docs/agents/ 下写入配置。它要求原地更新既有区块并保留周围的用户内容。

查看原文
SKILL.md:74来自说明文档打开原文件
**Pick the file to edit:**- If `CLAUDE.md` exists, edit it.- Else if `AGENTS.md` exists, edit it.- If neither exists, ask the user which one to create; don't pick for them.Never create `AGENTS.md` when `CLAUDE.md` already exists (or vice versa); always edit the one that's already there.If an `## Agent skills` block already exists in the chosen file, update its contents in-place rather than appending a duplicate. Don't overwrite user edits to the surrounding sections.
SKILL.md:104来自说明文档打开原文件
Then write the docs files using the seed templates in this skill folder as a starting point:- [issue-tracker-github.md](./issue-tracker-github.md): GitHub issue tracker- [issue-tracker-gitlab.md](./issue-tracker-gitlab.md): GitLab issue tracker- [issue-tracker-local.md](./issue-tracker-local.md): local-markdown issue tracker- [triage-labels.md](./triage-labels.md): label mapping (only if `triage` is installed)- [domain.md](./domain.md): domain doc consumer rules + layoutFor "other" issue trackers, write `docs/agents/issue-tracker.md` from scratch using the user's description.

生成的跟踪器文档会成为后续工程 Skill 的操作说明。GitHub/GitLab 模板允许读取、创建、评论、加标签、分配和关闭远程工单;本地模板则修改 .scratch/ 下的文件。

查看原文
SKILL.md:38来自说明文档打开原文件
**Section A: Issue tracker.**> Explainer: The "issue tracker" is where issues live for this repo. Skills like `to-tickets`, `triage`, and `to-spec` read from and write to it. They need to know whether to call `gh issue create`, write a markdown file under `.scratch/`, or follow some other workflow you describe. Pick the place you actually track work for this repo.Default posture: these skills were designed for GitHub. If a `git remote` points at GitHub, propose that. If a `git remote` points at GitLab (`gitlab.com` or a self-hosted host), propose GitLab. Otherwise (or if the user prefers), offer:- **GitHub**: issues live in the repo's GitHub Issues (uses the `gh` CLI)- **GitLab**: issues live in the repo's GitLab Issues (uses the [`glab`](https://gitlab.com/gitlab-org/cli) CLI)- **Local markdown**: issues live as files under `.scratch/<feature>/` in this repo (good for solo projects or repos without a remote)- **Other** (Jira, Linear, etc.): ask the user to describe the workflow in one paragraph; the skill will record it as freeform proseRecord the choice in `docs/agents/issue-tracker.md`. The GitHub and GitLab templates carry a "PRs as a request surface" flag, defaulted **off**. Leave it off and don't raise it: a user who wants external PRs in the triage queue can flip the flag in the file later.
issue-tracker-github.md:7来自说明文档打开原文件
- **Create an issue**: `gh issue create --title "..." --body "..."`. Use a heredoc for multi-line bodies.- **Read an issue**: `gh issue view <number> --comments`, filtering comments by `jq` and also fetching labels.- **List issues**: `gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'` with appropriate `--label` and `--state` filters.- **Comment on an issue**: `gh issue comment <number> --body "..."`- **Apply / remove labels**: `gh issue edit <number> --add-label "..."` / `--remove-label "..."`- **Close**: `gh issue close <number> --comment "..."`
issue-tracker-local.md:25来自说明文档打开原文件
- **Map**: `.scratch/<effort>/map.md` (the Notes / Decisions-so-far / Fog body).- **Child ticket**: `.scratch/<effort>/issues/NN-<slug>.md`, numbered from `01`, with the question in the body. A `Type:` line records the ticket type (`research`/`prototype`/`grilling`/`task`); a `Status:` line records `claimed`/`resolved`.- **Blocking**: a `Blocked by: NN, NN` line near the top. A ticket is unblocked when every file it lists is `resolved`.- **Frontier**: scan `.scratch/<effort>/issues/` for files that are open, unblocked, and unclaimed; first by number wins.- **Claim**: set `Status: claimed` and save before any work.- **Resolve**: append the answer under an `## Answer` heading, set `Status: resolved`, then append a context pointer (gist + link) to the map's Decisions-so-far in `map.md`.
从这里开始 · 工作说明SKILL.md
setup-matt-pocock-skills
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。

文件引用关系图

5 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录7 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • domain.md已纳入全文
  • issue-tracker-github.md已纳入全文
  • issue-tracker-gitlab.md已纳入全文
  • issue-tracker-local.md已纳入全文
  • triage-labels.md已纳入全文
  • agents/openai.yaml已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • agents/openai.yaml配套文件
  • domain.md配套文件
  • issue-tracker-github.md配套文件
  • issue-tracker-gitlab.md配套文件
  • issue-tracker-local.md配套文件
  • triage-labels.md配套文件

代码和说明中提到的操作

连接外部网站
SKILL.md:45来自说明文档打开原文件
- **GitHub**: issues live in the repo's GitHub Issues (uses the `gh` CLI)- **GitLab**: issues live in the repo's GitLab Issues (uses the [`glab`](https://gitlab.com/gitlab-org/cli) CLI)- **Local markdown**: issues live as files under `.scratch/<feature>/` in this repo (good for solo projects or repos without a remote)
issue-tracker-gitlab.md:3来自说明文档打开原文件
Issues and specs for this repo live as GitLab issues. Use the [`glab`](https://gitlab.com/gitlab-org/cli) CLI for all operations.
读取文件
SKILL.md:116来自说明文档打开原文件
Tell the user the setup is complete and which engineering skills will now read from these files. Mention they can edit `docs/agents/*.md` directly later; re-running this skill is only necessary if they want to switch issue trackers or restart from scratch.
issue-tracker-local.md:19来自说明文档打开原文件
Read the file at the referenced path. The user will normally pass the path or the issue number directly.
读取了多少行
315
文件校验值(用于核对版本)
72b5b8c88d3092b9a4f61131881c005aea912e9df0504260744d8a6659e70371