diff --git a/README.md b/README.md index 1a6d296..f7a3e05 100644 --- a/README.md +++ b/README.md @@ -89,10 +89,18 @@ python scripts/verify_release_readiness.py --repository-root . --allow-pending python scripts/verify_release_readiness.py --repository-root . --tag v0.1.0 ``` +六个人工 gate 的首项证据必须是场景完整、执行人与复核人分离的本地 JSON 包;模板与单包校验命令如下: + +```powershell +python scripts/verify_readiness_evidence.py init-manual --gate windows_admin_matrix --release-version 0.1.0 --output path/to/new-evidence.json +python scripts/verify_readiness_evidence.py verify-manual --repository-root . --evidence path/to/completed-evidence.json +``` + Beta 参与者从应用 Metrics 页主动导出本机聚合值;Release Owner 使用版本化策略离线去重和汇总,原始文件不进入仓库: ```powershell python scripts/aggregate_beta_metrics.py --policy release/beta-metrics-policy.v0.1.json --input-directory path/to/reviewed-exports --output path/to/new-beta-report.json --require-ready +python scripts/verify_readiness_evidence.py verify-beta --repository-root . --evidence path/to/new-beta-report.json ``` 流程与最小样本量见 [`docs/beta-evidence.html`](./docs/beta-evidence.html)。 diff --git a/docs/beta-evidence.html b/docs/beta-evidence.html index 8ef819d..128a8a1 100644 --- a/docs/beta-evidence.html +++ b/docs/beta-evidence.html @@ -29,7 +29,10 @@

聚合

--policy release/beta-metrics-policy.v0.1.json \ --input-directory path/to/reviewed-exports \ --output path/to/new-beta-report.json \ - --require-ready + --require-ready +python scripts/verify_readiness_evidence.py verify-beta \ + --repository-root . \ + --evidence path/to/new-beta-report.json

工具拒绝重复样本、重复 JSON key、symlink、超限文件、错误版本、非目标平台、未知字段、不安全隐私声明、伪造率和违反子集关系的计数。输出必须是新文件。

审核

@@ -37,7 +40,7 @@

审核

  • 确认输入目录只含每位参与者最新且主动提交的一份导出。
  • 保存聚合命令、策略版本、最终报告与受控原始证据位置。
  • 由 Release Owner 审核三个 gate;未达标时继续取样或修复产品。
  • -
  • 通过后仅将无样本 ID 的报告加入 readiness evidence;原始文件不进入仓库。
  • +
  • 通过后将无样本 ID 的报告作为三个 Beta gate 的首项 readiness evidence;原始文件不进入仓库。
  • diff --git a/docs/incident-response.html b/docs/incident-response.html index f6ee35c..d7b9918 100644 --- a/docs/incident-response.html +++ b/docs/incident-response.html @@ -31,7 +31,7 @@

    证据边界

    GA 演练

    -
    1. 在隔离 Windows 与 macOS 设备分别模拟 sidecar 强杀、应用强杀和 owner 断连,确认网络恢复。
    2. 使用签名候选版本模拟迁移失败,确认只读历史、搜索和脱敏导出。
    3. 模拟 updater manifest 哈希或签名不匹配,确认不会公开或安装。
    4. 记录负责人、时间线、检测/缓解时间、证据链接和改进项;由非执行者复核。
    5. 将演练证据写入 release/readiness.v0.1.json 后,发布门禁才可通过。
    +
    1. 在隔离 Windows 与 macOS 设备分别模拟 sidecar 强杀、应用强杀和 owner 断连,确认网络恢复。
    2. 使用签名候选版本模拟迁移失败,确认只读历史、搜索和脱敏导出。
    3. 模拟 updater manifest 哈希或签名不匹配,确认不会公开或安装。
    4. 记录负责人、时间线、检测/缓解时间、证据链接和改进项;由非执行者复核。
    5. verify_readiness_evidence.py init-manual --gate incident_response_drill 创建场景包;完成并校验后作为该 gate 的首项证据。
    diff --git a/docs/progress.html b/docs/progress.html index 8c6e824..cb5c904 100644 --- a/docs/progress.html +++ b/docs/progress.html @@ -131,14 +131,14 @@

    6. 后续迭代承诺

    S6PAR-005~007、APP-005Done四厂商适配器、token/成本/指纹、全文搜索和结构/文本 Compare 全部完成 S7TST-004、性能、可访问性、诊断与保留In progressaxe、键盘与焦点、双主题截图、千条列表预算及 Gateway P95 门禁完成;继续屏幕阅读器和 Beta 真实环境测量 S8SEC-004、REL-001/002、安全评审In progress仓库供应链门禁、失败关闭的跨平台签名发布流水线、应用内更新、预更新恢复快照、只读历史恢复与支持处理闭环已接入;正式凭据、首批制品、真实回滚与安全评审待推进 - S9REL-003、完整回归与发布演练In progress兼容矩阵、事故响应、版本说明与失败关闭 readiness 门禁完成;九项真实环境/人工 gate 待关闭 + S9REL-003、完整回归与发布演练In progress兼容矩阵、事故响应、版本说明、结构化人工/Beta 证据校验与失败关闭 readiness 门禁完成;九项真实环境/人工 gate 待关闭

    7. 阻塞项

    - +
    ID阻塞影响Owner开始解除条件状态
    B-001核心团队与正式投入未确认无法建立可靠的人力与交付日期基线TBD2026-07-14角色、投入比例与正式启动日确定Open
    B-002正式平台证书、updater key 与 release environment 未配置无法生成首批可分发签名制品Release Owner TBD2026-07-21受保护环境完成密钥托管并通过候选构建Open
    B-003九项 GA readiness 人工/真实环境证据未完成签名发布工作流按设计拒绝公开 ReleaseRelease / QA / Security TBD2026-07-21release/readiness.v0.1.json 全部 gate 为 passed 且证据可验证Open
    B-003九项 GA readiness 人工/真实环境证据未完成签名发布工作流按设计拒绝公开 ReleaseRelease / QA / Security TBD2026-07-21六个人工场景包和 Beta 聚合报告通过校验,release/readiness.v0.1.json 零 pendingOpen
    新增阻塞项时在此追加;解除后保留记录并将状态改为 Closed。
    diff --git a/docs/release.html b/docs/release.html index f90f076..bc32bef 100644 --- a/docs/release.html +++ b/docs/release.html @@ -37,12 +37,15 @@

    发布环境

    触发与证据

    1. 同步 tauri.conf.json、桌面 package.json 和 Tauri Cargo.toml 的版本。
    2. -
    3. 提交 release/notes/v<version>.md,并在 release/readiness.v0.1.json 中附上全部人工验收证据。
    4. +
    5. 提交 release/notes/v<version>.md;人工 gate 的首项证据使用 verify_readiness_evidence.py init-manual 生成并完成,Beta gate 引用已通过策略的聚合报告。
    6. 签名 RC 可保留 pending 人工 gate,并以 GitHub prerelease 发布供隔离设备演练;稳定版必须零 pending。
    7. 确认 main CI 全绿后创建并推送 v<semver> tag,或手动选择已存在 tag 运行 Signed release
    8. 审批 release environment;工作流会拒绝不在 main 中的 tag。
    9. 保存工作流链接、release-manifest.v0.1.jsonlatest.json、安装包和 `.sig` 作为发布证据。
    +
    python scripts/verify_readiness_evidence.py verify-manual --repository-root . --evidence path/to/completed-evidence.json
    +python scripts/verify_readiness_evidence.py verify-beta --repository-root . --evidence path/to/beta-report.json
    +python scripts/verify_release_readiness.py --repository-root . --tag v0.1.0

    回滚演练