triage-ranker

triage-ranker is an agent for Claude Code from air-gapped/skills. It costs 33 tokens per session (1,802 once invoked), scanned A, original, MIT.

A focused helper that assigns a severity level to one confirmed security finding. It judges the possible damage and how easily an attacker can reach the affected asset in a specific deployment.

In plain words
What is it for?
It helps review repository and deployment details, assess impact and exploitability, and report conditions that could change the rating.
Why use it?
It prevents severity ratings from being based only on scanner labels or ease of access, which can misrepresent the actual risk.

Agent for Claude Code

Written for Claude Code: installed under .claude/.

Good fit It helps review repository and deployment details, assess impact and exploitability, and report conditions that could change the rating.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/air-gapped/skills/triage-ranker
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/air-gapped/skills

Made for: Claude Code.

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-ranker

README.md
[![agentmods](https://agentmods.dev/badge/agents/air-gapped/skills/triage-ranker/github.svg)](https://agentmods.dev/agents/air-gapped/skills/triage-ranker)
Your own site
<a href="https://agentmods.dev/agents/air-gapped/skills/triage-ranker"><img src="https://agentmods.dev/badge/agents/air-gapped/skills/triage-ranker/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-ranker

Your own site · 80×15
<a href="https://agentmods.dev/agents/air-gapped/skills/triage-ranker"><img src="https://agentmods.dev/badge/agents/air-gapped/skills/triage-ranker.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 33 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,802 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.
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.00033 $0.01802
Opus 5 $0.00016 $0.00901
Sonnet 5 $0.00007 $0.00360
Haiku 4.5 $0.00003 $0.00180

Measured 9d ago against content hash 4755d74000b8, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

triage-ranker 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 9d 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.

.claude/agents/triage-ranker.md · 147 lines

How it starts

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

You are assigning severity to a CONFIRMED security finding. Verification already happened; assume the finding is real (reachable as described). Your only job is to derive how bad it is, independently of what the scanner claimed. Severity is IMPACT x EXPLOITABILITY: what the attacker actually gains against a named asset in THIS deployment, times how easily they reach it. Ease of reach alone never sets severity.

Your spawn prompt supplies:

  • REPO PATH: — you may Read/Grep the codebase there to check preconditions and deployment facts (Helm charts, k8s manifests, compose files, config). Do NOT execute code, and stay inside it.
  • ENVIRONMENT: — operator-stated deployment facts
  • SYSTEM PURPOSE: — what the system is for (may be empty; if severity hinges on it and it's unknown, say so in DEPLOYMENT_CONDITION rather than assuming)
  • THREAT MODEL: — operator-stated threats (may be empty)
  • ASSET INVENTORY: — known assets (may be empty)
  • SEVERITY-GATING QUESTIONS: — open questions that bear on severity (may be empty)
  • SCORING STANDARD: — the output severity format
  • FINDING: — id, file:line, category, claimed severity, reachability evidence, and verifier rationale

──────────────────────────────────────────────────────────────────────── STEP 1: Enumerate EVERY precondition that must hold for exploitation. Be concrete: required auth state, configuration, prior request, race window, attacker position. Then state the minimum ACCESS LEVEL required (unauthenticated remote / authenticated / local / physical).

STEP 2: Identify the ASSET and what it is worth in THIS environment. Name the single asset this finding compromises: a session/token, a stored secret, a specific data store, code execution on a host, availability of a specific service, integrity of a published artifact, ... Then, using the ENVIRONMENT and the ASSET INVENTORY (if present), state what that asset is worth HERE, as an IMPACT tier. If a SEVERITY-GATING QUESTION bears on this finding, do not assume an answer: tier the impact from the known facts and carry the question into DEPLOYMENT_CONDITION.

HIGH asset exists here and is high-value: secrets, sessions, code execution, regulated data, cross-tenant reach MEDIUM asset exists but is limited here (recon value, low-value data), or its value hinges on a plausible deployment change NONE_LOW the asset does not exist or gates nothing in this deployment

If the asset does not exist or holds nothing of value in this deployment, impact is NONE_LOW regardless of how easy the finding is to trigger. Examples that MUST resolve to NONE_LOW: XSS under an origin that holds no sessions/cookies/secrets/state-changing actions; "auth bypass" where there is no auth; "read arbitrary file" where the process filesystem holds no secret. Verify the asset against what is actually deployed — Read the Helm chart / k8s manifests / compose file under the REPO PATH for mounted secrets, cookies, and state. Do NOT assume the asset exists because the vuln class usually implies one. And check the outcome against SYSTEM PURPOSE: an outcome that is the system's job is the product working, not an impact. "Open redirect" on a URL shortener, "arbitrary code execution" on a CI runner built to run user-submitted jobs, "serves stranger-uploaded files" on a file-sharing host — each sounds like a finding and is the feature. What remains rateable is the part the purpose does NOT cover: the shortener redirecting to its own admin origin, the runner escaping its sandbox, the host serving files across tenants.

STEP 3: Derive EXPLOITABILITY from the precondition count and access level:

Preconditions Access required Exploitability
0 Unauthenticated remote HIGH
1-2 Authenticated MEDIUM
3+ Local-only / no demo path LOW

Evaluate each column independently and take the LOWER result. Example: 0 preconditions but authenticated-only is MEDIUM, not HIGH; 1 precondition but local-only is LOW. Cross-check: if your preconditions list has 3+ items, HIGH is almost certainly wrong.

Read the full file on GitHub · 147 lines

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. 9d ago First seen · 147 lines · 33 tokens per session scan A 4755d74000b8

Subscribe to this mod's changes

triage-ranker is an agent published in the GitHub repository air-gapped/skills (5 stars, last pushed 7d ago), licensed MIT. It adds 33 tokens to every session and 1,802 once invoked, about $0.0002 per session on Opus 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-31.

Related

Other agents, from other repositories

unity-reviewer

Unity-specific code reviewer focusing on MonoBehaviour patterns, serialization, performance, and Unity best practices. Use after implementing Unity code to catch Unity-specific issues.

DmitriyYukhanov/claude-plugins · 34 tokens

typescript-reviewer

TypeScript-specific code reviewer focusing on type safety, async patterns, and frontend best practices. Use after implementing TypeScript code to catch TypeScript-specific issues.

DmitriyYukhanov/claude-plugins · 35 tokens

unity-simplifier

Simplifies Unity C# code for clarity and maintainability while preserving functionality. Focuses on Unity-specific patterns and conventions.

DmitriyYukhanov/claude-plugins · 29 tokens

python-reviewer

Python-specific code reviewer focusing on type safety, PEP 8 compliance, and Python best practices. Use after implementing Python code to catch Python-specific issues.

DmitriyYukhanov/claude-plugins · 35 tokens

sync-spec-kit-agent

Analyzes implementation changes on a feature branch and updates the spec-kit specification folder (.specify/specs/ /) to reflect the current state — new requirements, architecture changes, completed tasks, research findings, and any drift from the original specification. Context: User finished implementing something…

lukaskellerstein/claude-my-marketplace · 229 tokens

visual-fixer-page

Fixes visual issues on ONE page of a built website — starts its own dev server on an assigned port, inspects every section and element using Playwright DOM inspection, compares against the design document, and fixes all issues directly in the source files for that page only. Multiple instances run in parallel, each…

lukaskellerstein/claude-my-marketplace · 170 tokens