产品边界

Skill、Pack,以及历史遗留的 Workflow 说法各自的安全边界

Skillstore 对单个 Skill 审计和签名到底管到哪、Pack 又多出哪一层组合边界、旧的 Workflow 名称为什么不算第三种安全单元,以及运行时权限从哪儿开始接手。

发布于 2026年7月15日 更新于 2026年7月15日 方法版本 2026-07-15 快照日期 2026年7月15日

当前的产品模型

Skillstore 现在只有两种能装的东西:

概念 现在指什么 安全单元
Skill 一个 Agent Skills 目录,里面有 SKILL.md,也可以带脚本、参考资料、模板或资源。 单独审计、单独管版本。
Pack 冲着一个更完整的任务来的 Skill 集合加安装契约,一次把多个 Skill 解析进来。 每个成员 Skill 各留各的审计和制品身份;Pack 在这之上再加一层带签名的成员关系和锁定契约。
Workflow 已经退役的老说法,过去用来表达更大的任务包;这个角色现在归 Pack 了。 不是第三种能跑的对象,也不是第三种审计单元。旧文档里可能还留着这个词,但现在的公开路由和安装契约都用 Pack。

Workflow 退役、换成现在的 Pack 模型,并没有把几个成员 Skill 揉成一个安全结论。更大的任务包这个角色,现在交给集合边界来表达,而证据始终钉在精确的 Skill 制品上。

Skill 报告只针对一个明确对象

一份 Skill 审计,讲的是这个 Skill 版本记录下来的文件和身份。静态检测和语义裁决会去看说明、脚本、参考资料、声明的能力,以及其他提交上来的材料。得出的结论不会顺带管到:

  • 同一个 Pack 里的另一个 Skill;
  • 之后的某次提交、重新打包的 ZIP,或者本地改动;
  • 审计之后才变的远程依赖或服务;
  • 最终主机放出来的权限、凭据、connector 或网络访问。

审计方法讲证据是怎么变成结论的;制品绑定指南讲报告对象和安装制品是两码事。

Pack 把 Skill 组合起来,但不会抹掉成员各自的身份

Pack 清单和锁文件能标出精确的成员集合,以及每个成员该有的制品 hash。这份完整性契约回答的是"选进来的是哪些 Skill 制品",而不是"这些成员是不是都安全"。

所以 Pack 评估会把三件事分得清清楚楚:

  1. 成员关系: Pack 解析进来的是哪些 Skill、哪些 revision。
  2. 成员证据: 每个 Skill 当前的审计状态、已确认的风险,还有安装建议。
  3. 组合暴露面: 这些成员放在一起,可能一起动用的命令、文件、网络目标、凭据、connector 和外部依赖,取它们的并集。

一个 Pack 里装着一个 safe Skill 和一个 high Skill,不会因为一平均就变成 safe。新加进来或者改动过的成员,得拿自己当前的证据说话。Pack 签名有效,证明的是被签的那份 Pack 载荷完整,不代表每个成员的结论都对。

三层边界必须分开看

层 能证明什么 证明不了什么
静态与语义审计 提交上来的 Skill 快照里找到的证据,以及 Skillstore 对已确认风险的判读。 所有运行分支、以后远程会返回什么,或者落到某台特定主机上的具体影响。
制品完整性 清单、锁文件、ZIP 或证明载荷,跟认定的那串字节和某把签名密钥对得上。 证明不了这些字节无害,也证明不了那把签名密钥从没泄露过。
运行时权限 你选的 Claude、Codex 或 Claude Code 环境,实际放行工具和命令去读、写、执行或发送什么。 不能因为主机放行了就反推安装说明可信。

这三层互相加强,但谁也替代不了谁。

组合可能放大影响,却不改写任何一个成员的结论

两个单独看都不难懂的 Skill,凑一块可能就多出一条新路径。比如一个能读本地报告,另一个能把数据发到网络服务。Pack 还可能让更多说明,在同一个任务里被自动挑中。

装 Pack 之前:

  1. 把每个成员和它精确的 revision 都过一遍;
  2. 找出那些凑在一起就变敏感的能力;
  3. 验一下带签名的 Pack 清单和成员制品 hash;
  4. 权限范围掐得又窄又清楚,能给 project 就别给 user;
  5. 把运行时的文件、命令、connector、密钥和网络访问都收紧;
  6. 成员、制品或者目标环境一变,就重新评一遍。

Skillstore 始终只报告、不拦截:证据和建议一律公开,高风险也照样摆出来。装不装、跑不跑,交给主机或组织的策略去定。

相关边界