Skip to content

ci(merge-gate): accept Claude Fable 5.2 review attestations - #2394

Merged
0xAndoroid merged 1 commit into
mainfrom
ci/merge-gate-fable-5-2
Nov 10, 2026
Merged

0xAndoroid merged 1 commit into
mainfrom
ci/merge-gate-fable-5-2

Conversation

@0xAndoroid

Copy link
Copy Markdown
Collaborator

This PR lets the AI merge gate accept Claude Fable 5.2 as the reviewer model named in a review attestation, the PR comment line that records a clean review of the exact head commit. The accepted reasoning-effort settings, max and xhigh, and every other gate rule stay unchanged.

Why

The AI merge gate (scripts/ci/ai_merge_gate.py) rates a maintainer's pull request on a risk scale of 1 to 4. It approves one rated 1 to 3 only after an authorized PR comment attests a clean review of the exact head commit. The attestation is one fixed-format line that names the pull request, the head commit, the review procedure (a free-text "skill" name), the reviewer model and the reasoning-effort setting the review ran at. The gate accepts the line only if the model is on its list of accepted models, which until now held GPT-6 Astra and Claude Opus 5.5.

Anthropic released Claude Fable 5.2 on November 9, 2026, and the gate rejects an attestation that names it.

The gate compares the model text in the line with the list by exact string, so the new entry is the display name Claude Fable 5.2, spelled the same way as the existing entries. Other spellings stay rejected: with this change applied, the API id claude-fable-5-2 and the lowercase claude fable 5.2 still leave the gate check neutral.

Changes

  • scripts/ci/ai_merge_gate.py: the tuple REVIEW_MODELS gains "Claude Fable 5.2". The check on the attestation line and the hint in the gate's check output for a missing attestation both read this tuple, so no other line of the script changes.
  • .github/ai-merge-gate.md: the sentence in the gate guide that lists the accepted models names the new one.
  • scripts/tests/test_ai_merge_gate.py: the accepted cases in test_attestation_requires_an_exact_line_for_this_pull_and_head gain Claude Fable 5.2 with max and with xhigh.

No other file lists the accepted models. CONTRIBUTING.md, CLAUDE.md and .claude/skills/ci-code-review/SKILL.md point to the gate guide for the list. The GPT-6 Astra attestation line in CONTRIBUTING.md and the gpt-6-astra command in the skill are examples and remain valid.

Testing

CI runs the gate tests with python3 -m unittest scripts.tests.test_ai_merge_gate -v. The same module, run locally through uv on Python 3.13.15, passes all 61 tests:

uv run --no-project python -m unittest scripts.tests.test_ai_merge_gate -v

With the REVIEW_MODELS change reverted, the two new cases fail: the gate check concludes neutral where the test expects success.

Side effect on open pull requests

Because the gate's cache of risk classifications depends on the bytes of the gate script, merging this PR makes the gate classify open pull requests again. The gate stores each classification together with a SHA-256 digest of six files, and scripts/ci/ai_merge_gate.py is one of them, so any edit to that file invalidates the stored classifications. The gate's workflows check out the default branch, never the pull request's copy, so every evaluation after the merge uses the edited script. At its next gate evaluation after the merge, a ready, maintainer-authored pull request with no standing change request and no current-head approval from another maintainer has its head classified again. That run uses one of the two paid classifier attempts the gate allows per head. A head that has already used both stays unclassified until its next push, and an unclassified head needs a current-head maintainer approval. A classification already running when this merges also loses its paid attempt: its publish job checks out the edited script, the prepared input digest no longer matches, and that run leaves the head unclassified.

Add `Claude Fable 5.2` to the reviewer models an exact-head attestation line may name, at the existing efforts (`max`, `xhigh`). The gate guide and the gate test list the same model.
@github-actions

Copy link
Copy Markdown
Contributor

📏 PR diff

Note

Actual code changed: 0 lines

🟢 0 added    🔴 0 removed

Tests, docs, fixtures, and helper scripts excluded.

Category 🟢 Added 🔴 Removed
⌨️ Actual code 0 0
🧪 Tests +2 −1
📚 Docs +1 −1
📦 Fixtures 0 0
🔧 Helper scripts +1 −1
Total diff +4 −3

Every changed line is classified once.

@0xandoroid-ai-agent

Copy link
Copy Markdown

This pull request #2394 has been reviewed at commit 21ebbb0 using skill reviewer and model Claude Opus 5.5 with xhigh reasoning effort, and no issues were found.

@0xAndoroid
0xAndoroid marked this pull request as ready for review November 10, 2026 08:21
@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Verifier classifier: risk-1

Head 21ebbb007d9476d73300696333d93624ead5d3d3

The change expands permitted review-attestation models in CI merge policy. In both revisions, this flows through attester and merge-gate decisions, not proof verification. No verifier acceptance behavior changes.

Risk: risk-1

Per-path ratings (3 files)
  • .github/ai-merge-gate.md: risk-1 — Documentation adds an allowed review model; it has no production verifier effect.
  • scripts/ci/ai_merge_gate.py: risk-1 — The allowlist affects GitHub review attestations and merge approvals only, with no path to production proof acceptance.
  • scripts/tests/test_ai_merge_gate.py: risk-1 — Adds test cases for the new review model; no production behavior changes.

gpt-6.1-sol, reasoning effort xhigh

@github-actions github-actions Bot added no-reviewer-assigned The policy waits for a person and no reviewer or assignee is set merge-eligible AI merge gate review policy satisfied for the current head risk-1 Tests, scripts, CI or documentation only and removed no-reviewer-assigned The policy waits for a person and no reviewer or assignee is set labels Nov 10, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The AI merge gate approves 21ebbb007d9476d73300696333d93624ead5d3d3. Review attested by 0xandoroid-ai-agent: An authorized comment attests a clean review of the current head 21ebbb007d9476d73300696333d93624ead5d3d3, so the gate approves it.

@0xAndoroid
0xAndoroid merged commit e21affa into main Nov 10, 2026
46 checks passed
@github-actions github-actions Bot removed the merge-eligible AI merge gate review policy satisfied for the current head label Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk-1 Tests, scripts, CI or documentation only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant