Skip to content

Phase 4: record the pilot start and the OIDC subject prerequisite - #17

Closed
irvingpop wants to merge 2 commits into
mainfrom
irvingpop/phase4-j
Closed

irvingpop wants to merge 2 commits into
mainfrom
irvingpop/phase4-j

Conversation

@irvingpop

Copy link
Copy Markdown
Member

Docs only.

  • Records the pilot as started on four repos (back-end, front-end, operationcode-pybot, operationcode_infra; owner decision), the pilot org ruleset, the per-repo approval protection, CODEOWNERS, the direct-push check, the org 2FA requirement and the Console read-back. Decisions P4-1 to P4-6.
  • Spec gap found in the pilot: repos created before GitHub's immutable OIDC subject default send repo:OperationCode/<repo>:..., which the federation rule's subject prefix rejects. The first pilot runs failed closed as designed. The spec, the pilot steps and the phase 5 rollout steps now require checking and setting use_immutable_subject per repo, after checking the repo's other OIDC users and their trust policies.
  • Lesson: list open PRs right after the ruleset is enabled; a PR opened between recon and enable gets no run until a new PR event.

Unit tests: 2631 passed. Reviewed locally (one fix round); re-review clean, all dates checked against API timestamps.

🤖 Generated with Claude Code

irvingpop and others added 2 commits October 29, 2026 08:45
…uisite (P4-1 to P4-6)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…xt; add open-PR timing lesson (P4 fix round 1)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@irvingpop
irvingpop requested a review from a team as a code owner October 29, 2026 15:50
@github-actions

Copy link
Copy Markdown

🔴 FAIL: OC Claude review did not complete

Caution

The Review, Security and Supply chain reviews did not run, so this PR could not be judged. No waiver can clear this.
Next step: a maintainer re-runs the newest run of the required workflow once the cause is fixed. The author does not need to change anything.

Severity Effect Where Finding Found by
⚠️ Not run Blocks, no waiver Review pass authentication failed. The pass returned no result. Workflow (code, no model)
⚠️ Not run Blocks, no waiver Security pass authentication failed. The pass returned no result. Workflow (code, no model)
⚠️ Not run Blocks, no waiver Supply chain pass authentication failed. The pass returned no result. Workflow (code, no model)
⚠️ Not run Blocks, no waiver Gate A required job did not succeed: dependency-review: failure Workflow (code, no model)
⚠️ Not run Blocks, no waiver Gate Dependency review did not succeed: job result failure Workflow (code, no model)
⚠️ Not run Blocks, no waiver Gate Dependency review did not succeed: step outcome failure Workflow (code, no model)
File checks Review Security Supply chain Dependency review Coverage
✅ ok, 2 signals ❌ failed ❌ failed ❌ failed ❌ failed ✅ complete

Run 40905550380, attempt 1 for head 0104d1a into main. The required workflow in the merge box is the result that counts. This bot never approves a PR.

📋 Full review record: reasons, checks, signals, finding details, model summaries, token usage

Reviewed snapshot

Head SHA Merge base SHA Base branch Run
0104d1afd98cc9f21fc52600dba46901ec98aba1 03e1b8d09c322bf215d1699da0e793f0064f2974 main 40905550380, attempt 1

Reasons the gate failed

Reason Waivable? Detail
A required job did not succeed 🚫 no dependency-review: failure
Dependency review did not succeed 🚫 no job result failure
Dependency review did not succeed 🚫 no step outcome failure
A review pass failed 🚫 no pass review failed: authentication failed
A review pass failed 🚫 no pass security failed: authentication failed
A review pass failed 🚫 no pass supply-chain failed: authentication 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)

Check Result Detail
Hard blocks ✅ none
Coverage ✅ complete files in comparison 2, files collected 2, trees complete
Dependency changes ✅ none
Dependency review job ❌ failed

Signals (context only, never block)

  • ℹ️ Very long line: lines longer than 500 characters, in docs/build-plan.md, lines 189 193 194
  • ℹ️ Very long line: lines longer than 500 characters, in docs/claude-review-design.md, lines 563 810 994 995 998

Dependency changes

None.

Finding details

Model output from untrusted input. Check it before you act on it. Verified means only that the quoted text is at that place. It does not mean the claim is true.

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

Model output from untrusted input. Check it before you act on it. Verified means only that the quoted text is at that place. It does not mean the claim is true.

Pass Status Model Summary
Review ❌ failed No summary. Reason: authentication failed
Security ❌ failed No summary. Reason: authentication failed
Supply chain ❌ failed No summary. Reason: authentication failed

Token usage

Pass Input Output Cache write Cache read Attempts
Review not recorded not recorded not recorded not recorded not recorded
Security not recorded not recorded not recorded not recorded not recorded
Supply chain not recorded not recorded not recorded not recorded not recorded
Recorded total not recorded not recorded not recorded not recorded not recorded

@irvingpop

Copy link
Copy Markdown
Member Author

Combined into #20.

@irvingpop irvingpop closed this Oct 29, 2026
@irvingpop
irvingpop deleted the irvingpop/phase4-j branch October 29, 2026 19:17
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.

1 participant