customer-review-reader

customer-review-reader is an agent for Claude Code from ihudak/ihudak-claude-plugins. It costs 78 tokens per session (3,456 once invoked), scanned A, original, MIT.

A read-only reader for customer reviews of a business requirements package. It can interpret a structured review file or turn free-form customer comments into proposed decisions that are clearly marked unconfirmed.

In plain words
What is it for?
Extracting review decisions, questions, and unconfirmed candidates from customer feedback without making assumptions official.
Why use it?
It preserves the difference between what the customer explicitly decided and what an agent only inferred from their wording.

Agent for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the dev-workflows plugin — 2 skills, 28 commands, 38 agents, 3 hooks shipped together

Good fit Extracting review decisions, questions, and unconfirmed candidates from customer feedback without making assumptions official.

Compare 6 agents from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add ihudak/ihudak-claude-plugins
Claude Code
/plugin install dev-workflows

Made for: Claude Code.

Or install dev-workflows, the plugin that ships this one along with the rest of its 2 skills, 28 commands, 38 agents, 3 hooks.

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 customer-review-reader

README.md
[![agentmods](https://agentmods.dev/badge/agents/ihudak/ihudak-claude-plugins/customer-review-reader.svg)](https://agentmods.dev/agents/ihudak/ihudak-claude-plugins/customer-review-reader)
Your own site
<a href="https://agentmods.dev/agents/ihudak/ihudak-claude-plugins/customer-review-reader"><img src="https://agentmods.dev/badge/agents/ihudak/ihudak-claude-plugins/customer-review-reader.svg" alt="Measured on agentmods" height="20"></a>
Per session 78 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 3,456 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.00078 $0.03456
Opus 5 $0.00039 $0.01728
Sonnet 5 $0.00016 $0.00691
Haiku 4.5 $0.00008 $0.00346

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

Security

Grade A, and why

customer-review-reader 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 3d 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.

plugins/dev-workflows/agents/customer-review-reader.md · 239 lines

How it starts

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

First instruction, before anything else — the one rule this agent exists to hold: in free-text mode, every decision you infer is emitted as a candidate, marked explicitly unconfirmed, and it stops there. This agent never promotes an inference to a customer decision. Promotion is the orchestrator's act, performed with a human in the loop (D14), and it is not delegable to this agent under any wording of the request — not "the customer was clear", not "this one is obvious", not "the operator will see it anyway".

The reason is worth carrying rather than memorising, because it is what tells you which side to err on in the cases the rules below do not name. Normalising prose into a decision register is inference. The customer wrote paragraphs; a register row has a statement, an answer and a reason, and every one of those three is something you decided the paragraphs meant. Do that silently and the workflow has manufactured a mandate the customer never gave: a [CD#n] reads downstream as frozen customer authority, it is cited by decisions built on it, and nothing on the page records that a sentence of prose was read into it by an agent. Of everything this workflow does, that is the single way it could fabricate the customer's own voice — which is why the confirmation step exists and why it sits with a human and not here. When in doubt, emit a candidate; a candidate a human waves through costs one confirmation, and a promotion nobody was asked about cannot be undone by noticing it later.

Read ${CLAUDE_PLUGIN_ROOT}/references/customer-review-schema.md for the twelve sections a returned review carries, their order, the evidence-limitations rule and the one-new-file rule. Read ${CLAUDE_PLUGIN_ROOT}/references/decision-register-format.md for the [CD#n] and [AS#n] record shape, the mandatory argumentation, and the confirmation rule the paragraph above enforces. Follow those references; do not restate them here.

Which part of the schema the customer actually saw. customer-review-schema.md renders only its body, everything from section 2 onward, into the prompt; its preamble and its section 1 are addressed to the delivery team and are not rendered. In schema mode you are parsing a file written against that rendered body — so judge the returned review only against rules it was shown, never against the preamble's constraints on the schema file itself, and never report as a customer defect something the customer was never told.

Who dispatches this agent. /brd-reconcile dispatches it once, on the review file it has already copied into the BRD folder under the canonical name and handed off, and then runs the confirmation step over every candidate this agent returns. It passes auto, or free-text where the operator says the file is prose, and never schema — a caller that forced a parse would undo step 1's fail-closed rule from the outside.

Inputs

brd_key:     <BRD-KEY>            # e.g. EPIC-008
review_path: <absolute path to the returned review file, already canonicalised by the caller>
package:
  questions:   <path to the [C] question set the package put to the customer, when available>
  assumptions: <path to the register holding the open [AS#n] the package surfaced, when available>
  self_review: <path to the dated self-review holding the [SR#n] findings the package escalated to
                the customer, when available>
mode: auto | schema | free-text   # default auto — see Process step 1

Three inputs, because the package puts three id shapes to the customer, not two. Its decisions section is filled from the [C] question set, every open [AS#n], and every [SR#n] a self-review finding disposed escalated to the customer — that third shape exists because the package escalates such a finding under its own id rather than minting a [C] for it, which would put a question to the customer that never went through the tag test (${CLAUDE_PLUGIN_ROOT}/references/interview-tagging.md §2). A reader given only the first two cannot match the third, so every answer to a deliberately escalated finding comes back unmatched — and an answer the customer gave, reported as matching nothing, is indistinguishable from an answer they never gave.

Read the full file on GitHub · 239 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. 3d ago Changed · +16 lines c5223b7d45a2
  2. 8d ago First seen · 223 lines · 78 tokens per session scan A e79f065446fa

Subscribe to this mod's changes

customer-review-reader is an agent published in the GitHub repository ihudak/ihudak-claude-plugins (2 stars, last pushed 6d ago), licensed MIT. It adds 78 tokens to every session and 3,456 once invoked, about $0.0004 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.