GitHub Issue Triage
decebals/claude-code-java
Sorts open GitHub issues for a Java project into bug, feature, question, duplicate or unclear, then labels them and assigns a priority.
Scans open GitHub issues and discussions, flags duplicates, scores priority and proposes labels into issue-triage-state.md without ever labeling or closing.
$ npx skills add cobusgreyling/loop-engineering --skill issue-triage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cobusgreyling/loop-engineering issue-triage --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cobusgreyling/loop-engineering.git skills-src && mkdir -p .claude/skills && cp -r skills-src/starters/issue-triage/.grok/skills/issue-triage .claude/skills/issue-triage && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "issue-triage" agent skill from https://github.com/cobusgreyling/loop-engineering/tree/main/starters/issue-triage/.grok/skills/issue-triage into .claude/skills/issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-triage", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cobusgreyling/loop-engineering/tree/main/starters/issue-triage/.grok/skills/issue-triageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cobusgreyling/loop-engineering --skill issue-triage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cobusgreyling/loop-engineering issue-triage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cobusgreyling/loop-engineering.git skills-src && mkdir -p .agents/skills && cp -r skills-src/starters/issue-triage/.grok/skills/issue-triage .agents/skills/issue-triage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "issue-triage" agent skill from https://github.com/cobusgreyling/loop-engineering/tree/main/starters/issue-triage/.grok/skills/issue-triage into .agents/skills/issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-triage", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cobusgreyling/loop-engineering --skill issue-triage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cobusgreyling/loop-engineering issue-triage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cobusgreyling/loop-engineering.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/starters/issue-triage/.grok/skills/issue-triage .cursor/skills/issue-triage && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "issue-triage" agent skill from https://github.com/cobusgreyling/loop-engineering/tree/main/starters/issue-triage/.grok/skills/issue-triage into .cursor/skills/issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-triage", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cobusgreyling/loop-engineering.git --path starters/issue-triage/.grok/skills/issue-triage--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cobusgreyling/loop-engineering --skill issue-triage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cobusgreyling/loop-engineering issue-triage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cobusgreyling/loop-engineering.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/starters/issue-triage/.grok/skills/issue-triage .gemini/skills/issue-triage && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "issue-triage" agent skill from https://github.com/cobusgreyling/loop-engineering/tree/main/starters/issue-triage/.grok/skills/issue-triage into .gemini/skills/issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-triage", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cobusgreyling/loop-engineering issue-triageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cobusgreyling/loop-engineering --skill issue-triage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cobusgreyling/loop-engineering.git skills-src && mkdir -p .github/skills && cp -r skills-src/starters/issue-triage/.grok/skills/issue-triage .github/skills/issue-triage && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "issue-triage" agent skill from https://github.com/cobusgreyling/loop-engineering/tree/main/starters/issue-triage/.grok/skills/issue-triage into .github/skills/issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-triage", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cobusgreyling/loop-engineering --skill issue-triage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cobusgreyling/loop-engineering issue-triage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cobusgreyling/loop-engineering.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/starters/issue-triage/.grok/skills/issue-triage .opencode/skills/issue-triage && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "issue-triage" agent skill from https://github.com/cobusgreyling/loop-engineering/tree/main/starters/issue-triage/.grok/skills/issue-triage into .opencode/skills/issue-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-triage", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
issue-triageScans open GitHub issues and discussions, flags duplicates, scores priority and proposes labels into issue-triage-state.md without ever labeling or closing.
The skill acts as an issue queue health agent that keeps a backlog legible, so humans and other loops always know the top five actionable items. It reads open GitHub issues and discussions (or Linear and Jira through MCP if configured), the state file from its previous run, and signals such as age, author, labels, comments, reactions, linked PRs and milestone, then rewrites issue-triage-state.md.
Priorities run from P0 for security, production breakage and data loss down to P3 for nice-to-haves, with needs-info for unclear specs and a possible-duplicate flag for overlapping issues. At the first autonomy level it only proposes labels and priority and never applies labels, comments or closes anything, and areas such as auth, payments, security, public API, billing and infra are escalated to a human. Closed issues are pruned on each run, and a Daily Triage step can merge the top five into a STATE.md file.
Read from SKILL.md and the folder at commit e766228. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Issue Triage Loop loads about 522 tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 195 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from cobusgreyling/loop-engineering at commit e766228, republished under its MIT licence (© cobusgreyling). 195 words, ~522 tokens.
.claude/skills/issue-triage/SKILL.md (or your agent's skills folder).You are an issue queue health agent. Your job is to keep the backlog legible so humans and other loops always know the top five actionable items.
issue-triage-state.md from the previous runissue-triage-state.md# Issue Triage State
Last run: <ISO timestamp>
Open actionable: N (was M)
New since last run: K
Needs human: H
## Top 5 (by loop score)
- #NNN (p1, 2d old) — "one-line summary" — suggested: label1, label2
## Proposed Labels (not applied in L1)
- #NNN: `label-a`, `label-b`
## Possible Duplicates (human confirm)
- #NNN — possible duplicate of #MMM
## Noise / Ignored
- brief list| Priority | Signals |
|---|---|
| P0 | Security, prod breakage, data loss |
| P1 | High impact + clear repro or customer pain |
| P2 | Valid feature/bug, not urgent |
| P3 | Nice-to-have, docs, polish |
| needs-info | Unclear spec, missing repro |
| duplicate? | Title/body overlap with existing issue |
area:*, needs-repro, needs-info — never auto-apply P0, P1, breaking-change, or security
Daily Triage reads this file and merges Top 5 into STATE.md High Priority. Do not duplicate full issue bodies in STATE.md — reference issue numbers only.
© cobusgreyling, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in starters/issue-triage/.grok/skills/issue-triage of cobusgreyling/loop-engineering.
Open the folder on GitHubat commit e766228
Issue Triage Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Issue Triage Loop this skillcobusgreyling/loop-engineering | 11k | — | ~522 | Automated safety check: Pass | MIT | |
| GitHub Issue Triagedecebals/claude-code-java | 751 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Pre-Release PR Triagejamiepine/voicebox | 57k | — | ~3.1k | Automated safety check: Pass | MIT | |
| WinAppSDK Triage Meeting Prepmicrosoft/WindowsAppSDK | 4.7k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Herdr Issue Triageherdrdev/herdr | 43k | — | ~517 | Automated safety check: Pass | Apache-2.0 | |
| Ouroboros Maintainer TriageQ00/ouroboros | 6.2k | — | ~1.7k | Automated safety check: Pass | MIT |
decebals/claude-code-java
Sorts open GitHub issues for a Java project into bug, feature, question, duplicate or unclear, then labels them and assigns a priority.
jamiepine/voicebox
Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.
microsoft/WindowsAppSDK
Prepares the triage meeting summary for WinAppSDK Needs-Triage issues, with research-backed area suggestions, draft replies and a diff since the last triage.
herdrdev/herdr
Triages open herdr GitHub issues into a short decision-first Markdown table with a priority light, recommendation, age, reactions and a reason for each.
Q00/ouroboros
Triages and works through GitHub issues and pull requests in the Q00/ouroboros repo as a maintainer, within a stated review boundary and clear limits on what it may change.
rtk-ai/rtk
Audits open GitHub issues, categorizes them, flags duplicates and linked PRs in three phases, with optional deep analysis and comments posted only after validation.
cobusgreyling/loop-engineering
Installs Loop Engineering into a project through the single @cobusgreyling/loop CLI, scaffolding a report-only loop and a readiness score.
cobusgreyling/loop-engineering
Loads a project's loop-constraints.md before any other action and blocks pushes, edits or merges that violate the rules it defines.
cobusgreyling/loop-engineering
Turns a structured list of changes from changelog-scan into a categorized, user-facing release notes draft file, and never publishes anything.
cobusgreyling/loop-engineering
Turns CI failures, open issues, recent commits and chat threads into a prioritized markdown report that an automation loop can act on without inventing architecture work.
cobusgreyling/loop-engineering
Check token budget and run-log spend before and after a loop run. Enforces early exit when over budget or when there is no actionable work.
cobusgreyling/loop-engineering
Tracks open pull requests and records CI state, staleness, merge conflicts and unanswered review comments in a state file, then lists the top three actions for a human.
Works with
Categories
Scans open GitHub issues and discussions, flags duplicates, scores priority and proposes labels into issue-triage-state.md without ever labeling or closing. The skill acts as an issue queue health agent that keeps a backlog legible, so humans and other loops always know the top five actionable items.md.
Issue Triage Loop fits situations like: cleaning up a backlog of open issues and discussions; finding possible duplicate issues without closing them; ranking open issues by priority from P0 to P3; keeping a shared triage state file current on a recurring run.
Run `npx skills add cobusgreyling/loop-engineering --skill issue-triage -a claude-code`. Or copy the skill folder (starters/issue-triage/.grok/skills/issue-triage in cobusgreyling/loop-engineering) into .claude/skills/issue-triage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cobusgreyling/loop-engineering --skill issue-triage -a codex`. Or copy the skill folder (starters/issue-triage/.grok/skills/issue-triage in cobusgreyling/loop-engineering) into .agents/skills/issue-triage in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cobusgreyling/loop-engineering --skill issue-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/issue-triage, .gemini/skills/issue-triage, .github/skills/issue-triage and .opencode/skills/issue-triage in your project.
SKILL.md names no scripts, command-line tools or credentials: Issue Triage Loop is instructions for the agent only. Our summary lists: Access to the repository's GitHub issues and discussions; Linear or Jira connected through MCP, if you use them.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Issue Triage Loop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 522 tokens (SKILL.md is roughly 2.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Issue Triage Loop: GitHub Issue Triage (decebals/claude-code-java, 751 stars), Pre-Release PR Triage (jamiepine/voicebox, 57k stars), WinAppSDK Triage Meeting Prep (microsoft/WindowsAppSDK, 4.7k stars) and Herdr Issue Triage (herdrdev/herdr, 43k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cobusgreyling (a GitHub user) maintains it in cobusgreyling/loop-engineering, which has 11,448 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 10, 2026.
Source: cobusgreyling/loop-engineering on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.