Dependencies
This skill requires Python 3.8+ and standard library only, plus the gh CLI
(GitHub CLI) authenticated for this repository.
Issue Resolution Reviewer
Performs post-closure quality audits on resolved repository issues labeled
resolution:fixed or resolution:superseded. This is a read-only report generator —
it never mutates issue state or repository files on its own.
Execution Flow
Phase 1: Collect Closed, Resolved Issues
gh issue list --state closed --label "resolution:fixed" --json number,title,closedAt,labels
gh issue list --state closed --label "resolution:superseded" --json number,title,closedAt,labels
Phase 2: Verify Root Cause & Regression State
For each issue:
- Read the issue body and closing comment for the stated root cause and fix commit/PR.
- Check recent test runs, CI logs, and
references/map-debt.mdfor any friction event referencing the same file/component logged after the issue'sclosedAtdate. - Classify each issue:
CONFIRMED_RESOLVED,RECURRING_FRICTION, orINCONCLUSIVE(insufficient evidence either way).
Phase 3: Report — Human Gate Before Any Mutation
This skill never reopens an issue, changes a label, or creates a new issue on its own.
Produce a report table (Issue # | Title | Classification | Evidence) and, for any issue
classified RECURRING_FRICTION, present the specific evidence and ask the user
explicitly whether to:
- Reopen the original issue (
gh issue reopen <n>), or - File a new root-cause consolidation issue per
github-issue-logging-policy.md§3 (dedup search viagh_issue_search.pyfirst, thengh_issue_create.py/gh_issue_comment.pyin dry-run mode per that policy's staged rollout).
Do not execute either action until the user has confirmed which one they want. If the user doesn't respond or declines, leave the report as the deliverable — do not take a default action.
Gotchas
- Do not skip the dedup search. Before proposing a new consolidation issue, always run the existing-issue search first — filing a duplicate for a friction pattern already tracked elsewhere is worse than leaving it unfiled.
INCONCLUSIVEis a valid, honest classification. Do not force aCONFIRMED_RESOLVEDorRECURRING_FRICTIONverdict when the evidence genuinely doesn't support either.