GitHub Issue Labeler

VerifiedSafe

Analyze unlabeled GitHub issues and generate label recommendations. Review suggestions in a UI, then submit approved labels in batch via gh CLI. Helps triage large volumes of issues consistently without manual reading.

Sby Skills Guide Bot
DevelopmentIntermediate
1406/2/2026
Claude Code
#issue-triage#github-labels#automation#cli

Recommended for

Our review

Analyzes unlabeled GitHub issues and generates label recommendations via an interactive batch review workflow.

Strengths

  • Automates issue triage without manual reading
  • Review interface with reasoning for each recommendation
  • Explicit approval before application (safety)
  • Uses AI to analyze content and repository context

Limitations

  • Requires gh CLI with write access to issues
  • Only works on GitHub repositories
  • May need batching for large repositories
When to use it

Best for projects with many unlabeled issues needing fast, consistent triage.

When not to use it

Avoid if the team prefers manual labeling or the repository is very small (fewer than a few dozen issues).

Security analysis

Safe
Quality score95/100

The skill uses gh and bash to analyze issues and apply labels only after explicit approval, with dry-run and audit logging. No destructive, exfiltrating, or obfuscated commands are present.

No concerns found

Examples

Tag unlabeled issues for triage
Run the issue labeler on owner/repo to analyze all unlabeled issues and show me the recommendations.
Review and approve labels for a batch
Launch the review UI for the issue labeler recommendations on owner/repo so I can approve each one.
Apply approved labels after review
Apply the approved labels from the issue labeler recommendations on owner/repo.

name: issue-labeler description: Analyze unlabeled GitHub issues and generate label recommendations for review. Supports batch submission after approval. license: MIT compatibility: Requires gh CLI authenticated with repo access. metadata: author: patrick version: "1.0" allowed-tools: bash gh jq

Issue Labeler

Generate label recommendations for unlabeled GitHub issues, review them, then submit in batch.

When to Use

  • Repository has many unlabeled or poorly labeled issues
  • You want to triage issues without manually reading each one
  • Need consistent labeling based on issue content

Workflow

Step 1: Generate Recommendations

# Fetch unlabeled issues and analyze them
./scripts/analyze.sh owner/repo

This creates recommendations.json with suggested labels for each issue.

Step 2: Review Recommendations

# Launch the review UI
./scripts/serve.sh

The UI shows:

  • Issue title and preview
  • Current labels (if any)
  • Recommended labels with confidence
  • Checkbox to approve/reject each recommendation

Step 3: Submit Approved Labels

After reviewing in the UI, export approved recommendations and run:

# Apply approved labels
./scripts/apply.sh recommendations-approved.json

Or use the "Submit All" button in the UI to apply via gh CLI.

Label Categories

The analyzer suggests labels from these categories:

| Category | Labels | |----------|--------| | Type | bug, enhancement, question, documentation | | Priority | priority-1, priority-2, priority-3 | | Status | triage, needs-info, investigating, confirmed | | Area | (detected from content: auth, cli, api, ui, etc.) |

How Analysis Works

For each unlabeled issue, the LLM analyzes:

  1. Title keywords - error, feature, how to, crash, etc.
  2. Body content - stack traces, repro steps, feature requests
  3. Existing patterns - what labels similar issues have
  4. Repository context - available labels in the repo

Files

issue-labeler/
├── SKILL.md              # This file
├── review.html           # Review UI for recommendations
├── scripts/
│   ├── analyze.sh        # Fetch and generate recommendations
│   ├── apply.sh          # Apply approved labels
│   └── serve.sh          # Launch review UI
├── recommendations.json  # Generated recommendations (git-ignored)
└── approved.json         # Approved recommendations (git-ignored)

Example Recommendation

{
  "number": 123,
  "title": "App crashes when clicking submit",
  "current_labels": [],
  "recommended_labels": ["bug", "priority-2", "needs-info"],
  "confidence": 0.85,
  "reasoning": "Title indicates crash (bug). No repro steps provided (needs-info). User-facing issue (priority-2).",
  "approved": null
}

Safety

  • No labels applied without explicit approval
  • Review UI shows reasoning for each recommendation
  • Dry-run mode available: ./scripts/apply.sh --dry-run
  • All actions logged for audit

Notes

  • Requires gh CLI authenticated with write access to issues
  • Run gh auth status to verify permissions
  • For large repos, analyze in batches using --limit flag
Related skills