potiuk opened a new pull request, #153: URL: https://github.com/apache/airflow-steward/pull/153
## Summary Adds bulk-mode selectors to `security-issue-invalidate`: - `invalidate #N1, #N2, …` / `invalidate #N1-#N5` — explicit list, all closed in one run with one combined proposal. - `invalidate proposed` — every open tracker that has a posted NOT-CVE-WORTHY triage proposal **AND** team consensus marker (a thumbs-up reaction from a second roster member, or a follow-up reply with a positive-acknowledgement keyword). Updates Step 6 to make the sequential-across-trackers rule explicit and document the partial-failure-recovery contract. ## Motivation During the 2026-05-14 sweep, the user invoked the skill 7 times in sequence to invalidate the 7 NOT-CVE-WORTHY trackers from the just-completed triage pass. The skill's per-tracker single-issue contract worked but the operator quality-of-life is poor: each invocation is its own round-trip with the classifier, body preview, and confirmation gate, and the "please proceed all the invalid ones as if team agreed" intent is more naturally a batch operation. The bulk-mode selector mirrors the `security-issue-sync` bulk-mode pattern: aggregate the proposed actions across all N trackers, surface one combined proposal, accept one `all` confirmation, then apply sequentially per the existing Step 6 hard rule. ## Test plan - [ ] Run `/security-issue-invalidate #N1, #N2, #N3` on three open trackers with NOT-CVE-WORTHY triage proposals; confirm one combined proposal lists the close-comment / reporter-draft / label / close actions for each. - [ ] Confirm `all` confirmation applies sequentially, with one tracker fully closed (labels + close + draft + board archive) before the next starts. - [ ] Confirm partial-failure handling: if tracker 2 of 3 fails its `gh issue close`, tracker 1 stays closed, tracker 3 doesn't start, and the failure is surfaced so the user can retry. - [ ] Confirm `invalidate proposed` correctly identifies trackers with both a NOT-CVE-WORTHY triage proposal AND a team-consensus signal; **without** the consensus signal, proposed trackers are excluded with an explicit "awaiting consensus on #NNN — skipped" note. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
