mirror of
https://github.com/anthropics/claude-code.git
synced 2026-02-19 04:27:33 -08:00
Consolidate issue triage, stale detection, and lifecycle enforcement into two components: a Claude-powered triage workflow and a unified sweep script. Triage workflow changes: - Add issue_comment trigger so Claude can re-evaluate lifecycle labels when someone responds to a needs-repro/needs-info issue - Add concurrency group per issue with cancel-in-progress to avoid pile-up - Filter out bot comments to prevent sweep/dedupe triggering re-triage - Hardcode allowed label whitelist to prevent label sprawl (was discovering labels via gh label list, leading to junk variants like 'needs repro' vs 'needs-repro') - Replace MCP GitHub server with gh CLI — simpler, no Docker dependency, chaining is caught by the action so permissions are equivalent - Add lifecycle labels (needs-repro, needs-info) for bugs missing info - Add invalid label for off-topic issues (Claude API, billing, etc.) - Add anti-patterns to prevent false positives (don't require specific format, model behavior issues don't need traditional repro, etc.) Sweep script changes: - Absorb stale issue detection (was separate stale-issue-manager workflow) - Mark issues as stale after 14 days of inactivity - Skip assigned issues (team is working on it internally) - Skip enhancements with 10+ thumbs up (community wants it) - Add invalid label with 3-day timeout - Add autoclose label support to drain 200+ legacy issues - Drop needs-votes (stale handles inactive enhancements) - Unify close messages into a single template with per-label reasons - Run 2x daily instead of once Delete stale-issue-manager.yml — its logic is now in sweep.ts. ## Test plan Dry-run sweep locally: GITHUB_TOKEN=$(gh auth token) GITHUB_REPOSITORY_OWNER=anthropics GITHUB_REPOSITORY_NAME=claude-code bun run scripts/sweep.ts --dry-run Triage workflow will be tested by opening a test issue after merge.