Repository navigation
Phase 5: spec and build plan for Option B as built, release drift check, supported repos - #25
Conversation
🔴 Hold deployment: Claude of Duty identified 2 items requiring attentionMission: Review the code. Protect the branch. Deploy the future. Caution Incomplete file coverage blocks this PR. No waiver can clear it.
Run 41332305307, attempt 1 for head Claude of Duty never approves a PR. A human reviewer gives the final approval. 📋 Full review record: reasons, checks, signals, finding details, model summaries, token usageReviewed snapshot
Reasons the gate failed
No waiver line is shown. At least one reason cannot be waived, so a waiver would not change the result. Checks (code, no model)
Signals (context only, never block)
Dependency changes None. Finding details
Blocking is decided by code from category and severity, never by the model. A finding in a blocking category blocks only at high or critical severity. No findings from the passes that ran. The Review, Security, Supply chain pass did not run, so this is not a clean result. Model summaries
Token usage
|
…ck, supported repos Parts: design spec updates (P5 decision log, baseline ruleset, CODEOWNERS), build plan phases 5 and 6, release tool drift check on every org ruleset (spec P5-7), supported repo inventory with unit test, and test fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
68b5e82 to
3f946dd
Compare
Summary
Phase 5 records Option B as built and adds one guard to the release tool. No release is needed: nothing changes in the workflow or in
review/src. The production pin stays88e055f.org-baseline(on~ALL) has deletion, force push, signed commits and the pull request rule (1 approval, dismiss stale, Code Owners, squash only), with an org-admin-onlypull_requestbypass. Org-wide enforcement now means: add the supported repos to the review ruleset, then narrow its bypass to org admins and rename itclaude-review. Decision log P5-1 to P5-7 (P5-8 reserved, see below).make release-planandmake releaselist every org ruleset (all pages) and read each one. They fail closed when a ruleset outsideRULESETSrequiresclaude-review.yml(by repository id or path), when an id inRULESETSis missing, or when any ruleset requires a status check named like the review.RULESETSdoes not change: the baseline has no workflows rule.docs/supported-repos.md: the 4 pilot repos (target) andSTART_HERE(candidateuntil it joins), plus the excluded active repos. A unit test parses it.test_prefilter.py,test_publish.pyandtest_render.pyare now\uescapes (identical ASTs), and a test keeps them out. A PR that touches these files is no longer hard-blocked by its own review.prefilter.pykeeps its raw characters until the next release PR.Baseline read-back (plan v2 3.6)
Canonical projection of
GET /orgs/OperationCode/rulesets/25787833on 2026-11-01: every expected value matches (name, enforcement, target,~DEFAULT_BRANCH,~ALLwith no excludes, exactly the 4 rule types, all 8pull_requestparameters includingrequire_extra_approval_for_unattributed_changes: true, bypass exactlyOrganizationAdmin/pull_request).Test plan
cd review && uv run pytest tests/unit: 2873 passed, 2 deselecteduv run pytest tests/unit -m release: 2 passedrelease.py plan --sha 88e055f... --no-consoleagainst the live org (read-only): preconditions ok, drift check ok, both rulesets "pin no change"make release-rule-test RULE=fdrl_01AfACzupW3U4Bx361ZUbsyR SHA=88e055f0ebff003a3e07fe0d015fee6856692f2c(required after a tool change)make release-plan SHA=88e055f0ebff003a3e07fe0d015fee6856692f2c: drift checkok, both rulesets "no change"Owner action: P5-8
The decision log reserves P5-8 for your written acceptance of the residuals in "Which run counts" (an earlier pass on the same SHA, the cross-PR effect of one head SHA, a pin rollback, run deletion) and of the pilot bypass. To give it, comment "accepted" on this PR. The entry with your name and the date goes in a follow-up commit. Phase 5 exit waits for it.
🤖 Generated with Claude Code