[FEATURE] Issue Noise Reduction: Automated Deflection, Bulk Cleanup, and Mega-Issue Strategy for 6,000+ Open Issues
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
The Claude Code issue tracker has a severe noise problem that makes it impossible for developers to focus on key issues. Here's the data from a comprehensive analysis conducted on 2026-02-17:
Scale:
- 6,185 open issues (from ~26,428 total ever created)
- Issue creation rate exploded from ~5/day (Sept 2025) to 250-317/day (Feb 2026) — a 60x increase in 5 months
- At this rate: ~7,500 new issues/month
56% of all open issues are zombies (labeled for closure but still open):
| Label | Count | % of Open |
|---|---|---|
| stale | 2,602 | 42% |
| autoclose | 477 | 7.7% |
| duplicate | 325 | 5.3% |
| invalid | 42 | 0.7% |
| Total | ~3,446 | 56% |
Top duplicate clusters (same issue reported dozens of times):
| Cluster | ~Count |
|---|---|
| Compaction/compact failures | 181 |
| Crash/SIGTRAP/terminated | 175 |
| Token/billing/credits | 84 |
| Claude ignores instructions | 53 |
| Context limit/conversation too long | 51 |
| API Error 500 (identical titles) | 71 |
| Rate limit/overloaded | 43 |
| npm install failed | 43 |
| Cannot modify thinking blocks | 34 |
| classifyHandoffIfNeeded | 14 |
Additional noise signals:
- 29% of recent issues (147/500 sampled) have zero labels — triage bot can't keep up
- 28% of issues have zero comments — abandoned drive-by reports
- 65 issues have empty titles (just
[BUG]or[FEATURE]with nothing else) - No GitHub Discussions tab — every question, billing complaint, and "not working" report becomes an issue
Root cause analysis of existing automation gaps:
sweep.tsis hardcoded to 10 pages (1,000 issues max per run) — with 6,185 open issues, it literally cannot reach ~5,185 of them. The stale backlog grows faster than the sweep can process.auto-close-duplicates.tsrequires a bot comment referencing#number— but the triage bot only adds labels, it doesn't post duplicate references. So 325 issues get theduplicatelabel and then... nothing.- No pre-submission deflection — known transient errors (API 500, rate limits, thinking blocks, context compaction) aren't caught before the issue is submitted. Users literally paste error messages as titles.
- No support channel separation — billing questions, "how do I..." questions, and support requests are all filed as bug reports because there's no Discussions tab.
- Lifecycle pipeline is broken —
stale(14d) → should transition toautoclose(14d) → should close. But 2,602 stale issues prove this pipeline isn't executing.
Proposed Solution
A multi-pronged noise reduction strategy:
1. Immediate: One-Time Bulk Cleanup
- Close all 325 open
duplicate-labeled issues - Close all 477 open
autoclose-labeled issues - Close all
staleissues older than 60 days with 0 comments and < 10 upvotes - Close all 65 empty-title issues (just
[BUG]or[FEATURE]) - Estimated cleanup: ~3,000+ issues closed in one pass
2. Fix the Sweep Pipeline
- Remove the 10-page hard limit in
sweep.ts(or increase to 100 pages) - Run the sweep 4x daily instead of 2x to handle volume
- Add a
stale→autoclosetransition (currently missing — stale issues just sit forever) - Make
closeExpireduse GraphQL bulk mutations instead of individual REST calls to avoid rate limits
3. Pre-Submission Deflection Bot
On issue creation, an additional workflow should pattern-match against known clusters and immediately comment + close (or redirect) with helpful links:
| Pattern | Action |
|---|---|
| Title contains "API Error: 500" | Auto-comment: "This is a transient server-side error. Please retry. If persistent, check [status.anthropic.com]." Close as not_planned. |
| Title contains "thinking blocks" | Auto-comment + link to known issue tracking this. Close as duplicate. |
| Title contains "rate limit" / "overloaded" / "429" | Auto-comment: "Rate limits are expected during high usage. See [docs/troubleshooting]." Close as invalid. |
| Title contains "install" + "fail" | Auto-comment: "Try npm uninstall -g @anthropic-ai/claude-code && npm install -g @anthropic-ai/claude-code@latest. See [troubleshooting guide]." Label needs-info. |
| Empty title (just [BUG] or [FEATURE]) | Auto-close with "Please resubmit with a descriptive title." |
| Title is raw error message (paste-dump) | Auto-comment requesting proper description. Label needs-info. |
4. Mega-Issue / Pinned Tracking Issues
Create pinned tracking issues for the top 10 duplicate clusters. The triage bot should link new duplicates to these instead of just labeling:
[TRACKING] Context compaction failures(~181 duplicates)[TRACKING] Crash/SIGTRAP on long sessions(~175 duplicates)[TRACKING] Token usage / billing / credits questions(~84 duplicates)[TRACKING] Claude ignores CLAUDE.md instructions(~53 duplicates)[TRACKING] API Error 500 (transient)(~71 duplicates)
Each pinned issue would have:
- Known status, workarounds, and ETA (if any)
- Auto-updated count of linked duplicates
- Clear "subscribe here for updates" instruction
5. Enable GitHub Discussions
- Move questions, billing support, and "how do I..." to Discussions
- Update
config.ymlcontact links to point to Discussions for non-bug/non-feature topics - Add a Discussion category for "Troubleshooting" and "General"
6. Strengthen the Triage Bot
Enhance claude-issue-triage.yml to:
- Actually close (not just label) clear duplicates by referencing the tracking issue
- Reject empty titles immediately instead of just labeling
- Detect paste-dump titles (raw error JSON, stack traces as titles) and request resubmission
- Cross-reference with the top 10 tracking issues for automatic dedup
Alternative Solutions
- Do nothing: Issue count will exceed 10,000 open by April 2026 at current trajectory. Developers will have zero signal-to-noise visibility.
- Manual triage: Would require 2-3 full-time humans at 250+ issues/day. Not scalable.
- Close everything older than 30 days: Too aggressive, loses legitimate long-standing bugs. The proposed approach is surgical.
Priority
Critical - Blocking my work
Feature Category
Other
Use Case Example
Current state (developer perspective):
- Developer wants to check if "context compaction fails after subagent" is a known issue
- Searches issues — gets 181 results for "compaction", 51 for "context limit"
- Has to read through dozens of nearly identical reports to find if any have a response
- Gives up, files a new issue (becomes duplicate #182)
- Issue gets labeled
staleafter 14 days, sits in the 2,602-issue stale graveyard forever
Proposed state:
- Developer searches "compaction" — finds pinned tracking issue
[TRACKING] Context compaction failures - Sees current status: "Known issue. Workaround: use
/compactbefore reaching limit. Fix in progress for v2.2.x" - Subscribes to the tracking issue for updates
- If they file a new issue anyway, the bot auto-links it to the tracker and closes it within minutes
- Developers see 800 real open issues instead of 6,185 (of which 3,400+ are zombies)
Additional Context
Data methodology: All numbers were collected via gh api pagination across all 6,185 open issues on 2026-02-17. Title pattern matching used grep against the full corpus of open issue titles. Label counts were verified via paginated API queries for each label.
Existing automation reviewed:
.github/workflows/claude-issue-triage.yml— Claude Opus-based labeling.github/workflows/auto-close-duplicates.yml— daily cron.github/workflows/sweep.yml— twice daily lifecycle enforcement.github/workflows/issue-lifecycle-comment.yml— lifecycle notifications.github/workflows/remove-autoclose-label.yml— reactivation on commentscripts/sweep.ts— stale marking + lifecycle closure (10-page limit found)scripts/auto-close-duplicates.ts— requires comment with#numberreferencescripts/issue-lifecycle.ts— lifecycle config (stale: 14d, autoclose: 14d, etc.)
The automation exists but has critical scaling gaps. This proposal addresses those gaps specifically.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗