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

To Tickets Skill 安全审计

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

Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker (edges as text in one file per ticket locally, or native blocking links on a real tracker).

第三方安全检查结论

发现安全风险

已检查文件
2
发现的风险
2
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

默认的代理就绪标签和“处理前沿”指令可能启动未经单独授权的实现工作

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

技能的声明用途是拆分并发布工单,但发布到真实跟踪器时默认添加 `ready-for-agent`,称工单可被代理领取,随后又要求“处理”所有阻塞项已完成的工单。对拆分方案的批准不一定等于授权代理实施这些工单。

为什么需要注意

若跟踪器自动化监听该标签,或执行代理把“处理前沿”理解为开始实施,批准发布后可能立即产生代码、文件、外部操作或计算费用,而用户原本可能只要求创建工单。

这段证据能说明什么

源码确实要求发布工单时默认添加 `ready-for-agent` 标签,并称这些工单可由代理领取;在配置了自动领取该标签的外部系统时,这可能间接触发实现。但所给源码没有定义这种自动化,也没有明确命令本技能实际实现工单。“Work the frontier”位于发布章节中,可能只是说明依赖顺序。用户可在批准发布前要求不加该标签,并确认仅创建工单、不执行工单。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:58来自说明文档打开原文件
### 5. Publish the tickets to the configured trackerPublish the approved tickets. **How** depends on the tracker `/setup-matt-pocock-skills` configured; the tickets are the same either way, only the shape of the blocking edges changes:
查看另外 2 个位置
SKILL.md:63来自说明文档打开原文件
- **Local files** → write one file per ticket under `.scratch/<feature-slug>/issues/<NN>-<slug>.md`, numbered from `01` in dependency order (blockers first). Each file's "Blocked by" lists the numbers/titles it depends on. Use the per-ticket file template below: one ticket per file, never a single combined file.- **A real issue tracker (GitHub, Linear, …)** → publish one issue per ticket in dependency order (blockers first) so each ticket's blocking edges can reference real identifiers. Use the platform's native blocking / sub-issue relationship where it has one; otherwise set each ticket's "Blocked by" to the blocking issues. Apply the `ready-for-agent` triage label unless instructed otherwise; the tickets are agent-grabbable by construction.Work the **frontier**: any ticket whose blockers are all done. For a purely linear chain that means top to bottom.
SKILL.md:67来自说明文档打开原文件
Do NOT close or modify any parent issue.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
中风险

外部工单正文和评论未经不可信内容隔离便被载入上下文

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

技能要求获取并完整阅读用户引用的工单正文和评论,但没有要求把其中的命令、提示词或工具调用文字仅当作资料。评论可由其他跟踪器用户编写,因此可能包含针对代理的恶意指令。

为什么需要注意

如果代理误把恶意评论当成技能指令,它可能篡改工单拆分、诱导额外操作,或在后续发布步骤中创建攻击者指定的内容。用户审批降低了风险,但精心伪装的改动仍可能被带入提案。

如果用户引用的工单或评论包含恶意提示,该技能会获取并完整读取它们;来源可能由其他跟踪器用户控制。源码没有在这一步明确要求把正文和评论仅视为不可信资料,因此其中的伪造命令可能影响代理后续的拆分或发布决定。用户可要求作者明确隔离外部内容、忽略其中的操作指令,并限制可读取的评论来源。

SKILL.md:17来自说明文档打开原文件
Work from whatever is already in the conversation context. If the user passes a reference (a spec path, an issue number or URL) as an argument, fetch it and read its full body and comments.
查看另外 1 个位置
SKILL.md:58来自说明文档打开原文件
### 5. Publish the tickets to the configured trackerPublish the approved tickets. **How** depends on the tracker `/setup-matt-pocock-skills` configured; the tickets are the same either way, only the shape of the blocking edges changes:
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

1 个说明模块

该技能先根据对话、规格或工单内容拟定带依赖关系的纵向切片工单,并要求用户确认粒度、阻塞关系以及是否拆分或合并;只有获批后才进入发布步骤。

查看原文
SKILL.md:44来自说明文档打开原文件
Present the proposed breakdown as a numbered list. For each ticket, show:- **Title**: short descriptive name- **Blocked by**: which other tickets (if any) must complete first- **What it delivers**: the end-to-end behaviour this ticket makes workAsk the user:- Does the granularity feel right? (too coarse / too fine)- Are the blocking edges correct: does each ticket only depend on tickets that genuinely gate it?- Should any tickets be merged or split further?Iterate until the user approves the breakdown.

发布目标取决于既有配置:本地模式会在 `.scratch` 下为每个工单写入单独文件;真实跟踪器模式会创建独立工单、建立阻塞关系并默认添加 `ready-for-agent` 标签。

查看原文
SKILL.md:60来自说明文档打开原文件
Publish the approved tickets. **How** depends on the tracker `/setup-matt-pocock-skills` configured; the tickets are the same either way, only the shape of the blocking edges changes:- **Local files** → write one file per ticket under `.scratch/<feature-slug>/issues/<NN>-<slug>.md`, numbered from `01` in dependency order (blockers first). Each file's "Blocked by" lists the numbers/titles it depends on. Use the per-ticket file template below: one ticket per file, never a single combined file.- **A real issue tracker (GitHub, Linear, …)** → publish one issue per ticket in dependency order (blockers first) so each ticket's blocking edges can reference real identifiers. Use the platform's native blocking / sub-issue relationship where it has one; otherwise set each ticket's "Blocked by" to the blocking issues. Apply the `ready-for-agent` triage label unless instructed otherwise; the tickets are agent-grabbable by construction.

该技能被配置为不能隐式调用,因此通常需要用户明确选择或调用它。

查看原文
SKILL.md:4来自说明文档打开原文件
description: Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker (edges as text in one file per ticket locally, or native blocking links on a real tracker).disable-model-invocation: true---
agents/openai.yaml:4来自说明文档打开原文件
  short_description: "Split a plan into tracer-bullet tickets"policy:  allow_implicit_invocation: false
从这里开始 · 工作说明SKILL.md
to-tickets
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录2 个文件

检查范围与遗漏

逐文件查看涉及的内容

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

  • SKILL.md已纳入全文
  • agents/openai.yaml已纳入全文

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

  • SKILL.md工作说明
  • agents/openai.yaml配套文件
读取了多少行
112
文件校验值(用于核对版本)
6ed305976ed85b138502b0e2ca688ba5315d73363a3cf504198e02c201c016d3