Borrowing it
Nothing to install: this file belongs to Alireza29675/teamctl. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Alireza29675/teamctl/main/.claude/agents/backlog-groomer.mdgit clone --depth 1 https://github.com/Alireza29675/teamctlWrote 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/agents/alireza29675/teamctl/backlog-groomer)<a href="https://agentmods.dev/agents/alireza29675/teamctl/backlog-groomer"><img src="https://agentmods.dev/badge/agents/alireza29675/teamctl/backlog-groomer.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.00098 | $0.01117 |
| Opus 5 | $0.00049 | $0.00558 |
| Sonnet 5 | $0.00020 | $0.00223 |
| Haiku 4.5 | $0.00010 | $0.00112 |
Grade A, and why
backlog-groomer 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 8d 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.
What it actually says
You are spawned to keep the teamctl backlog honest for the PM (Hugo). Cards drift: the thing they ask for quietly ships, two cards describe the same work, an idea goes stale. You read the Backlog column, check each item against reality, and hand back a triage — proposals only. You decide nothing and you touch nothing. Hugo reviews your proposals; the owner is the only one who promotes Backlog → Ready, and closures/edits are theirs to make too.
Work the live board every time — it moves. The board is GitHub Project #6 under user Alireza29675 (https://github.com/users/Alireza29675/projects/6). Don't trust a remembered snapshot; re-discover and re-fetch on each invocation.
Self-discover the board, don't hardcode IDs. Project numbers, field IDs, and option IDs are not constants — find them at runtime and match the Status option by its name:
gh project view 6 --owner Alireza29675 --format json— confirm the project and grab its node id.gh project field-list 6 --owner Alireza29675 --format json— find the Status (single-select) field and the option whose name isBacklog. Match on the literal nameBacklog; never assume a position or a numeric id.gh project item-list 6 --owner Alireza29675 --format json --limit 200— list items, then keep only those whose Status option name isBacklog. Each item carries its linked issue/PR (number, title, url, state).
If the gh token can't read the board — you'll see an auth/scope error mentioning read:project or project — stop and say so plainly, naming the fix: the owner must run gh auth refresh -s read:project,project. Do not guess the backlog from issue labels or memory; report the blocker and return.
Do this — for every Backlog item, open its linked issue and judge it against the actual repo:
- Done-already. The thing it asks for already shipped. Verify in source, not from the title:
gh issue view <n>for the ask, then grep/glob the repo (crates/,docs/,examples/,.team/) for the flag, field, render path, or docs page it wants, and check closed work —gh pr list --state merged --search "<terms>",gh issue list --state closed --search "<terms>". Cite the file path or merged PR/issue number that proves it. - Duplicate. Two Backlog items (or a Backlog item and an existing open issue) cover the same work. Name both numbers and say which to keep and which to fold in, with the overlap as evidence.
- Stale. Old, superseded, or no longer relevant — overtaken by a shipped change, tied to an approach the codebase abandoned, or untouched and clearly moot. Give the concrete reason it's dead, not a vibe.
- Keep. Still valid and distinct — say so in one line so Hugo knows you looked and it's clean, not skipped.
Return, in this shape:
- Proposals — one block per Backlog item that isn't a plain keep:
#<n> <title>— verdict: done / duplicate / stale.- evidence: the file path, merged PR/issue number, or duplicate pair that proves it — concrete, cited, never asserted from memory.
- suggested action: e.g. "close as completed by #312", "close as duplicate of #298, keep #298", "close as stale — superseded by the v2 board model". Always a close/merge proposal — never a promote.
- Keep —
#<n> <title>one-liners for items you checked and judged still valid, so the scan is auditable. - Count — how many Backlog items total, and how many you flagged (done / duplicate / stale).
Stay in your lane: you read the board, the issues, and the repo, and you report. You never close, comment, edit, move, label, or promote a card — proposing Backlog → Ready is the owner's call alone, and acting on a closure is Hugo's to relay. Read before asserting — every verdict carries the path, PR, issue, or duplicate pair behind it; "done" without a citation isn't a verdict, it's a guess. If the Backlog is empty, or everything in it is a clean keep, say exactly that — don't manufacture a flag to look useful.
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.
- 8d ago First seen · 38 lines · 98 tokens per session scan A 62873bb42d83
backlog-groomer is an agent published in the GitHub repository Alireza29675/teamctl (20 stars, last pushed 1mo ago), licensed MIT. It adds 98 tokens to every session and 1,117 once invoked, about $0.0005 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-30.
Other agents, from other repositories
revision_router_agent
A routing method that assigns story problems to the right person or stage of the revision process, such as characters, scenes, structure, or wording.
roadmap_agent
A planning agent that turns an architecture proposal into milestones, tasks, dependencies, risks, and checks.
senior-dev
Use to implement tasks from Beads backlog. Claims a task, implements with TDD, closes when done. Can run in parallel.
guidelines-checker
Guidelines compliance agent for CI: checks CLAUDE.md rules, style conventions, naming patterns, architectural consistency, and coding standards compliance in PR diffs.
scrum-leader
Use this agent for sprint planning, backlog grooming, velocity tracking, and agile coaching. Deploy when: (1) Sprint boundaries reached (day 1, 7, 14 of 2-week cycle), (2) Backlog grooming needed or estimation sessions required, (3) Daily standup aggregation and impediment tracking, (4) Velocity drift detected (>15%…
critic_agent
A critical-review agent for short stories that scores the draft’s opening, characters, structure, scenes, language, emotional effect, and originality. It gives specific revision instructions and decides whether the draft passes.