Maggy
alinaqi/maggy
Maggy is a local AI engineering command center. An agent skill from alinaqi/maggy.
Triage GitHub work with the gh CLI — your unread notification inbox, or one repository's issue backlog.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add amd/gaia --skill github-triage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install amd/gaia github-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/amd/gaia.git skills-src && mkdir -p .claude/skills && cp -r skills-src/hub/skills/github-triage .claude/skills/github-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 "github-triage" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/github-triage into .claude/skills/github-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-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/amd/gaia/tree/main/hub/skills/github-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 amd/gaia --skill github-triage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install amd/gaia github-triage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .agents/skills && cp -r skills-src/hub/skills/github-triage .agents/skills/github-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 "github-triage" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/github-triage into .agents/skills/github-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-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 amd/gaia --skill github-triage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install amd/gaia github-triage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/hub/skills/github-triage .cursor/skills/github-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 "github-triage" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/github-triage into .cursor/skills/github-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-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/amd/gaia.git --path hub/skills/github-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 amd/gaia --skill github-triage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install amd/gaia github-triage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/hub/skills/github-triage .gemini/skills/github-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 "github-triage" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/github-triage into .gemini/skills/github-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-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 amd/gaia github-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 amd/gaia --skill github-triage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .github/skills && cp -r skills-src/hub/skills/github-triage .github/skills/github-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 "github-triage" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/github-triage into .github/skills/github-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-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 amd/gaia --skill github-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 amd/gaia github-triage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/hub/skills/github-triage .opencode/skills/github-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 "github-triage" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/github-triage into .opencode/skills/github-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-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.
github-triageTriage 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. 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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6c3bb5c. 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.
Shell commands in SKILL.md call:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
cli.github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GH_TOKENGITHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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 patterns that need a careful read before installing.
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.
The full file from amd/gaia at commit 6c3bb5c, republished under its MIT licence (© amd). 1,279 words, ~2,256 tokens.
.claude/skills/github-triage/SKILL.md (or your agent's skills folder).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.
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.
state | Remedy |
|---|---|
ready | None. Start the triage. |
missing | install_cli. Linux has no automated install — give the user https://cli.github.com. |
unauthenticated | sign_in_cli. |
insufficient_scopes | sign_in_cli — signing in again re-requests repo and read:org. |
env_token | Never 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".
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.
"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.
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?
| reason | act |
|---|---|
review_requested, assign | first — someone is waiting on you |
mention, team_mention | next — you were asked directly |
ci_activity | only if it failed |
subscribed, author, comment | batch; 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.
Pull the backlog. Ask for the repository if the user did not name one.
gh issue list --repo <owner>/<repo> --limit 30 --json number,title,labels,createdAtNarrow with --label bug, --search, or --state.
Read the ones that matter.
gh issue view <number> --repo <owner>/<repo> --json title,body,commentsRead before judging — a one-line title is not enough to rank severity.
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.
Judge each cluster on two axes:
Rank by the pair. A silent wrong answer affecting everyone outranks a crash affecting one person.
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.
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.
gh issue close
outright for exactly this reason. Recommend the close; let a human do it.--body
is something they are being asked to publish.gh reports the repository is not readable, say so — do not guess from the
name.\ 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.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
Just SKILL.md in hub/skills/github-triage of amd/gaia.
Open the folder on GitHubat commit 6c3bb5c
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| GitHub Triage this skillamd/gaia | 1.6k | — | ~2.3k | Automated safety check: Warn | MIT | |
| Maggyalinaqi/maggy | 707 | — | ~1.5k | Automated safety check: Pass | MIT | |
| TiXL Ticket Processortixl3d/tixl | 5.1k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Mfs Findzilliztech/mfs | 150 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Issue Triagepaperclipai/paperclip | 98k | — | ~1k | Automated safety check: Pass | MIT | |
| Gsd Inboxopen-gsd/gsd-core | 10k | 1 repos | ~389 | Automated safety check: Notes | MIT |
alinaqi/maggy
Maggy is a local AI engineering command center. An agent skill from alinaqi/maggy.
tixl3d/tixl
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.
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…
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).
open-gsd/gsd-core
Triage and review open GitHub issues and PRs against project templates and contribution guidelines.
bestofjs/bestofjs
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.
amd/gaia
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.
amd/gaia
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.
amd/gaia
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.
amd/gaia
Benchmarks AMD's GAIA agent against Claude Code and across models on quality, honesty, steps, tokens, time and real cost, using gaia eval tasks.
amd/gaia
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.
amd/gaia
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.
Works with
Categories
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.
GitHub Triage fits situations like: asked to triage issues; check the GitHub inbox; see what needs attention; what you are blocking.
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.
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.
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.
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.
SKILL.md names 1 domain. As links in the text: cli.github.com. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.