$npx -y skills add apache/magpie --skill issue-stale-sweepSweep open <issue-tracker> issues for inactivity past a configurable threshold and propose either a closure (when the issue has been unresponsive long enough to presume abandonment) or an update request (nudge the reporter to confirm the issue is still relevant). Waits for main
| 1 | <!-- SPDX-License-Identifier: Apache-2.0 |
| 2 | https://www.apache.org/licenses/LICENSE-2.0 --> |
| 3 | |
| 4 | <!-- Placeholder convention (see ../../AGENTS.md#placeholder-convention-used-in-skill-files): |
| 5 | <project-config> → adopter's project-config directory |
| 6 | <issue-tracker> → URL of the project's general-issue tracker |
| 7 | (resolves from <project-config>/issue-tracker-config.md) |
| 8 | <issue-tracker-project> → project key within the tracker |
| 9 | <upstream> → adopter's public source repo |
| 10 | <default-branch> → upstream's default branch (master vs main) |
| 11 | Substitute these with concrete values from the adopting |
| 12 | project's <project-config>/ before running any command below. --> |
| 13 | |
| 14 | # issue-stale-sweep |
| 15 | |
| 16 | This skill is the **stale-issue sweep** for the project's general issue |
| 17 | tracker. It identifies open issues that have had no new comment or update |
| 18 | activity past a configurable inactivity threshold, classifies each as |
| 19 | either `REQUEST-UPDATE` or `CLOSE-STALE`, and — on the user's explicit |
| 20 | confirmation — posts one lightweight comment per issue (a nudge or a |
| 21 | pre-close notice, as appropriate). |
| 22 | |
| 23 | The skill **never closes, labels, transitions, or edits any tracker field |
| 24 | without confirmation**. The decision belongs to the maintainer; this skill |
| 25 | surfaces the candidates and pre-drafts the comments so the maintainer can |
| 26 | review in bulk and confirm or skip individually. |
| 27 | |
| 28 | It composes with: |
| 29 | |
| 30 | - [`issue-triage`](../issue-triage/SKILL.md) — the main triage skill for |
| 31 | unsorted-new issues; stale-sweep is the hygiene pass for the open-but- |
| 32 | dormant pool. |
| 33 | - [`issue-reassess`](../issue-reassess/SKILL.md) — for the resolved / EOL |
| 34 | pool (stale-sweep handles the still-open dormant pool instead). |
| 35 | |
| 36 | --- |
| 37 | |
| 38 | ## Disposition vocabulary |
| 39 | |
| 40 | The skill uses **exactly two** disposition classes: |
| 41 | |
| 42 | | Class | When to propose | Follow-up action | |
| 43 | |---|---|---| |
| 44 | | `REQUEST-UPDATE` | Issue is dormant past the warn threshold but **not** yet past the close threshold; reporter has not recently responded | Post a nudge comment asking the reporter to confirm the issue is still relevant on the current `<default-branch>`; no state change yet | |
| 45 | | `CLOSE-STALE` | Issue is dormant past the close threshold **and** has already received a `REQUEST-UPDATE` nudge with no response, **or** is dormant past a hard-close threshold with no nudge needed | Post a pre-close notice and, on a second explicit confirmation, close the issue | |
| 46 | |
| 47 | The two thresholds (`warn_days` and `close_days`) default to the values in |
| 48 | [`<project-config>/stale-sweep-config.md`](../../projects/_template/stale-sweep-config.md) |
| 49 | when that file exists, or to framework defaults (90 / 180 days) when it |
| 50 | does not. The user may override either threshold inline at invocation time. |
| 51 | |
| 52 | --- |
| 53 | |
| 54 | ## Golden rules |
| 55 | |
| 56 | **Golden rule 1 — read-only on tracker state until confirmed.** This |
| 57 | skill posts comments and closes issues only after the user confirms each |
| 58 | action individually. No label mutations, no workflow transitions, no body |
| 59 | edits, no project-board column moves. Every post and every close is |
| 60 | proposed, shown, and executed only after the user says "yes" for that |
| 61 | specific item. |
| 62 | |
| 63 | **Golden rule 2 — every comment is a draft until confirmed.** Per the |
| 64 | "draft before send" rule in [`AGENTS.md`](../../AGENTS.md), every comment |
| 65 | body is drafted and shown before posting. The fact that the user invoked |
| 66 | the skill is **not** blanket authorisation — each comment is reviewed |
| 67 | individually. Closures require a second explicit confirmation step after |
| 68 | the comment has posted. |
| 69 | |
| 70 | **Golden rule 3 — two classes, no more.** The classification is either |
| 71 | `REQUEST-UPDATE` or `CLOSE-STALE`. No hybrid or escalation proposals in a |
| 72 | single comment. |
| 73 | |
| 74 | **Golden rule 4 — never close without a posted nudge first (unless the |
| 75 | hard-close threshold applies).** An issue that has never received a |
| 76 | stale-sweep nudge in this tracker must r |