blob: 7283ea5c6b658842fd8f715a9d31d5489f2674f2 [file] [view]
<!-- SPDX-License-Identifier: Apache-2.0
https://www.apache.org/licenses/LICENSE-2.0 -->
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
- [Issue management skill family](#issue-management-skill-family)
- [Family boundary](#family-boundary)
- [Skills](#skills)
- [Adopter contract](#adopter-contract)
- [Status](#status)
- [Cross-references](#cross-references)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- SPDX-License-Identifier: Apache-2.0
https://www.apache.org/licenses/LICENSE-2.0 -->
# 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:
1. **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.
2. **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.
3. **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.
4. **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.
5. **Stale-sweep** — sweep open issues for inactivity past a
configurable threshold, classify each as `REQUEST-UPDATE` (nudge)
or `CLOSE-STALE` (pre-close notice), post one comment per issue on
maintainer confirmation; closures require a second explicit
confirmation step.
6. **Stats** — read-only dashboard over a directory of `verdict.json`
files produced by reassess campaigns. Surfaces health rating,
classification distribution, partial-fix surfaces, and per-component
breakdowns.
7. **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.
8. **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.
## Family boundary
This family sits **alongside** two related families:
- [`pr-management-*`](../pr-management/README.md) 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-*`](../security/README.md) 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`](../../skills/issue-triage/SKILL.md) | Agentic Triage | Per-issue classification + disposition proposal |
| [`issue-reassess`](../../skills/issue-reassess/SKILL.md) | Agentic Triage | Pool-level sweep of resolved / EOL issues for re-assessment |
| [`issue-reproducer`](../../skills/issue-reproducer/SKILL.md) | — | Per-issue extraction + execution of code examples |
| [`issue-fix-workflow`](../../skills/issue-fix-workflow/SKILL.md) | Agentic Drafting | Drafts a fix PR for a triaged issue |
| [`issue-stale-sweep`](../../skills/issue-stale-sweep/SKILL.md) | Agentic Triage | Backlog hygiene: classifies dormant issues as `REQUEST-UPDATE` or `CLOSE-STALE`; posts one comment per issue on confirmation |
| [`issue-reassess-stats`](../../skills/issue-reassess-stats/SKILL.md) | — | Read-only campaign dashboard |
| [`issue-deduplicate`](../../skills/issue-deduplicate/SKILL.md) | Triage | Merge two open issues describing the same root cause; posts notices and closes the duplicate on explicit two-step confirmation |
| [`issue-backlog-stats`](../../skills/issue-backlog-stats/SKILL.md) | 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.
## Adopter contract
The skills resolve project-specific content from these files in the
adopter's `<project-config>/` directory:
| File | Used by |
|---|---|
| [`project.md`](../../projects/_template/project.md) | all `issue-*` skills (identifiers, `upstream_default_branch`) |
| [`issue-tracker-config.md`](../../projects/_template/issue-tracker-config.md) | all `issue-*` skills (URL, project key, auth, default queries) |
| [`scope-labels.md`](../../projects/_template/scope-labels.md) | `issue-triage`, `issue-reassess`, `issue-backlog-stats` (component / area routing and area pressure ranking) |
| [`release-trains.md`](../../projects/_template/release-trains.md) | `issue-triage` (`@`-mention routing) |
| [`canned-responses.md`](../../projects/_template/canned-responses.md) | `issue-triage` (NEEDS-INFO templates) |
| [`runtime-invocation.md`](../../projects/_template/runtime-invocation.md) | `issue-reproducer` (how to invoke the project's runtime on extracted code) |
| [`reassess-pool-defaults.md`](../../projects/_template/reassess-pool-defaults.md) | `issue-reassess` (pool definitions extending the default queries in `issue-tracker-config.md`) |
| [`reproducer-conventions.md`](../../projects/_template/reproducer-conventions.md) | `issue-reproducer` (evidence-package directory layout) |
| [`stale-sweep-config.md`](../../projects/_template/stale-sweep-config.md) | `issue-stale-sweep`, `issue-backlog-stats` (warn / close / hard-close thresholds; omit to use framework defaults of 90 / 180 / 365 days) |
## 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`](../pilot-report-template.md) into your
project notes, fill in each section, and optionally validate the filled-in
report with:
```bash
uv run --project tools/pilot-report-validator pilot-report-validate <your-report.md>
```
## Cross-references
- [Top-level README — Adopting the framework](../../README.md#adopting-the-framework) — 3-step bootstrap.
- [`projects/_template/README.md`](../../projects/_template/README.md) — adopter scaffold index.
- [`docs/modes.md`](../modes.md) — MISSION mode taxonomy that the
`mode:` frontmatter field declares against.
- [`docs/setup/agentic-overrides.md`](../setup/agentic-overrides.md) —
the override mechanism every skill in this family supports.