triage

triage is a skill for Claude Code from SethGammon/Citadel. It costs 71 tokens per session (2,807 once invoked), scanned A, original, MIT.

A GitHub investigator for open issues and pull requests. It sorts them, examines the codebase for likely causes or changes, and reports findings with file and line references.

In plain words
What is it for?
Use it to investigate individual or batches of issues, review pull requests, find stale issues, and optionally implement proposed fixes.
Why use it?
It turns a large or unclear queue of GitHub work into classified investigations with concrete code references.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: mentions Claude Code; mentions Codex.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is node scripts/codex-pr-review.js plan --repo <owner/repo> --pr <number> --risk <low|medium|high|local-only> --write.

Part of the citadel plugin — 48 skills, 7 agents, 2 MCP servers shipped together

Good fit Use it to investigate individual or batches of issues, review pull requests, find stale issues, and optionally implement proposed fixes.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/SethGammon/Citadel
agentmods
npx agentmods add skills/sethgammon/citadel/triage

Made for: Claude Code.

Or install citadel, the plugin that ships this one along with the rest of its 48 skills, 7 agents, 2 MCP servers.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for triage

README.md
[![agentmods](https://agentmods.dev/badge/skills/sethgammon/citadel/triage/github.svg)](https://agentmods.dev/skills/sethgammon/citadel/triage)
Your own site
<a href="https://agentmods.dev/skills/sethgammon/citadel/triage"><img src="https://agentmods.dev/badge/skills/sethgammon/citadel/triage/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for triage

Your own site · 80×15
<a href="https://agentmods.dev/skills/sethgammon/citadel/triage"><img src="https://agentmods.dev/badge/skills/sethgammon/citadel/triage.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 71 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,807 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00071 $0.02807
Opus 5.5 $0.00028 $0.01123
Sonnet 5.5 $0.00014 $0.00561
Haiku 4.5 $0.00007 $0.00281

Measured 28d ago against content hash 26ff25d9249b, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

triage scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 28d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/triage/SKILL.md · 300 lines

How it starts

The opening of the file, as written. The whole thing — 300 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Triage — GitHub Issue & PR Investigator

When to Use

Don't use when: fixing a specific already-diagnosed issue (use /marshal); monitoring a single PR's CI (use /pr-watch); reviewing code quality outside of GitHub issues (use /review).

  • /triage — triage all open, unlabeled issues
  • /triage 10 — investigate issue #10 specifically
  • /triage pr 13 — review PR #13
  • /triage prs — review all open PRs
  • /triage --batch — pull all open issues, classify, investigate, report
  • /triage --stale — find issues older than 14 days with no activity
  • After the issue-monitor SessionStart hook reports new issues

Codex PR review integration

For Codex-visible PRs, decide whether to use native @codex review, local Citadel triage, or both:

node scripts/codex-pr-review.js plan --repo <owner/repo> --pr <number> --risk <low|medium|high|local-only> --write

Use native @codex review when the diff is GitHub-visible and the main need is a focused P0/P1 review. Use local Citadel triage when the answer depends on unpushed files, local generated artifacts, or hands-on edits. Use both for large or risky PRs.

After Codex posts a GitHub review, fetch and ingest the review comments before deciding merge readiness:

node scripts/codex-review-fetch.js --repo <owner/repo> --pr <number> --write

Use --file <review-comments.json> with the same script when working from exported/offline review data.

Treat ingested P0/P1 findings as blockers until local verification confirms they are fixed or not applicable.

Inputs

Input Source Required
Issue/PR number Argument (e.g., /triage 10, /triage pr 13) No — omit to triage all open
Mode pr prefix for PRs No — defaults to issues
Repo Auto-detected from git remote Yes (auto)
gh CLI "/c/Program Files/GitHub CLI/gh.exe" on Windows, gh elsewhere Yes (auto)

Execution Protocol

Phase 0 — Environment Setup

  1. Detect repo from git remote get-url origin, extract owner/repo
  2. Verify gh auth status
  3. Set $GH: Windows → "/c/Program Files/GitHub CLI/gh.exe", other → gh

Read the full file on GitHub · 300 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 28d ago Changed 26ff25d9249b
  2. 1mo ago First seen · 300 lines · 71 tokens per session scan A c7b97a640f84

Subscribe to this mod's changes

triage is a skill published in the GitHub repository SethGammon/Citadel (925 stars, last pushed yesterday), licensed MIT. It adds 71 tokens to every session and 2,807 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

gerrit-task-query

Use when asked to check, list, or act on tasks for a Gerrit change. Triggers on phrases like "what tasks are blocking", "which tasks are actionable", "check task status", "what do I need to do for this change", "what is blocking this change".

GerritCodeReview/gerrit-mcp-server · 64 tokens

gerrit-workflow

This skill should be used when the user asks to "submit a change to Gerrit", "push for review", "upload a patch", "update a change in Gerrit", "add a patch set", "work with Gerrit", "push to refs/for", "fix a missing Change-Id", "amend a Gerrit change", or any task involving git operations in a repository hosted on…

GerritCodeReview/gerrit-mcp-server · 123 tokens

doubt-driven

Use when a non-trivial decision sits under uncertainty and correctness matters more than speed. Not for patch review: use review. Not for plan attacks: use load-bearing-assumption-test.

OutlineDriven/odin-claude-plugin · 41 tokens

code-review

The depth half of a review - the dimensions a diff is read against (correctness, boundaries, concurrency, failure paths, secrets, data access, structure, test quality) and the rule that a finding is refuted before it is reported. The verdict stays with the reviewer agent. Use when reviewing a diff or a pull request…

jjanczur/tyran · 80 tokens

deslop

The optimization pass, defined - delete before you add, one smell class per pass, behaviour pinned by a test that ran BEFORE the edit. Lints a SKILL.md and prose by the same instinct. Use for the per-story optimization pass or when code has grown noisy without growing capable.

jjanczur/tyran · 58 tokens

pr-review

Team baseline for PR and code review — produces scope, blockers, nits, and strengths. Auto-triggers when you say review this PR, check this diff, review these changes, pre-review before I share, what do you think of this PR, or review the diff on this branch. Defers to any other installed skill whose description…

ramboz/jig · 183 tokens