Issue management skill family
Scope. Works on any project, ASF or not — no Apache-Software-Foundation-specific assumptions baked in.
Maintainer-facing skills for projects with a general-issue tracker (JIRA, GitHub Issues, Bugzilla, GitLab Issues). Eight skills that cover per-issue work, pool-level sweeps, deduplication, and read-only reporting:
- Agentic Triage — sweep open issues in the configured candidate pool, classify against the project’s criteria, propose a disposition (BUG / FEATURE-REQUEST / NEEDS-INFO / DUPLICATE / INVALID / ALREADY-FIXED), execute on maintainer confirmation.
- Reassess — sweep a configured pool of resolved or end-of-life issues and re-assess each against the current upstream codebase, surfacing silent fixes and partial fixes.
- Reproducer — for a single issue identifying a code-level bug, extract the reporter’s example code, adapt it to run on the current default branch, execute via the project’s runtime, and compose a structured verdict. Read-only on the tracker.
- Fix-workflow — for a triaged issue confirmed as a bug or feature, draft a fix PR (code change, regression test, commit message, PR description). Drafts only; the human committer reviews and pushes.
- Stale-sweep — sweep open issues for inactivity past a
configurable threshold, classify each as
REQUEST-UPDATE(nudge) orCLOSE-STALE(pre-close notice), post one comment per issue on maintainer confirmation; closures require a second explicit confirmation step. - Stats — read-only dashboard over a directory of
verdict.jsonfiles produced by reassess campaigns. Surfaces health rating, classification distribution, partial-fix surfaces, and per-component breakdowns. - Deduplicate — identify two open issues sharing the same root cause, draft a cross-link comment and a closing rationale, and close the duplicate on maintainer confirmation; closures require a second explicit confirmation step.
- Backlog stats — read-only dashboard over the open issue backlog. Surfaces a health rating, prioritised recommendations, age and staleness breakdowns, area pressure ranking, and a triage-funnel summary without modifying any tracker state.
Install & first runs
Install just this family — one plugin, 8 skills. General-issue lifecycle: triage, reproduction, dedup, backlog.
Once you have added the marketplace:
/plugin install magpie-issue@apache-magpie
New to Magpie? The quick start walks the whole path in
one place — install, the first /magpie-setup run, and a recording of it
happening — plus the other agents and the secure-isolation setup to run next.
Before the first run
Illustrative — the real run derives more and asks better. What is true is the shape: it runs itself, it writes only gitignored files, and it stages nothing.
Every skill here resolves project-specific values from the adopter’s
<project-config>/ directory — which is
.apache-magpie-local/ (gitignored, yours) first, then
.apache-magpie-overrides/ (committed, the project’s).
For yourself: /magpie-setup config scaffolds and fills these locally.
Nothing is staged, nothing is committed, and it works on a repository that
has never adopted Magpie.
For the project: /magpie-setup adopt
commits them for every contributor, either scaffolded directly or promoted
from what you configured locally.
Required. Without these a skill would act on a guess, so it stops and says which file is missing.
| File | What it carries | Read by |
|---|---|---|
fix-workflow.md |
Fork / clone / toolchain specifics, backport-label policy, commit-trailer wording, PR scrubbing, private-PR fallback. | fix-workflow |
issue-tracker-config.md |
Tracker URL, project key, auth model, default query templates. | backlog-stats, deduplicate, reassess, reassess-stats, reproducer, stale-sweep, triage |
project.md |
Project manifest. Identity, repositories, mailing lists, tools enabled, CVE tooling, GitHub project-board + issue-template field declarations. The single file every skill reads to resolve project-scoped references. | stale-sweep, triage |
reassess-pool-defaults.md |
Named pools for reassessment sweeps (open-eol, reopened, stale-unresolved, project-specific). |
reassess |
reproducer-conventions.md |
Evidence-package directory layout and frozen-copy discipline. | reproducer |
runtime-invocation.md |
Build prerequisite, run-a-single-file recipe, stream-capture conventions, network/dependency handling. | fix-workflow, reproducer |
Optional. Each has a documented fallback; absent, the skill still runs.
| File | What it carries | Read by |
|---|---|---|
canned-responses.md |
Reusable reporter-facing reply templates. | triage |
release-trains.md |
Active release branches, release-manager attribution per cut, rotation rosters, security-team roster. | triage |
scope-labels.md |
Scope label → CVE product / packageName / collection-URL mapping. Exactly one scope label per tracker. |
backlog-stats, reassess, triage |
stale-sweep-config.md |
Grace windows and exemption labels for stale sweeps. Absent, the framework defaults apply. | backlog-stats, stale-sweep |
Try these first
Illustrative shapes, not real transcripts — your output will differ. Nothing below sends, merges, or posts anything without you confirming it.
Triage the new issues.
/magpie-issue:triage
Find the duplicates.
/magpie-issue:deduplicate
Try to reproduce one.
/magpie-issue:reproducer
Family boundary
This family sits alongside two related families:
pr-management-*handles the pull-request queue (open PRs, code review, queue stats). PRs are not issues; the skills there operate on a different tracker surface and apply different criteria.security-issue-*handles the security- issue tracker, with confidentiality and CVE-allocation constraints the general-issue family does not need. A project may use both families against different trackers (private security repo; public general-issue JIRA).
A maintainer of a project with both an issue tracker and an active
PR flow typically uses both issue-* and pr-management-* families,
configured with different trackers.
Skills
| Skill | Mode | Purpose |
|---|---|---|
issue-triage |
Agentic Triage | Per-issue classification + disposition proposal |
issue-reassess |
Agentic Triage | Pool-level sweep of resolved / EOL issues for re-assessment |
issue-reproducer |
— | Per-issue extraction + execution of code examples |
issue-fix-workflow |
Agentic Drafting | Drafts a fix PR for a triaged issue |
issue-stale-sweep |
Agentic Triage | Backlog hygiene: classifies dormant issues as REQUEST-UPDATE or CLOSE-STALE; posts one comment per issue on confirmation |
issue-reassess-stats |
— | Read-only campaign dashboard |
issue-deduplicate |
Triage | Merge two open issues describing the same root cause; posts notices and closes the duplicate on explicit two-step confirmation |
issue-backlog-stats |
Triage | Read-only dashboard over the open issue backlog: health rating, area pressure, age breakdown, triage funnel, and staleness candidates |
issue-reproducer and issue-reassess-stats sit outside the MISSION
mode taxonomy; they are mechanical / read-only, not classificatory or
mutating.
Status
Experimental. No adopter pilot has run an evaluation against this family yet. Shape may change between framework versions.
To provide pilot feedback, copy
docs/pilot-report-template.md into your
project notes, fill in each section, and optionally validate the filled-in
report with:
uv run --project tools/pilot-report-validator pilot-report-validate <your-report.md>
Cross-references
- Top-level README — Install — 3-step bootstrap.
projects/_template/README.md— adopter scaffold index.docs/modes.md— MISSION mode taxonomy that themode:frontmatter field declares against.docs/setup/agentic-overrides.md— the override mechanism every skill in this family supports.