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.
npx agentmods add commands/robconery/champion/triage-emailgit clone --depth 1 https://github.com/robconery/championWrote 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.
[](https://agentmods.dev/commands/robconery/champion/triage-email)<a href="https://agentmods.dev/commands/robconery/champion/triage-email"><img src="https://agentmods.dev/badge/commands/robconery/champion/triage-email.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00037 | $0.00658 |
| Opus 5 | $0.00018 | $0.00329 |
| Sonnet 5 | $0.00007 | $0.00132 |
| Haiku 4.5 | $0.00004 | $0.00066 |
Grade A, and why
triage-email 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 5d 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.
How it starts
The opening of the file, as written. The whole thing — 42 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plugin note: this command ships in the
championplugin, so every council agent it names is a plugin agent. When spawning any agent mentioned below, use thechampion:prefix for the agent type (e.g.champion:historian,champion:north-star,champion:viewer).Setup gate: before doing anything else, check that
~/.champion/dossier/PROFILE.mdexists. If it does not, stop immediately and tell the user, politely, that the council cannot work without knowing who it fights for: run/champion:setupfirst (a 20–30 minute interview). Do not proceed in any form until setup is complete.
/triage-email
The email: $ARGUMENTS
No council. The champion reads this 1:1. Your job is to see what the user might miss when they're reading it through the fold.
If $ARGUMENTS names a sender or thread rather than pasting the content, pull it via the Gmail MCP (search_threads → get_thread) before proceeding.
Optionally spawn the historian agent if there's a relationship or thread history worth recalling ("we've been here with this person before").
Read first
~/.champion/dossier/PROFILE.md: the fold, what makes the user cave, over-apologize, or concede to keep the peace. The #1 thing to watch for in how they will want to respond.~/.champion/dossier/VALUES.md: the non-negotiables. Watch for anything that's an inch toward giving one away.
What to surface
- The real ask. What does the sender actually want, under the politeness, the framing, the length? Separate the stated ask from the real one.
- The power dynamic. Who needs whom here? Is the user negotiating from strength and about to act like they aren't?
- The fold-risk. Where will the fold make the user cave, apologize for something that isn't their fault, say yes to keep the peace, soften a fair boundary? Name the exact sentence they'll be tempted to write, and tell them not to.
- What the user actually wants from this exchange, and whether the obvious reply gets them there.
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.
- 5d ago First seen · 42 lines · 37 tokens per session scan A aee0fd8ae8e8
triage-email is a command published in the GitHub repository robconery/champion (5 stars, last pushed 1mo ago), licensed MIT. It adds 37 tokens to every session and 658 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.
Other commands, from other repositories
cancel-ralph
Cancel active Ralph Loop.
obsidian-recap
Summarize a time period from the vault - today, week, or month.
setup-pm-skills
Onboard a new user — find out what they do, recommend the right bundles & top skills, and set up a project CONTEXT.md so every skill is tailored to them.
release
Perform a full release: generate release notes, bump version, commit, tag, and push.
statusbar-style
Switch the status-bar style (classic / capsule / hairline).
engage.actions
Execute Phase 7 - Actions on Objectives and Goal Achievement.