Skip to content

feat(ISSUE-263): W4-C2 dispatch 白名单与 check run 写回 (#283) - #309

Merged
randypanding merged 1 commit into
mainfrom
w4c2-dispatch-writeback
Aug 23, 2026
Merged

randypanding merged 1 commit into
mainfrom
w4c2-dispatch-writeback

Conversation

@cloudbrid-agent

@cloudbrid-agent cloudbrid-agent Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

W4-C2: dispatch 白名单 + conductor 侧重断言 + check run 写回

Closes #283

变更内容(本 PR,.github 仓)

  • governance/rulesets/main-protection.jsonrequired_status_checks 新增 adversary context:
    • adversary verdict(survived / insufficient / no-attempts)经 check run 写回 spec PR 后,
      成为 main 分支合并阻断项(AC-14 / BEH-01;specs/** PR 漏配 adversary check 即红)。

关联变更(CI-Workflows 仓,另见 CI-Workflows PR #87

  • pipeline/adversary/check_run_writeback.py — adversary 产出判定报告后,以 App 令牌
    (checks:write,INV-02)在 spec PR head commit 创建 check run(verdict → conclusion 映射;fail-closed)。

阻塞(当前 App 无 workflows 权限,本地保留,待权限补推)

  • CI-Workflows/.github/workflows/adversary.yml — repository_dispatch event_type 白名单精确匹配
    (adversary-run / adversary-replay / adversary-survived;W4-C2 不信任 dispatch 载荷,
    conductor 侧重断言在本仓独立验证)。本地实现于 w4-c3/CI-Workflows/.github/workflows/adversary.yml
  • .github/.github/workflows/conductor.yml — T5/T6 前置重新断言(suite-ready 谓词 +
    三元组 survived 记录;needs-human 不可直跳 wave-planned)。本地实现于
    w4-c3/.github/.github/workflows/conductor.yml(W4-C1 已完整实现)。

部署注意

ADR

  • ADR-0067 (spec 阶段攻击面)
  • ADR-0082 (红队守门制度)

Card: #283

- governance/rulesets/main-protection.json — adversary check 纳入 required_status_checks
  (specs/** PR 的 adversary verdict 成为合并阻断项;gate / org-gate / adversary 三 check 并列)
@cloudbrid-agent

Copy link
Copy Markdown
Contributor Author

⚠️ 部署顺序阻塞 — 请勿立即合并 / auto-merge

本 PR 修改组织级 rulesets,合并后会立即生效。但当前 adversary-gate workflow 文件尚未推送
(cloudbrid-agent App 无 workflows 权限,workflow 文件待人工补推)。

若在本 PR 之前合并:

  • main-protection.json 新增 adversary required check → 全组织所有 PR 因缺少该 check 被阻断。
  • org-required-workflows.json 新增 adversary-gate.yml → 全组织所有 PR 因找不到 workflow 被阻断。

安全部署顺序(须人类维护员执行):

  1. 推送 workflow 文件(adversary.yml / adversary-gate.yml,需 workflows 权限,本地实现于 w4-c3/
  2. 确认 adversary-gate workflow 正常运行
  3. 合并本 PR(此时 required check 可被满足)

请人类维护员确认 workflow 文件已部署后再合并本 PR。

@randypanding randypanding reopened this Aug 23, 2026
@randypanding
randypanding merged commit 19c712f into main Aug 23, 2026
14 of 17 checks passed
@randypanding
randypanding deleted the w4c2-dispatch-writeback branch August 23, 2026 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

W4-C2: dispatch 白名单 + conductor 侧重断言 + check run 写回

1 participant