feat(triage): add not-planned action to close out-of-scope issues#54
feat(triage): add not-planned action to close out-of-scope issues#54rh-hemartin wants to merge 1 commit into
Conversation
|
🤖 Finished Review · ✅ Success · Started 6:45 AM UTC · Completed 6:57 AM UTC |
PR Summary by QodoAdd
AI Description
Diagram
High-Level Assessment
Files changed (5)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
55 rules 1.
|
| not-planned) | ||
| if [[ -z "${COMMENT}" ]]; then | ||
| echo "ERROR: action is 'not-planned' but no comment provided" >&2 | ||
| exit 1 | ||
| fi | ||
| remove_label "blocked" | ||
| remove_label "needs-info" | ||
| add_label "not-planned" | ||
| ;; | ||
|
|
There was a problem hiding this comment.
ReviewWell-structured addition of the The implementation is consistent and complete across all touchpoints:
No issues found across correctness, security, intent, style, documentation, or cross-repo contract dimensions.
Previous runReviewWell-structured addition of the One consumer of the triage action enum was not updated in this PR. Findings1.
|
04de034 to
1f9fd51
Compare
Add not-planned triage action for out-of-scope, invalid, or spam issues. Include pre-triage label reset, docs update, schema validation, and tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Hector Martinez <hemartin@redhat.com>
1f9fd51 to
35a059c
Compare
|
🤖 Finished Review · ✅ Success · Started 9:38 AM UTC · Completed 9:47 AM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Multi-agent review (Claude, Gemini, Codex reviewers, findings verified before posting). The mechanical wiring is clean — schema enum, CONTROL_LABELS, the pre-triage reset loop and its verification jq filter, close ordering, and gh issue close --reason "not planned" were all independently confirmed correct and consistent with the existing duplicate flow; both test suites pass. Two medium findings posted inline; no critical/high issues found.
|
|
||
| ### Action: `not-planned` | ||
|
|
||
| The issue is out-of-scope, invalid, spam, or should otherwise not be worked on. This action closes the issue with reason `not planned`. |
There was a problem hiding this comment.
[medium] missing-guardrail
not-planned is the only destructive, hard-to-undo triage outcome (it closes a reporter's issue), yet it's the only action without a HARD CONSTRAINT rule integrating it into the decision framework — sufficient, insufficient, prerequisites, and question all have explicit anti-bypass rules (lines 58, 149, 151, 153). Two gaps: (1) nothing biases the agent toward caution when out-of-scope status is ambiguous — the "technical direction counter to documented architectural decisions" criterion is subjective and easy to over-apply to ambitious-but-legitimate feature requests; (2) nothing settles priority against sufficient/triaged for a clearly-written but out-of-scope request, or against insufficient for an out-of-scope issue that is also vague.
Suggested fix: Add a HARD CONSTRAINT, e.g.: "When uncertain whether an issue is truly out of scope, prefer insufficient (ask) or sufficient/triaged (let a human decide) over not-planned. Only use not-planned when out-of-scope/invalid/spam status is unambiguous, and cite the specific scope doc or ADR in the comment when closing on scope grounds."
|
|
||
| run_test "not-planned-posts-comment" \ | ||
| '{"action":"not-planned","reasoning":"out of scope","comment":"This request is out of scope for the project goals. See docs/scope.md for more details."}' \ | ||
| "gh issue comment 42 --repo test-org/test-repo --body-file -" |
There was a problem hiding this comment.
[medium] eval-coverage
These tests thoroughly cover the post-script mechanics, but no eval/triage/cases/ fixture covers the agent's decision to choose not-planned. Every other consequential outcome has an eval case guarding decision quality (001-bug-url-encoding, 002-needs-info-vague-crash, 003-feature-request, 004-duplicate-issue), and not-planned is the highest-blast-radius action this agent can take — auto-closing a reporter's issue on subjective criteria — with no regression guard against the model over-applying it. The only other closing action (duplicate) is far more objective, since it must identify a specific existing issue.
Suggested fix: Add an eval case for a clearly out-of-scope issue expecting not-planned (with labels.forbidden mirroring 004-duplicate-issue), and ideally a negative case — an ambitious-but-legitimate feature request that must NOT be closed as not-planned.
Summary
Add
not-plannedaction to triage agent for closing issues as out-of-scope, invalid, or spam.Related Issue
Closes #2205
Changes
not-plannedto action enum intriage-result.schema.jsonnot-plannedcase that applies label and closes issue with reasonnot plannednot-plannedtoCONTROL_LABELSarraynot-plannedvs other actionsnot-plannedto control labels table indocs/agents/triage.mdnot-plannedaction behaviorTest plan
🤖 Generated with Claude Code