Agent skill

GitHub Triage

by amd in amd/gaia

Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog.

MITAuto-check: warningsDevelopment

Install GitHub Triage

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add amd/gaia --skill github-triage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install amd/gaia github-triage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .claude/skills && cp -r skills-src/hub/skills/github-triage .claude/skills/github-triage && rm -rf skills-src

Use ~/.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/

Facts

Skill name
github-triage
GitHub stars
1.6k
Token cost
~2.3k tokens
SKILL.md length
1,279 words
Files
1
Skills in repo
44
Repo updated
First seen
Licence
MIT

At a glance

Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog.

  • Works in 6 steps: Pull the backlog. Ask for the repository… → Read the ones that matter. → Group before judging. Cluster issues… → …
  • Asked to triage issues
  • SKILL.md covers Setup, What the grant allows, Which inbox and Triage the inbox, plus 3 more sections
  • Calls gh; needs GH_TOKEN and GITHUB_TOKEN

What it does

GitHub Triage is an agent skill from amd/gaia. Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog. Groups what arrived, judges what is urgent, and posts the reply once you approve it. Use when asked to triage issues or notifications, check the GitHub inbox, see what needs attention or what you are blocking, review a backlog, comment on or label an issue, or work out what to fix first.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Issue triage and Email management. It works with GitHub. The repository describes itself as: Build AI agents for your PC. The licence is MIT.

When your agent uses it

  • Asked to triage issues
  • Check the GitHub inbox
  • See what needs attention
  • What you are blocking

Example prompts

  • “/github-triage”

Requirements

  • A credential in GITHUB_TOKEN

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Pull the backlog. Ask for the repository if the user did not name one.
  2. Read the ones that matter.
  3. Group before judging. Cluster issues that describe the same underlying
  4. Judge each cluster on two axes
  5. Say what is missing. For anything you cannot reproduce from the issue
  6. Post it, once the user approves. Compose the comment or label change and

What it can do on your machine

Read from SKILL.md and the folder at commit 6c3bb5c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • cli.github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GH_TOKEN
    • GITHUB_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

GitHub Triage loads about 2.3k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 1,279 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

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.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:77
    Do not ask for permission in prose before running one; the prompt IS the ask.

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.

SKILL.md

The full file from amd/gaia at commit 6c3bb5c, republished under its MIT licence (© amd). 1,279 words, ~2,256 tokens.

Download SKILL.mdSave it as .claude/skills/github-triage/SKILL.md (or your agent's skills folder).
name
github-triage
description
Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog. Groups what arrived, judges what is urgent, and posts the reply once you approve it. Use when asked to triage issues or notifications, check the GitHub inbox, see what needs attention or what you are blocking, review a backlog, comment on or label an issue, or work out what to fix first.
license
MIT
version
2.2.0

GitHub Triage

The bring-your-own-CLI example. This skill declares one permission — shell:execute:gh — which grants the GitHub CLI to this skill's session on this agent only, restricted to the commands in GAIA's policy table. There is no connector, no server to start, and no token to hand GAIA: gh owns its own auth.

Run every GitHub command through run_shell_command.

Setup

Call check_cli_setup("gh") first. It is read-only, prompts nobody, and returns the one thing worth acting on — a state. Never infer setup from a gh command that failed, and never run gh --version to guess.

stateRemedy
readyNone. Start the triage.
missinginstall_cli. Linux has no automated install — give the user https://cli.github.com.
unauthenticatedsign_in_cli.
insufficient_scopessign_in_cli — signing in again re-requests repo and read:org.
env_tokenNever sign_in_cli. The credential is a GH_TOKEN/GITHUB_TOKEN from the environment, and gh refuses to store its own while that is set. Relay the detail verbatim — it says whether the token is working, or expired and needing a new value in the variable — and move on.

Pass command back exactly as check_cli_setup returned it — install_command or sign_in_command. That string is what the user sees in the approval prompt, and one that does not match is refused rather than run.

Both tools stop and ask, every time: the user sees the exact command and answers before anything runs. There is no "always", and loading this skill pre-approves neither. Signing in is a handoff — GAIA starts the flow and shows a one-time code and a URL, then waits while the user enters the code in their browser. You cannot type it for them.

Report a setup failure as a failure. Both tools name the manual command when they give up; hand that to the user rather than claiming a step succeeded.

Any other gh failure is a bug in the command you sent, not a missing gh. Quote the error and fix the command. Never diagnose it as "not installed".

What the grant allows

Three tiers. Which one a command lands in is decided by GAIA, not by this skill.

Reads — run with no prompt. gh issue list|view|status, gh pr list|view|diff|checks|status, gh repo list|view, gh release list|view, gh run list|view, gh label list, gh search issues|prs|repos|code|commits, gh auth status, and gh api for GET requests. Loading this skill is the consent, so a triage does not stop for a modal on every read.

Writes — the user approves each one. gh issue create, gh issue comment, gh issue edit (this is how labels and assignees change), gh pr comment, gh label create|edit. GAIA shows the user the exact command and waits. They answer yes, no, or "always for gh issue comment" — which lasts this session and covers that verb only, not gh in general and not the shell.

Ask for one write at a time and let each be judged on its own. An "always" answer covers the verb, not the repository or the flags, so a queue of similar commands is how a user stops reading them.

Do not ask for permission in prose before running one; the prompt IS the ask. Compose the command and run it. If the user says no, the tool returns a denial — report it and move on. Never re-run a denied command hoping for a different answer.

Refused outright — no prompt, and approval is not available. gh auth token and gh auth status -t/--show-token (both print the credential), gh alias (defines a shell command), gh extension (installs and runs code), gh config, gh codespace, any gh api write (-X POST, -f/--field, graphql), and the irreversible ones: gh pr merge, gh issue close, gh label delete, gh repo delete. Also refused on any subcommand: --body-file (uploads a local file's contents), --editor, --web (opens a browser, returns you nothing), and --watch (blocks until the run finishes). The repo, release, run, search, and auth read commands accept only reviewed flags from GAIA's policy table. The mixed read/write issue, pr, and label commands use a denylist for flags; their supported read actions remain limited to the actions listed above.

A refused command returns an error, not a silent no-op. Report it as a refusal and say what you would have run. These commands are refused outright rather than gated, so there is no approval to offer — do not work around one, and do not present approving it as a path.

Any other shell command still needs the user's per-call approval, so keep to gh; piping its output elsewhere will stop and ask.

Which inbox

"My inbox", "my notifications", "what needs my attention", "what am I blocking" mean the notification feed — start at Triage the inbox. A named repository means its backlog — start at Procedure. Never substitute one for the other, and never answer either from memory: if you did not run gh this turn, you have not triaged.

Show full SKILL.md (499 more words)Show less

Triage the inbox

bash
gh api "notifications?all=false&per_page=50" --jq ".[]|[.reason,.repository.full_name,.subject.type,.updated_at[0:10],.subject.title]|@tsv"

Rank by reason — it answers who is blocked on me?

reasonact
review_requested, assignfirst — someone is waiting on you
mention, team_mentionnext — you were asked directly
ci_activityonly if it failed
subscribed, author, commentbatch; usually skip

Then group and judge with steps 3–5 below, and close with action items that each name a number and a verb. An empty inbox is a finding — say so, never pad it.

Procedure

  1. Pull the backlog. Ask for the repository if the user did not name one.

    bash
    gh issue list --repo <owner>/<repo> --limit 30 --json number,title,labels,createdAt

    Narrow with --label bug, --search, or --state.

  2. Read the ones that matter.

    bash
    gh issue view <number> --repo <owner>/<repo> --json title,body,comments

    Read before judging — a one-line title is not enough to rank severity.

  3. Group before judging. Cluster issues that describe the same underlying problem. Report the cluster, not each issue — a backlog of 40 is usually 12 real problems.

  4. Judge each cluster on two axes:

    • Severity — data loss > silent wrong answer > crash > annoyance.
    • Reach — everyone, one platform, or one reporter.

    Rank by the pair. A silent wrong answer affecting everyone outranks a crash affecting one person.

  5. Say what is missing. For anything you cannot reproduce from the issue text, list the specific facts needed — version, platform, exact command. "Please provide more information" is not triage.

  6. Post it, once the user approves. Compose the comment or label change and run it. GAIA shows the user the exact command and will not run it until they say yes, so there is no need to paste a draft and ask them to do it by hand — that is the prompt's job. For a write GAIA refuses outright (closing an issue, merging a PR), say so plainly and hand the user the command.

Rules

  • Never close an issue on your own judgement — GAIA refuses gh issue close outright for exactly this reason. Recommend the close; let a human do it.
  • Do not paste tokens, private URLs, or user emails into a public comment. The approval prompt shows the user the command, so anything you put in a --body is something they are being asked to publish.
  • If gh reports the repository is not readable, say so — do not guess from the name.
  • Report a refused command as a refusal. Never substitute an invented answer for one you could not fetch.
  • Write one line that survives every shell: **double quotes only, no single quotes, no \ continuation, no spaces inside a --jq expression.** Windows hands the raw string to cmd.exe (single quotes and \ there fail with "The system cannot find the path specified" — a quoting bug, not a missing binary); macOS and Linux get a pre-split argv with no shell, so |, & and > are literal characters, never operators. A command shaped this way behaves the same on all three.

Fork this

Same shape for any CLI in GAIA's command policy: add it to BINARY_POLICIES (gaia/skills/binaries.py) and write a SKILL.md like this one.

© amd, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in hub/skills/github-triage of amd/gaia.

Open the folder on GitHubat commit 6c3bb5c

Compare with similar skills

GitHub Triage 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.

GitHub Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
GitHub Triage this skillamd/gaia1.6k—~2.3kAutomated safety check: WarnMIT
Maggyalinaqi/maggy707—~1.5kAutomated safety check: PassMIT
TiXL Ticket Processortixl3d/tixl5.1k—~2.6kAutomated safety check: PassMIT
Mfs Findzilliztech/mfs150—~4kAutomated safety check: PassApache-2.0
Issue Triagepaperclipai/paperclip98k—~1kAutomated safety check: PassMIT
Gsd Inboxopen-gsd/gsd-core10k1 repos~389Automated safety check: NotesMIT

Similar skills

  • Maggy

    alinaqi/maggy

    Maggy is a local AI engineering command center. An agent skill from alinaqi/maggy.

    707 GitHub stars~1.5k tokensUpdated 13 days ago
    Testing & QAAuto-check passed
  • Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.

    5.1k GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Mfs Find

    zilliztech/mfs

    Search, grep, browse, and read across registered MFS data sources via the mfs CLI — codebases, docs, PDFs, web crawls, databases (postgres/mysql/mongo/snowflake/bigquery), issue trackers…

    150 GitHub stars~4k tokensUpdated 2 mo ago
    DatabasesAuto-check passed
  • Issue Triage

    paperclipai/paperclip

    Triage Paperclip inbox issues that are stale, blocked, in-review, or assigned-but-not-progressing, and decide a single next action per issue (resume, reassign, unblock, escalate, or close).

    98k GitHub stars~1k tokensUpdated today
    DevelopmentAuto-check passed
  • Gsd Inbox

    open-gsd/gsd-core

    Triage and review open GitHub issues and PRs against project templates and contribution guidelines.

    10k GitHub starsUsed in 1 repo~389 tokens
    DevelopmentAuto-check: notes
  • Setup Matt Pocock Skills

    bestofjs/bestofjs

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.

    3.1k GitHub starsUsed in 20 repos~1.7k tokens
    DevelopmentAuto-check passed

More from amd/gaia

All 44 skills in this repo
  • Adds a release eval scorecard to a GAIA hub agent by writing a harness adapter, running a real eval, and wiring the result into the agent's README and release gate.

    1.6k GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • Walks through releasing a GAIA sidecar agent as a frozen binary plus npm client through the tag-triggered Agent Hub CI pipeline, with a human gate before publishing.

    1.6k GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Mines local Claude Code session transcripts with a deterministic Python pipeline to show what the agent is actually used for, how often it fails and what it costs.

    1.6k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Benchmarks AMD's GAIA agent against Claude Code and across models on quality, honesty, steps, tokens, time and real cost, using gaia eval tasks.

    1.6k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Guides safe code changes by finding the right file with grep or semantic search, reading before editing, reproducing bugs first, and proving a fix with a real test run.

    1.6k GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Walks through scaffolding, writing and testing a new GAIA agent as a Python class with the SDK, from the base Agent subclass to registered tool methods.

    1.6k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about GitHub Triage

What does GitHub Triage do?

Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog. GitHub Triage is an agent skill from amd/gaia. Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog.

When should I use GitHub Triage?

GitHub Triage fits situations like: asked to triage issues; check the GitHub inbox; see what needs attention; what you are blocking.

How do I install GitHub Triage in Claude Code?

Run `npx skills add amd/gaia --skill github-triage -a claude-code`. Or copy the skill folder (hub/skills/github-triage in amd/gaia) into .claude/skills/github-triage in your project. Claude Code loads it when a task matches its description.

How do I install GitHub Triage in Codex?

Run `npx skills add amd/gaia --skill github-triage -a codex`. Or copy the skill folder (hub/skills/github-triage in amd/gaia) into .agents/skills/github-triage in your project. Codex loads it when a task matches its description.

Can I use GitHub Triage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add amd/gaia --skill github-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/github-triage, .gemini/skills/github-triage, .github/skills/github-triage and .opencode/skills/github-triage in your project.

What does GitHub Triage need to run?

Going by SKILL.md and its folder, GitHub Triage needs the command-line tools its instructions call (gh) and credentials named GH_TOKEN and GITHUB_TOKEN. Our summary lists: A credential in GITHUB_TOKEN.

Does GitHub Triage access the network?

SKILL.md names 1 domain. As links in the text: cli.github.com. This is read from the text; nothing was executed.

Is GitHub Triage safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.

What licence does GitHub Triage use?

GitHub Triage is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does GitHub Triage use?

About 2.3k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to GitHub Triage?

Skills that share tags, products or a category with GitHub Triage: Maggy (alinaqi/maggy, 707 stars), TiXL Ticket Processor (tixl3d/tixl, 5.1k stars), Mfs Find (zilliztech/mfs, 150 stars) and Issue Triage (paperclipai/paperclip, 98k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains GitHub Triage?

amd (a GitHub organization) maintains it in amd/gaia, which has 1,580 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on October 6, 2026.

Source: amd/gaia on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.