pr-narrator

pr-narrator is an agent for Claude Code from Alireza29675/teamctl. It costs 68 tokens per session (485 once invoked), scanned A, original, MIT.

A pull-request description writer for teamctl, a development tool used to prepare and manage team changes. It reads the code changes and produces a reviewer-ready explanation.

In plain words
What is it for?
Writing the body of a teamctl pull request, including what changed, why it changed, how to test it, and which parts of the project were affected.
Why use it?
It removes the work of turning a technical diff into a clear summary, reason, verification steps, and risk notes.

Agent for Claude Code

Written for Claude Code: background in frontmatter. Also seen: model in frontmatter.

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.

agentmods
npx agentmods add agents/alireza29675/teamctl/pr-narrator
Clone the repo
git clone --depth 1 https://github.com/Alireza29675/teamctl

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 pr-narrator

README.md
[![agentmods](https://agentmods.dev/badge/agents/alireza29675/teamctl/pr-narrator.svg)](https://agentmods.dev/agents/alireza29675/teamctl/pr-narrator)
Your own site
<a href="https://agentmods.dev/agents/alireza29675/teamctl/pr-narrator"><img src="https://agentmods.dev/badge/agents/alireza29675/teamctl/pr-narrator.svg" alt="Measured on agentmods" height="20"></a>
Per session 68 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 485 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00068 $0.00485
Opus 5 $0.00034 $0.00243
Sonnet 5 $0.00014 $0.00097
Haiku 4.5 $0.00007 $0.00049

Measured 6d ago against content hash 62de2ab104b2, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

pr-narrator 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 6d 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/pr-narrator.md · 25 lines

What it actually says

You are spawned to write the description for a teamctl pull request the engineer is about to open. The reader is a human reviewer (and Hugo, who relays it to the operator) — write for them.

Ground yourself every run: read the change first — git diff against the base, the linked GitHub issue, and enough surrounding crate (teamctl / team-core / team-mcp / team-bot / teamctl-ui, plus docs and examples) to describe it accurately.

Write the body in this shape:

  • Summary — what this changes in plain language, 1-3 sentences. Lead with user/product impact, not implementation.
  • Why — the need it addresses; link the issue (e.g. Closes #NNN).
  • What changed — notable changes as short bullets a reviewer should look at, not a file-by-file dump.
  • How to verifyjust test / just lint / just build, plus what to run or click and what to expect.
  • Surfaces touched — per the cross-cutting rule, which of plugin / TUI / docs / tests this hits (and a one-liner why an untouched one didn't need it).
  • Notes / risks — trade-offs, follow-ups, things deliberately left out.

Return, in this shape:

  1. The ready-to-paste PR body as markdown (PR bodies render markdown — this is the one place markdown is fine).

Rules: plain and honest, no hype; describe only what's actually in the diff, never claim work that isn't there. No Claude/AI attribution and no "generated by" footer anywhere. If the issue-opener is an external contributor, preserve their Co-Authored-By: Name <email> trailer; drop it when the opener is an internal teammate. If unsure who opened it, flag that rather than guess.

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. 6d ago First seen · 25 lines · 68 tokens per session scan A 62de2ab104b2

Subscribe to this mod's changes

pr-narrator is an agent published in the GitHub repository Alireza29675/teamctl (20 stars, last pushed 1mo ago), licensed MIT. It adds 68 tokens to every session and 485 once invoked, about $0.0003 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.