Repository navigation
fix(pr-pipeline): keep the unrunnable-criterion split out of the needs_human path - #9376
Conversation
…s_human path apply-verdict now posts admit.mjs's split note on an issue it holds (an escalated or flagged verdict, or a hold label) when a done-when item is one the lane cannot perform, so the split survives an escalation that drops the lane comment. The intake rubric stops routing these items through the intent flag and asks the model to triage the lane-checkable items with their work class. Closes #9375 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed No security issues found in the incremental change ( critical-findings: 0 What changed and how I read it:
manifest fields: the incremental diff touches no plugin manifest. |
|
claude-review reviewed Incremental review of
|
…e an unchanged note alone noteUnrunnable now applies decide()'s early exits through a shared admissionSettled (already agent-ready, or agent-ready removed before), and sayWhy writes nothing when the App's admission comment already holds the same text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #9375
Summary
Canary #9372 had a Windows 11 host item in its done-when. It ended with
status: needs-decisionandneeds-human, and the only comment was the reusable's fixed note: no split and work classnone. The cause: #9367's rubric clause routed these items through theintentflag, and the model escalated withneeds_human. The pinned reusable (ci-workflows intake-triage.yml@2fe38c0, lines 1524 and 1552-1556) drops the model's labels and comment on escalation. A flagged or escalated verdict also never reachesadmit.mjs, which runs only onstatus: ready. So the split comment could not be written on either path.Fix
apply-verdict.mjsnow calls a newnoteUnrunnableinadmit.mjswhenever it holds an issue (escalated or flagged verdict, or a hold label). When a done-when item is one the lane cannot perform, it posts the same admission commentdecide()would, carryingADMIT_MARKER. The comment names each item and recommends keeping the lane-checkable items as the admissible issue and moving the rest to a needs-human child issue. It changes no labels: the held path already setsstatus: needs-decision. Errors are recorded the same way admission errors are.intake-triage.yml): I removed fix(pr-pipeline): hold an issue whose done-when the lane cannot perform #9367's clause from theintentflag and added anUNRUNNABLE DONE-WHENsection. It says such an item alone is no reason forneeds_human, the intent flag or anoneclass: the model triages the lane-checkable items with their class and fields, and admission holds the issue and posts the split. On that pathapply-verdictsetsstatus: readyandadmit.mjsrefuses with the split, as fix(pr-pipeline): hold an issue whose done-when the lane cannot perform #9367 intended.Verification
node --test admit.test.mjs apply-verdict.test.mjs: 142 pass, 0 fail. New tests:noteUnrunnableon docs(machine-health): README says 19 Windows checks; the catalog has 27 #9287's Windows 11 host done-when posts one comment with the marker and the split recommendation, and writes no labels. A runnable done-when writes nothing.run()on an escalated verdict calls the split note: the outcome isneeds-decisionand the summary showsAdmission: noted. A ready verdict does not call it.callers,reenter,triage-sweepandpr-verify/workflowtests: 198 pass.actionlintis clean.Related
🤖 Generated with Claude Code