Reduce GitHub issue backlog through deduplication, linking, and closure. Use before creating new issues, when enforcement_mode is CONSOLIDATION, when issue:PR ratio exceeds 3:1, when AI-created issues reach 25, or when total issues approach 50.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
title: consolidate-issues
description: >
Reduce GitHub issue backlog through deduplication, linking, and closure. Use
before creating new issues, when enforcement_mode is CONSOLIDATION, when
issue:PR ratio exceeds 3:1, when AI-created issues reach 25, or when total
issues approach 50.
---
<!-- markdownlint-disable-file MD013 -->
Reduces issue backlog to prevent AI-created issue spam and maintain healthy project hygiene.
## When to Use This Skill
- Before creating any new GitHub issue (always check limits first)
- When preflight returns `enforcement_mode: CONSOLIDATION`
- When issue:PR ratio exceeds 3:1
- When AI-created issues reach 25
- When total open issues approach 50
- Proactively during maintenance cycles
## Enforcement Modes
| Mode | Trigger | Action |
| ------ | --------- | -------- |
| NORMAL | All limits OK | Work normally |
| CONSOLIDATION | AI-created >= 25 or ratio > 3 | Run this skill first |
| PR_CREATION | Ratio > 5, PRs < 3 | Create PRs, not issues |
| PR_FOCUS | Open PRs >= 10 | Resolve PRs only |
| PAUSED | Total issues >= 50 | Run skipped entirely |
## Hard Limits
- **50 total issues**: Run paused
- **25 AI-created issues**: Skip issue creation
- **10 open PRs**: PR_FOCUS mode
- **3:1 ratio**: CONSOLIDATION mode
## Consolidation Workflow
### Step 1: Check Current Counts
```bash
TOTAL=$(gh issue list --state open --json number | jq length)
AI=$(gh issue list --state open --label ai-created --json number | jq length)
PRS=$(gh pr list --state open --json number | jq length)
RATIO=$(echo "scale=1; $TOTAL / ($PRS + 1)" | bc)
echo "Total: $TOTAL, AI: $AI, PRs: $PRS, Ratio: $RATIO:1"
```
### Step 2: Fetch All Open Issues
```bash
gh issue list --state open --limit 100 --json number,title,body,labels,createdAt
```
### Step 3: Close Duplicates
Identify duplicate issues. For each duplicate issue number, run the following commands as separate tool calls:
**For issue #123:**
```bash
gh issue edit 123 --add-label duplicate
gh issue close 123 --reason "not planned" \
--comment "Duplicate of #456. Closing."
```
**For issue #124:**
```bash
gh issue edit 124 --add-label duplicate
gh issue close 124 --reason "not planned" \
--comment "Duplicate of #456. Closing."
```
### Step 4: Close Resolved Issues
Search for issues fixed by merged PRs:
```bash
gh pr list --state merged --limit 50 --json number,title,body
```
For each issue resolved by a merged PR, run the following command as a separate tool call:
```bash
gh issue close 456 --reason completed \
--comment "Resolved by PR #789."
```
### Step 5: Link Related Issues
For related (non-duplicate) issues, run the following command as a separate tool call for each related issue pair:
```bash
gh issue comment 123 --body "Related to #456."
```
For 3+ related issues, create an umbrella issue as a separate tool call.
### Step 6: Report Summary
Document consolidation results:
- Duplicates closed: N
- Issues resolved by merged PRs: K
- Related issues linked: M
## Best Practices
1. **Check before creating** - Always verify limits first
2. **Close aggressively** - When in doubt, close as duplicate/resolved
3. **Report to Slack** - Never create issues for status updates
4. **Focus on PRs** - PRs close issues; issues don't close themselves
No comments yet. Be the first to comment!