oss-issue-triage skill (samber): design an issue triage system
Designs the issue and pull-request triage system for an open-source project, sized to the time maintainers really have.
- Installs
- 12.4K
- on skills.sh
- Stars
- 7
- on GitHub
- Files
- 8
- besides SKILL.md
- Updated
- Nov 2026
- last repo commit
oss-issue-triage designs the system that decides how a project's incoming issues and pull requests get handled, sized to the capacity maintainers actually have. It measures the queue first, does the capacity arithmetic, designs a label taxonomy, cuts intake with forms and routing, sets up a triage rota, gives pull requests their own gate order and writes the closing and staleness policy. It produces five artefacts, each validated with you before the next.
It triggers on "our issue tracker is out of control", "set up labels for our repo", "should we run a stale bot" or "triage rotation". Step 1 runs a gh issue list export and the bundled scripts/triage-baseline.py on it. SKILL.md says it does not triage individual items, review code or handle conduct incidents.
Good for
- Maintainers with hundreds of open issues and no process
- Teams deciding whether to run a stale bot
- Projects swamped by low-quality or AI-generated reports
Install oss-issue-triage
Claude Code
- 1
Copy this prompt.
Install the oss-issue-triage skill in Claude Code. Run this command: /plugin marketplace add samber/developer-relations-skills /plugin install developer-relations-skills@developer-relations-skills Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
The README recommends installing the whole collection because its skills reference each other, and oss-issue-triage names other skills in the collection to hand work to. The whole-collection routes add all 93 skills in the repo (counted from the git tree); the repo holds no hooks, agents, commands or MCP server files, and 14 of its skills bundle a script. This skill runs scripts/triage-baseline.py, which needs python3 (SKILL.md step 1 also uses the gh CLI). Pick one route per agent.
From the project README. Source.
What's in the skill
When it loads
Designs an issue and pull-request triage system a maintainer team can sustain - response targets sized against real capacity, the label taxonomy, intake cuts through structured forms and off-tracker routing, a separate security-report path, triage duty assignment, and the closing, staleness and volume-gating policy. Use whenever someone says "our issue tracker is out of control", "design an issue triage process", "set up labels for our repo", "we have 900 open issues", "should we run a stale bot", "PR backlog nobody reviews", "triage rotation", or "we are drowning in AI-generated reports" - even if they only say maintenance is overwhelming. Not good-first-issue curation - use samber/developer-relations-skills@oss-contributor-onboarding.
Sections in SKILL.md
- Interview
- Step 1 - Measure the queue before changing it
- Step 2 - Do the capacity arithmetic
- Step 3 - Design the label taxonomy
- Step 4 - Cut the intake
- Step 5 - Assign the duty
- Step 6 - Give pull requests their own gate order
- Step 7 - Write the closing and staleness policy
- Step 8 - Automate classification, never the first reply
- Step 9 - Publish, run a pilot pass, measure
- Invocation examples
- Deliverable
- Failure modes
- References
Key facts
- Skill version
- 1.0.2 (SKILL.md metadata)
- Installs on skills.sh
- 12,410 (Nov 2, 2026)
- Last repo commit
- Nov 1, 2026
- Audits on skills.sh
- Gen Agent Trust Hub: pass, Socket: pass, Snyk: warn
What it includes
Asks 12 questions; questions 1 to 6 gate the design.
InterviewExports issues with gh and runs triage-baseline.py for age and response stats.
Exports issues with gh issue list and runs triage-baseline.py for age, untriaged share, first response time and label usage.
Runs code ·
Step 1: Measure the queueCompares capacity with inflow and picks a lever to close the gap.
Compares triage capacity with inflow and picks a lever: cut intake, shorten the promise or add triagers.
Step 2: Capacity arithmeticUses orthogonal axes with one value each; automation never sets the top priority.
Orthogonal axes with one value each, and a rule never to let automation apply the top priority.
Step 3: Label taxonomyRoutes questions off the tracker, adds validated forms and a private security path.
Chooser routing, validated forms, disabling blank issues and an auto-applied type label, plus a private security path.
Step 4: Cut the intakeSets a rota with shift length, a named backup, a time box and an escalation rule.
A rota with shift length, a named backup, a time-boxed session and an escalation rule.
Step 5: Assign the dutyPuts sign-off and CI permission first, then direction check, size label and review.
Sign-off and CI permission first, then direction check, size label and code review.
Step 6: Pull request gatesAuto-closes only items waiting on a reporter, with a warning and a dry run first.
Auto-close only items waiting on a reporter, warn first and run the first sweep as a dry run.
Step 7: Closing and stalenessAutomates classification but not the first reply, then times a pilot pass on 15-20 items.
Steps 8-9: Automate and pilotReads an issue export (JSON, JSONL or CSV) and prints queue statistics.
Reads an issue export (JSON, JSON Lines or CSV) and prints queue statistics; options are --stale-days, --window-days, --triage-prefix and --format.
Runs code ·
scripts/triage-baseline.py
From the official docs
Permissions
Medium risk
oss-issue-triage exports your repository's issues with the gh CLI, analyses them with a Python script and designs tracker changes. Our advice: approve the label and automation changes yourself and run any stale sweep as a dry run first.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It exports issue data to local files
SKILL.md tells Claude to run gh issue list for up to 2000 issues, requesting number, title, state, dates, labels, author and comments, into issues.json, then run triage-baseline.py on it. SKILL.md says to present the label taxonomy for approval before touching the tracker; it states no approval step for forms or automation. Our advice: approve each tracker change yourself before it is applied. github.com
A stale bot can close items
SKILL.md recommends closing only items waiting on a reporter, warning first and running the first sweep as a dry run. Follow that order before enabling any auto-close. github.com
It may save notes to devrel-context.md
SKILL.md tells Claude to keep task and project context in devrel-context.md when memory lives in a file, or in the memory system your tool already uses. Check the file before you commit it. github.com
The whole-set install adds 93 skills, 14 with scripts
The README says to install every skill. The git tree has 93 skill folders, and 14 of them hold .py or .sh files. This skill bundles scripts/triage-baseline.py. The tree holds no hooks, agents or MCP config files. github.com
Technical details
| Turning on read-only | SKILL.md describes no read-only mode. |
|---|---|
| Sign-in and keys | SKILL.md and the bundled script name no account, key or token. |
| Scopes |
|
Questions
What does oss-issue-triage do?
It designs a triage system for a project's issues and pull requests. You get a baseline of the queue, a published triage policy, a label change list, an intake change list and a rota with a pull request gate order.
How do I install it?
Use the install box at the top. The README says to install every skill in the repo, because the skills point to each other. The box shows the whole-set route for each app. There is no Claude app route listed, because the baseline steps need a local shell, python3 and the gh CLI.
What commands does step 1 run?
SKILL.md shows gh issue list --state all --limit 2000 with a --json field list, redirected to issues.json, then python3 scripts/triage-baseline.py on that file. The script reads local files and prints a report.
Will it change my tracker settings?
SKILL.md says to present the label taxonomy for your approval before touching the tracker, and to run the first stale-sweep pass as a dry run. It also warns that guessed labels send items to the wrong owner.
Is it safe to install?
The step 1 export contains issue titles, authors and comments from your repository and is saved to issues.json in the folder you run it from. SKILL.md says to present the label taxonomy for your approval before touching the tracker and states no approval step for forms or automation, so approve those yourself. The whole-set install adds 93 skills, 14 of which bundle scripts.
How is it different from oss-contributor-onboarding?
This skill handles the incoming queue. SKILL.md routes good first issue curation and the first-contribution path to samber/developer-relations-skills@oss-contributor-onboarding.
Information
updated Nov 2, 2026
- Repository
- samber/developer-relations-skills
- Folder
skills/oss-issue-triage
Sources
Docs, issue trackers and discussions this page is built from.
Show all 4Hide
- README · github.com
- oss-issue-triage SKILL.md · github.com
- oss-issue-triage scripts/triage-baseline.py · github.com
- LICENSE · github.com