Skip to content

Dawn952/issue-preprocessor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Issue Preprocessor — Claude Code Skill

An out-of-the-box Claude Code skill that automatically scans, triages, and routes GitHub issues based on model affinity. Built for the vLLM-Ascend project but configurable for any multi-model repository.

What It Does

  1. Daily scan — Fetches open issues matching a configurable label, filters out stale/closed/waiting issues
  2. Model matching — Identifies which model series each issue belongs to (DSv4, GLM, Kimi, Qwen3-next, etc.)
  3. Comment analysis — Reads existing comments to detect duplicates, PRs, user confirmations, NPU errors, and triager activity
  4. Information gap check — Flags missing config, logs, PLOG traces
  5. Auto-reply drafting — Generates standardized triage replies with model-owner @mentions
  6. Review pipeline — Interactive Claude Code confirmation flow before publishing
  7. Batch publish — Posts replies + /wait-feedback labels in one go

Quick Start

Prerequisites

  • GitHub CLI (gh) — install guide
  • jq — JSON processor (winget install jqlang.jq / brew install jq / apt install jq)
  • Claude Code — for the interactive review & publish pipeline
  • GitHub token with repo scope — gh auth login then gh auth refresh -s repo

1. Install the Skill

# Clone into your Claude Code skills directory
git clone git@github.com:Dawn952/issue-preprocessor.git ~/.claude/skills/issue-preprocessor

2. Run Setup Wizard

cd ~/.claude/skills/issue-preprocessor
bash scripts/install.sh

The wizard will ask you:

Question Example
Target GitHub repo vllm-project/vllm-ascend
Label to scan llm-model
Your GitHub username your-handle
Known triagers alice, bob
Maintainers (can close) maintainer1, maintainer2
Model → Owner mapping DSv4 → @alice, GLM → @bob, ...

3. Run Your First Scan

In Claude Code, just mention "issue preprocessing" or "scan issues":

> Run the issue preprocessor scan

Or manually from the terminal:

bash ~/.claude/skills/issue-preprocessor/scripts/scan-issues.sh --test 10

4. Schedule Daily Runs

Linux / WSL (cron):

crontab -e
# Add: 0 8 * * * bash ~/.claude/skills/issue-preprocessor/scripts/scan-issues.sh

Windows (Task Scheduler):

$trigger = New-ScheduledTaskTrigger -Daily -At 08:00
$action = New-ScheduledTaskAction -Execute "bash" -Argument "~/.claude/skills/issue-preprocessor/scripts/scan-issues.sh"
Register-ScheduledTask -TaskName "IssuePreprocessor" -Trigger $trigger -Action $action

How It Works

┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│  scan-issues  │───▶│  Claude Code │───▶│  gh issue    │
│  .sh          │    │  review      │    │  comment     │
│  (fetch+match)│    │  pipeline    │    │  (publish)   │
└──────────────┘    └──────────────┘    └──────────────┘
  1. scan-issues.sh — Bash script that fetches issues, filters by labels, matches model series, and outputs structured JSON
  2. Claude Code skill (SKILL.md) — Reads the JSON, analyzes each issue's comments, drafts triage replies, and walks you through an interactive confirmation pipeline
  3. Publish — Confirmed replies are posted to GitHub via gh issue comment

File Structure

issue-preprocessor/
├── SKILL.md                    # Claude Code skill definition
├── README.md                   # This file
├── config.json.template        # Configuration template
├── config.json                 # Your config (generated by install.sh, gitignored)
├── .gitignore
├── scripts/
│   ├── install.sh              # Interactive first-time setup
│   └── scan-issues.sh          # Daily issue fetch + model matching
├── templates/
│   └── triage-reply.md         # Reply template with comment-analysis rules
└── references/
    └── responsibility-matrix.md # Model-owner mapping reference

Customizing Models

Edit config.json to add/remove model series:

{
  "models": [
    {
      "series": "MyModel",
      "title_patterns": ["mymodel-v2", "mmv2"],
      "body_patterns": ["mymodel"],
      "owner": "my-teammate"
    }
  ]
}
  • title_patterns — Keywords matched against the issue title (higher priority)
  • body_patterns — Keywords matched against the issue body (fallback)
  • owner — GitHub handle to @mention in replies

License

MIT

About

Out-of-the-box Claude Code skill for automated GitHub issue triage, model matching, and intelligent routing. Config-driven with interactive first-run setup.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages