Repository navigation
fix(intake-triage): honor admission's comment window when judging re-triage - #10121
Conversation
…-triage On an issue a listed human filed, the lanes App's newest unedited refinement is the spec admission reads (owner decision Q78). refine.mjs judged hasTrustedCriteria on the spec read before posting that refinement, so an issue with no body task list never re-triaged and the App's earlier status: needs-decision stayed (issue #9016, intake-triage run 40206908072). untrusted() now appends the about-to-post refinement as the newest unedited App comment and passes that spec to admit.mjs hasTrustedCriteria, so admission's own refinementSpec and author rules decide. Still one spec read before any label write, needs-triage before needs-decision is removed, and the comment last. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…triage Past admission's 100-comment window the refinement being posted is unread and admission refuses, so untrusted() asks for no triage there; admit.mjs now exports SPEC_COMMENTS for it. New tests pin that the refinement counts as the newest over an older unedited one with no task list, and the window case, on both the needs-decision and status: ready branches. Comments now match the updated header. 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 this pull request. critical-findings: 0 The change makes I read the whole change and what it gates, including the admission helpers in
The change adds no new spend. At most it makes a re-triage run slightly more likely, which draws only on existing prepaid or subscription usage. |
|
claude-review reviewed No findings. I read the full diff and the PR context, and checked the change against What I checked
Gap (not a finding): no test pins the 99-comment case, where a refinement should still be counted. The Trusted paths: none of the three changed files match the listed globs. Cost: nothing here can cause a real charge. |
…mment Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nement-retriage # Conflicts: # .github/scripts/intake-triage/refine.mjs
No related issue: owner goal (2026-10-24) "The only thing that should ever stop an item ... is if there's a change in intent and vision"; Issue Triage measured this defect parking 12 of 17 trusted-criteria refusals on NO-QUESTION rows (e.g. #6930, #9018).
Spec
Summary
On an issue a listed human filed, the lanes App's newest unedited refinement is the spec admission reads (owner decision Q78,
admit.mjsrefinementSpec).refine.mjsdecided whether an exact refinement asks for re-triage by reading the spec before posting that refinement. On an issue with no task list in its body the check found no criteria, posted without re-triage, and the App's earlierstatus: needs-decisionstayed for good. Intake-triage run 40206908072 shows this on #9016: admission refused at 15:27:57Z, then apply-refinement logged "no listed human's text holds a task list yet" even though the refinement held 10 unedited- [ ]criteria. #6885 and #6908 have the same shape.Fix
applyRefinement'suntrusted()in.github/scripts/intake-triage/refine.mjsnow appends the refinement it is about to post (rendered byrender, authored by the App's Bot id, unedited) as the newest comment, then passes that spec toadmit.mjshasTrustedCriteria. Admission's ownrefinementSpecand author rules make the call, with no copy of them. These properties are unchanged:needs-triageis added beforeneeds-decisionis removedneeds-decisionstays (decisionStays)countedRefinementcounts a refinement only on a body a listed human wroteWhen an issue already has at least admission's comment window of comments (
SPEC_COMMENTS, now exported fromadmit.mjs), the new refinement would fall outside what admission reads, and admission refuses such an issue anyway. In that case no triage is asked. The header, docstring and test comments now describe the new rule.Verification
refine.test.mjscover both branches (the App'sneeds-decision, andstatus: readyawaiting admission):needs-triage, theneeds-decisionremoval (that branch only), then the comment with the re-triage footer.refine.mjs, both positive tests fail (redispatch: false) and 101 of 103 pass.node --testin.github/scripts/intake-triage: 446 of 446 pass. Thepr-verifyandwork-unblocksuites, which importadmit.mjs: 302 of 302 pass..github/scripts/is not a shipped plugin path (scripts/check-changelog-fragments.sh).Related
🤖 Generated with Claude Code