Skip to content

feat(verified): review gate -- evidence chain to merge, fail closed, no self-merge - #6681

Merged
gHashTag merged 1 commit into
masterfrom
claude/verified-review-gate-6655
Oct 6, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/verified-review-gate-6655

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Closes #6680
Refs #6655 (Phase E, automated review gate)

Adds specs/verified/review_gate.t27, which gives the review state of a PR from recorded evidence and says whether it may merge.

  • gate_state(affected, required, reported, failed, seals_ok, policy_ok) walks the chain AFFECTED -> EXECUTED -> PASSED -> SEALED -> POLICY and stops at the first link that is missing or failed. A required check that never reported is not a pass. An affected set that is unknown or out of range gives NONE (fail closed). RUN_ALL counts as resolved.
  • may_merge(state, approved, approver_is_author) returns true only at POLICY, with approval, and only when the approver is not the author (no bee self-merge).
  • It does not restate specs/ci/affected.t27 (which specs are touched) or specs/queen/review_valve.t27 (what happens to work that was not accepted).

Evidence (Railway lab, master t27c, zig 0.16.0):

  • t27c gen ... && zig test: 9/9 passed
  • 8/8 mutants killed, one per guard
  • gen-verilog (152 lines) and gen-c (158 lines) OK
  • t27c seal --verify: all hashes MATCH (spec_hash sha256:021648f6...)
  • gitleaks: no leaks; the own-language hook passed

This PR does not wire the rule into CI. That would be the next slice, kept separate so each PR stays one atomic change.

🤖 Generated with Claude Code

…no self-merge

specs/verified/review_gate.t27: gate_state() walks affected -> executed ->
passed -> sealed -> policy and stops at the first missing or failed link;
may_merge() needs POLICY plus an approver who is not the author. 9 tests,
8/8 mutants killed, sealed with master t27c on the lab.

Closes #6680
Refs #6655

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-06 06:56:07 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 36
PRs with All Checks Green 14
READY 12
FAILING 36
PENDING 0
NO CHECKS YET 0

These columns do not partition: 12 + 36 + 0 + 0 = 48, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=3c78f3c7ffb7 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

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.

verified: review gate spec -- evidence chain to merge, fail closed, no self-merge (#6655 Phase E)

1 participant