ArcavenAE/sideshow-packs
GitHub: ArcavenAE/sideshow-packs
一个面向 sideshow 内容包的签名发布流水线,通过 cosign 和 Sigstore 实现工件来源可验证的供应链分发。
Stars: 0 | Forks: 0
# sideshow-packs
用于 Arcaven 策划的 sideshow 包的固定成分发布流水线。
生成多源内容包(BMAD、
VSDD 等)的已签名、带版本号的 tarball,适合
[sideshow](https://github.com/ArcavenAE/sideshow) 使用,且无需在用户机器上执行
不受信任的 JavaScript。
**状态:** MVP。**首个发布的版本:[`bmad-v6.3.0`](https://github.com/ArcavenAE/sideshow-packs/releases/tag/bmad-v6.3.0)**
(2026-04-26,通过 cosign 无密钥 OIDC 签名)。vsdd-factory + dark-factory
待定 (aae-orc-amet)。
**可见性:** 公开。构建脚本 + 工作流不是我们需要限制的源
材料。发布资产 tarball 包含在上游许可证下的上游
内容(bmad-method 为 MIT)。当未来的
包发布真正无法再分发的的内容时,该
特定包将转移到私有镜像或备用分发
渠道;今天的 bmad 弧没有这种限制。可见性
在 u84w 期间从私有变为公开,因为 GitHub 的免费计划阻止了
在私有仓库上使用 `actions/attest-build-provenance`。
## Release URL 格式
请参阅 [`docs/release-url-format.md`](docs/release-url-format.md) 了解
规范契约:标签模式、资产文件名、验证方案、
身份绑定。sideshow 的客户端获取 + 验证
(`aae-orc-wk92`)使用该契约。
## 打包支持注册表
`registry/-pack-support.yaml` 记录了每个包:已验证的版本
范围(附带证据),定义“受支持”的流水线
假设,以及已知的上游问题(按版本划分,并
提供每个问题所需的适配)。`scripts/check-support.sh` 基于
此限制每次构建:超出所有已验证范围的版本将拒绝
构建,除非设置 `ALLOW_UNSUPPORTED=1`(工作流输入
`allow_unsupported`),并且拒绝消息会指向
[`registry/pack-support-revalidation-runbook.md`](registry/pack-support-revalidation-runbook.md)
— 为 LLM 或人类提供的可执行指令,用于重新验证新
版本并利用证据扩展版本范围。该注册表跟踪
上游打包问题;已发布工件的缺陷是
独立的已知缺陷注册表
(`aae-orc-ztg5`)。
## 生成内容
对于每个包版本,流水线会生成:
- `--arcaven.tar.gz` — 采用 sideshow 用户安装布局的包树
(包内容位于根目录,`.claude/` 作为同级目录用于
工具绑定)。
- `install.meta.yaml` — 来源清单:上游 git sha、npm
tarball sha、每个模块的版本 + 来源、安装调用、
tarball sha256。
- `file-manifest.csv` — 每个文件的 sha256 + 大小。
- `install.meta.yaml.sig` + `install.meta.yaml.bundle` — cosign
签名 + Sigstore Rekor 透明度日志包。
- `--arcaven.tar.gz.sig` + `.bundle` — 同样适用于
tarball 本身。
- 通过 `cosign attest-blob` 生成的来源证明 — 将 tarball sha 链接到
上游源 sha 的 SLSA/in-toto 证明。
## 分发
已签名的工件将作为此仓库上的 GitHub Release 资产发布
(私有)。sideshow 的 `install.source` 契约 (aae-orc-h07h) 将
引用 Release URL。稍后将通过
`aae-orc-` 添加一个精简的公开镜像。
## 本地构建
要求:`node` (≥ 18)、`npx`、`yq`、`bash`。`cosign` 可选(如果没有它,本地
将跳过签名)。
```
# 默认:bmad 6.3.0 包含所有模块 + claude-code bindings
BMAD_VERSION=6.3.0 scripts/build-bmad.sh
ls artifacts/
```
在 `./artifacts/` 中生成工件。除非设置 `COSIGN=1` 并且
你配置了 cosign,否则不会进行签名。
## CI 构建
触发条件:
- 手动调度并输入:包名称 + 版本。
- 推送匹配 `-v` 的版本标签。
请参阅 `.github/workflows/build-pack.yml`。签名使用通过 GitHub Actions 的 cosign 无密钥
OIDC — 无需轮换密钥。
## 相关编排器问题
- `aae-orc-ibil` — 此流水线(即你正在阅读的内容)。
- `aae-orc-entu` — 源材料来源链(由
`cosign attest-blob` 步骤使用)。
- `aae-orc-mezl` — 可插拔源后端(消费者通过
GitHub Releases 后端安装;未来:CDN、apt、插件市场)。
- `aae-orc-h07h` — 引用
此流水线生成的已签名工件的 `pack.yaml install:` 契约。
- `aae-orc-10vq` — 覆盖工件规范;覆盖也通过此
流水线发布。
- `aae-orc-7dri` — 安装一致性测试使用 `file-manifest.csv` 作为
黄金参考。
- `aae-orc-amet` — VSDD 生态系统包(vsdd、dark-factory、vsdd-factory)
将在下一步添加。
有关构建此流水线的探测证据,另请参阅 orc
仓库中的 `_kos/findings/finding-025-*` 和 `finding-027-*`。
标签:MITM代理, Sigstore, 内容分发, 应用安全, 打包发布