Skip to content

docs(release): SC2 game-day runbook (#503) - #1234

Merged
don-petry merged 5 commits into
mainfrom
docs/sc2-game-day-503
Jul 14, 2026
Merged

don-petry merged 5 commits into
mainfrom
docs/sc2-game-day-503

Conversation

@don-petry

Copy link
Copy Markdown
Collaborator

Closes the automatable half of #503 (SC2 game-day), building on the now-merged #1230 (FORCE_REVIEW bypasses the ci-failing gate).

Adds docs/release/sc2-game-day.md:

  • the SC2 invariant — a broken next can't block its own fix PR;
  • the two mechanisms that guarantee it — channel decoupling (duty on stable) + the FORCE_REVIEW break-glass (fix(pr-review): FORCE_REVIEW bypasses the ci-failing gate (self-host break-glass #619) #1230);
  • the operational drill (break next → confirm block → apply break-glass → merge → restore);
  • the automated regression guard — test_review_one_pr_force_ci_failing.bats, now labelled as the SC2 guard.

This closes the last open must-have (SC2) of the Safe Release epic #495 in automatable form; the human-run game-day drill is documented for a post-merge execution recorded on #503.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Juznz5V6su81ffSND8fg7s

Now that #1230 landed the FORCE_REVIEW ci-failing break-glass on main, document
the SC2 invariant (a broken 'next' can't block its own fix), the two mechanisms
that guarantee it (channel decoupling + the break-glass), the operational drill,
and the automated guard (test_review_one_pr_force_ci_failing.bats). Closes the
automatable half of #503; the human-run game-day drill is documented for a
post-merge run.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Juznz5V6su81ffSND8fg7s
Copilot AI review requested due to automatic review settings July 14, 2026 20:40
@don-petry
don-petry requested a review from a team as a code owner July 14, 2026 20:40
@coderabbitai

coderabbitai Bot commented Jul 14, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@don-petry, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 3 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f8dfb945-a057-4e9b-ac22-136d4fe73509

📥 Commits

Reviewing files that changed from the base of the PR and between 559c945 and 633dd56.

📒 Files selected for processing (2)
  • docs/release/sc2-game-day.md
  • tests/test_review_one_pr_force_ci_failing.bats
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/sc2-game-day-503

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request introduces documentation for the SC2 game-day process (docs/release/sc2-game-day.md), detailing how channel decoupling and a break-glass mechanism prevent a broken in-development version from blocking its own fix. It also updates the regression test file (tests/test_review_one_pr_force_ci_failing.bats) with reference comments pointing to this documentation. The review feedback suggests a minor correction to the documented warning message to ensure it matches the exact log output of the script.

Comment thread docs/release/sc2-game-day.md Outdated
@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 20:41
@don-petry
don-petry disabled auto-merge July 14, 2026 20:42
@donpetry-bot

Copy link
Copy Markdown
Contributor

Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-07-14T21:43:07Z.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 14, 2026

Copilot AI 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.

Pull request overview

Adds an SC2 “game-day” runbook to document and operationalize the Safe Release Strategy invariant that a broken in-development channel cannot block the PR that fixes it, and labels the existing FORCE_REVIEW CI-failing bypass test as the SC2 regression guard.

Changes:

  • Add docs/release/sc2-game-day.md describing SC2, its guarantees (channel decoupling + FORCE_REVIEW break-glass), and an operational drill.
  • Update the header comment in tests/test_review_one_pr_force_ci_failing.bats to explicitly label it as the SC2 regression guard and point to the new runbook.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
tests/test_review_one_pr_force_ci_failing.bats Adds SC2 guard labeling and a pointer to the SC2 game-day runbook.
docs/release/sc2-game-day.md New SC2 runbook describing the invariant, mechanisms, and a game-day drill.

Comment thread docs/release/sc2-game-day.md Outdated
Comment thread docs/release/sc2-game-day.md Outdated
Comment thread docs/release/sc2-game-day.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 458958025e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/release/sc2-game-day.md Outdated
Comment thread docs/release/sc2-game-day.md Outdated
Comment thread docs/release/sc2-game-day.md Outdated
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-reviews (applied)

Changes committed and pushed.

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (applied)

Changes committed and pushed.

@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 20:49
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 14, 2026
@don-petry
don-petry disabled auto-merge July 14, 2026 20:50

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 604fd909ab

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/release/sc2-game-day.md Outdated
Comment thread docs/release/sc2-game-day.md Outdated
Comment thread docs/release/sc2-game-day.md Outdated
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-bot-comment (no-changes)

Agent reasoning
Issues addressed: 0
- Codex usage limit notification: Not actionable code feedback [no changes required]
Files changed: None
Skipped (informational): 1
```
The Codex comment is an operational notification about the review service's account limits, not a code review. The PR itself is clean from a code perspective—no Tier 1 blockers exist, and the substantive reviews (CodeRabbit, Copilot, Gemini) show no blocking issues.

@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 20:50
@donpetry-bot

donpetry-bot commented Jul 14, 2026 •

Copy link
Copy Markdown
Contributor
Superseded by automated re-review at 633dd56f560142767cda032bcb4991330b5f9b1b — click to expand prior review.

Review — fix requested (cycle 1/3)

The automated review identified the following issues. Please address each one:

Findings to fix

Automated review — NEEDS HUMAN REVIEW

Risk: LOW
Reviewed commit: e70511fb8b2699ef896ce106931b846eb38cd001
Review mode: triage-approved (single reviewer)

Summary

Docs-only PR adding the SC2 game-day runbook (docs/release/sc2-game-day.md) plus a comment-only update to the SC2 regression test. Triage's low-risk assessment is correct and CI is fully green, but 3 review threads from chatgpt-codex-connector remain unresolved on the head commit, and the most substantive one is a verified factual inaccuracy: the runbook claims FORCE_REVIEW bypasses every soft gate, but scripts/review-one-pr.sh explicitly does NOT let FORCE_REVIEW bypass the per-PR automation budget (enforce_pr_budget, #926). Escalating for a small doc fix.

Linked issue analysis

No closingIssuesReferences. The PR body targets the automatable half of #503 (SC2 game-day, epic #495): it documents the invariant, both guaranteeing mechanisms, the operational drill, and labels tests/test_review_one_pr_force_ci_failing.bats as the SC2 regression guard. Scope matches the stated goal; the human-run drill is deliberately deferred to a post-merge execution recorded on #503.

Findings

  1. [Verified — blocking] Runbook overstates break-glass coverage. The doc says a manual FORCE_REVIEW run "bypasses every soft gate". Verified against scripts/review-one-pr.sh on main: the per-PR automation budget explicitly is NOT bypassed ("Unlike the cycle cap, FORCE_REVIEW does NOT bypass this" — exits reason=automation-budget-exhausted). An operator following this incident runbook could hit that gate mid-drill with no documented recovery step. Fix: exclude the budget gate from "every soft gate" and note the human-interaction reset. (Unresolved codex thread, line 22.)
  2. [Verified — minor] "reviewed and approved" overstates the test guard. test_review_one_pr_force_ci_failing.bats asserts only status -ne 100 plus the warning line — it proves the ci-failing skip is bypassed, not that a review/approval succeeds. Suggest softening to "can proceed past the ci-failing gate". (Unresolved codex thread, line 40.)
  3. [Likely moot] "merge restores next" thread. Current text already separates the merge (step 5) from explicitly advancing pr-review/next (step 6), so this appears addressed — but the thread (line 60) is still unresolved; resolve or clarify step 5 wording.

Secret scan: run_secret_scanning MCP tool unavailable in this environment; gitleaks CI check passed.

CI status

All checks green. Cancelled dev-lead dispatch/ci-relay runs correspond to [skip ci-relay] commits (non-required orchestration jobs). Success: Lint, ShellCheck, shellcheck, bats, unit-tests, CodeQL (actions+python), SonarCloud, gitleaks, agent-shield, Agent Security Scan, holdout-guard, template-drift, gh-aw-compile, validate-* checks, CodeRabbit. Dependency-audit ecosystem jobs skipped (no matching ecosystems).


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

Additional tasks

  1. Resolve all unresolved review thread comments from other reviewers
  2. Ensure all CI checks pass after your changes
  3. Rebase on the target branch if behind
  4. Do NOT modify files unrelated to the findings above

The review cascade will automatically re-review after new commits are pushed.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@don-petry
don-petry disabled auto-merge July 14, 2026 21:16
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (applied)

Changes committed and pushed.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@don-petry
don-petry disabled auto-merge July 14, 2026 21:20
@sonarqubecloud

Copy link
Copy Markdown

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: review-changes)

PR: #1234
No changes were committed, but the PR still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews). The retry cron will re-attempt automatically. Next attempt after: 2026-07-14T21:51:21Z

@don-petry

Copy link
Copy Markdown
Collaborator Author

Note

@don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically.
Next attempt after: 2026-07-14T21:51:21Z

@don-petry
don-petry enabled auto-merge (squash) July 14, 2026 21:21

@donpetry-bot donpetry-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.

Automated review — APPROVED ✓

Risk: LOW
Reviewed commit: 633dd56f560142767cda032bcb4991330b5f9b1b
Review mode: triage-approved (single reviewer)

Summary

Docs-only PR adding the SC2 game-day runbook (docs/release/sc2-game-day.md, +84 lines) plus a comment-only header update tying tests/test_review_one_pr_force_ci_failing.bats to SC2/#503. No executable code changes. Triage's low-risk assessment is confirmed.

Linked issue analysis

Addresses the automatable half of #503 (SC2 game-day, epic #495): documents the invariant, the two guaranteeing mechanisms (channel decoupling + #1230 FORCE_REVIEW break-glass), the operational drill, and labels the existing bats test as the SC2 regression guard. The PR deliberately does not auto-close #503 since the human-run drill remains — appropriate scoping. Key factual claims were verified against main: the ::warning::force-review: … bypassing the ci-failing gate (break-glass, #619) line exists in scripts/review-one-pr.sh (shipped in #1230), the enforce_pr_budget exception with automation-budget-exhausted reason is accurate, and the regression test exists.

Findings

No blocking findings.

  • All 10 prior review threads (Gemini, Copilot, Codex) are resolved; fixes landed in commits 604fd90/e70511fb and CodeRabbit subsequently approved.
  • Runbook content is technically accurate against the current main implementation (break-glass warning text, budget-gate exception, cut-release invocation).
  • Secret-scanning MCP tool not available in this environment; gitleaks CI check passed (no secrets in diff — docs/test-comment only).

CI status

All checks green: shellcheck, bats, unit-tests, CodeQL (actions+python), gitleaks, SonarCloud, AgentShield, holdout-guard, template-drift, validators all SUCCESS. Cancelled dev-lead / dispatch and review / review entries are superseded duplicate runs with later SUCCESS conclusions; ci-relay skipped via [skip ci-relay]. mergeStateStatus BLOCKED only on the pending codeowner approval.


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@don-petry
don-petry merged commit 3d0cacb into main Jul 14, 2026
33 of 36 checks passed
@don-petry
don-petry deleted the docs/sc2-game-day-503 branch July 14, 2026 21:24

@donpetry-bot donpetry-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.

Automated review — APPROVED ✓

Risk: LOW
Reviewed commit: 633dd56f560142767cda032bcb4991330b5f9b1b
Review mode: triage-approved (single reviewer)

Summary

Docs-only PR: adds docs/release/sc2-game-day.md (SC2 invariant, break-glass mechanism, operational drill) and a comment-only header to tests/test_review_one_pr_force_ci_failing.bats labelling it as the SC2 regression guard. No logic changes. Confirms the triage tier's low-risk assessment.

Linked issue analysis

No closing keyword linkage, by design: the PR body states it closes the automatable half of #503 (SC2 game-day, epic #495), with the human-run drill to be executed post-merge and recorded on #503. The doc + the labelled regression guard substantively address the documentable/codifiable portion of #503's done-when criteria (a regression test asserting the circular dependency stays broken already exists via #1230; this PR documents and labels it).

Findings

  • No blocking findings.
  • Accuracy spot-checks passed: the quoted break-glass warning ('bypassing the ci-failing gate (break-glass, #619)') matches scripts/review-one-pr.sh on main verbatim; docs/release/versioning.md, scripts/cut-release.sh, and the referenced bats test all exist on main.
  • All 10 review threads (gemini, copilot, codex) are resolved; CodeRabbit approved the head commit.
  • Since the prior triage review (e70511f), the PR merged main (#1236 reviewer-report changes) and applied review-change edits to the doc only — nothing new of concern.
  • Secret scan: run_secret_scanning MCP tool unavailable in this run; gitleaks CI check passed and the diff is markdown/comments only.

CI status

All checks green. Successful: Lint, ShellCheck, bats, unit-tests, CodeQL (actions+python), SonarCloud, gitleaks, agent-shield, holdout-guard, template-drift, gh-aw-compile, validate-* checks, CodeRabbit. CANCELLED entries (dev-lead/dispatch, review/review, ci-relay) are superseded duplicate runs with SUCCESS counterparts; SKIPPED entries are conditional dependency-audit jobs (no matching ecosystems).


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

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.

3 participants