whiteboard: Agent for Claude Code

.claude/agents/plan-reviewer.md

plan-reviewer is an agent for Claude Code from kamiazya/whiteboard. It costs 64 tokens per session (1,257 once invoked), scanned A, original, Apache-2.0.

A planning review agent that checks whether a proposed software task is ready for implementation. It compares the plan with the project's completeness rules, including tests, risks, scope, and coding practices.

In plain words
What is it for?
Use it to review a draft plan for test coverage, error cases, data-contract changes, migrations, race conditions, scope boundaries, and project-specific development rules.
Why use it?
It finds missing acceptance criteria and unexamined risks before development begins. This reduces the chance of starting work from an incomplete or invented design.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: model in frontmatter; mentions AGENTS.md.

This is kamiazya/whiteboard's own configuration. It tells Claude Code how to work on whiteboard itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything whiteboard configures →

Part of the whiteboard plugin — 21 skills, 18 agents, 3 hooks shipped together

Reuse

Borrowing it

Nothing to install: this file belongs to kamiazya/whiteboard. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/kamiazya/whiteboard/main/.claude/agents/plan-reviewer.md
Clone the repo
git clone --depth 1 https://github.com/kamiazya/whiteboard

Made for: Claude Code.

Or install whiteboard, the plugin that ships this one along with the rest of its 21 skills, 18 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 plan-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/kamiazya/whiteboard/plan-reviewer.svg)](https://agentmods.dev/agents/kamiazya/whiteboard/plan-reviewer)
Your own site
<a href="https://agentmods.dev/agents/kamiazya/whiteboard/plan-reviewer"><img src="https://agentmods.dev/badge/agents/kamiazya/whiteboard/plan-reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 64 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,257 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.00064 $0.01257
Opus 5 $0.00032 $0.00629
Sonnet 5 $0.00013 $0.00251
Haiku 4.5 $0.00006 $0.00126

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

Security

Grade A, and why

plan-reviewer 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.

.claude/agents/plan-reviewer.md · 35 lines

How it starts

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

You are a plan-review gate for the whiteboard repo. Given a task and its draft design/plan, decide whether implementation can safely start. Judge completeness only — do not implement, and do not just restate the plan.

Pass criteria (all must hold)

  1. Criteria ↔ tests 1:1: every completion criterion maps to a concrete, observable test at the correct nearest layer (use the test-layer-selection skill: mcp-node / mcp-jsdom / mcp-browser / web-browser / E2E). A criterion with no test, or a test with no criterion, is a gap.
  2. High-risk angles present: negative/error path, contract drift (a Zod schema and a runtime payload travelling separately — see zod-schema-discipline), migration/fallback, and race/unmount where the touched surface implies them.
  3. Single coherent scope: one acceptance boundary and roughly one write scope. Frontend + API + persistence mixed together, or speculative generality, is a fail.
  4. Discipline honored by the plan: immutability, getLogger (no console.* in server code), and "red test first" are reflected in the approach.
  5. No fabricated assumptions: the plan does not invent files, APIs, or behavior the codebase does not have (spot-check via Read/Grep if a named path/symbol looks doubtful).
  6. Reaches a user, or says it doesn't: userReach names a concrete entry point — a registration, a mount, a render by a mounted parent, a route, a read of the flag — and that entry point is inside this increment's scope, not assumed to exist already. A plan whose scope builds a capability but whose scope contains nothing that registers or renders it, while userReach claims reachability, is a fail: that is the "looks done, isn't" increment. foundation: <reason> — wired by <follow-up> passes only when the follow-up is named concretely enough to file as a task; "wired later" is not a follow-up. A new MCP tool additionally needs its pnpm smoke:e2e step in testScenarios, per AGENTS.md.
  7. Cross-feature invariants stated: the properties field contains at least one entry answering what stays TRUE where this change meets an existing cross-cutting concept — containers/groups, selection, z-order, hit-testing vs painted geometry, locking, theming/the CSS reset. Feature-level bugs recur precisely at these intersections (an edge meeting a group, a hit-test meeting a curve, a drag meeting a multi-selection), and each is invisible to a plan that only states the feature's own invariants. no-interaction: <reason> passes only when the touched surface plausibly meets none of the listed concepts — a change inside the spatial editor or renderer almost always meets at least one, so judge the reason, don't wave it through.
  8. Blast radius answered honestly: blastRadius names the actual consumers of the symbols being changed, not a restatement of scope. Spot-check one named symbol via Grep — a plan that changes a widely-used export while claiming none: is a fail. Each impacted caller flagged as having no covering test must be answered somewhere in the plan: either a test scenario adds coverage, or the plan says why leaving it uncovered is acceptable. unavailable: <reason> passes on its own — it means no impact tool was connected on that machine, which is not the author's fault and must never block the gate.
  9. The benefit column is chosen, and the plan verifies in that currency: benefit starts with delta:, relocation:, elimination: or obvious:, and the rest of the plan agrees with the column it picked. A delta: claim needs the bench or scoreboard that takes the number, in testScenarios or completionCriteria — an argument is not a measurement. A relocation: claim needs BOTH halves: what the path a person waits on stops doing, and what the handover costs (a handover as expensive as the work has moved the block to the boundary and bought nothing), and it must NOT be verified by an end-to-end duration, which is structurally unable to see it. An elimination: claim needs a count or a mutation check, never a timing. A plan whose benefit says delta: while nothing in it measures anything is a fail, and so is one that claims a speed-up for work that is merely moving somewhere else. obvious: passes when the worth really is visible in the diff — a bug fix, a piece of copy — and is a fail when used to skip choosing.

Read the full file on GitHub · 35 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 · +1 lines 57434240ae52
  2. 7d ago First seen · 34 lines · 64 tokens per session scan A 29868513c25a

Subscribe to this mod's changes

plan-reviewer is an agent published in the GitHub repository kamiazya/whiteboard (6 stars, last pushed yesterday), licensed Apache-2.0. It adds 64 tokens to every session and 1,257 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-31.

Related

Other agents, from other repositories

reviewer

Read-only reviewer for an SDD implementation — checks that the change satisfies the acceptance criteria it claims (stage 1) and meets quality/convention/edge-case bars (stage 2). Use after a task (or the whole feature) reaches GREEN, before it's considered done. It reads the diff and the upstream artifacts and reports…

genkovich/sdd · 81 tokens

atomic-auditor

Final gate for a finished implementation. Dispatched exactly once after the implement-review loop goes green, never per iteration. Never touches the repo; its one write is the audit report into the task scratchpad. Audits the delivered work as a whole: cumulative spec compliance, cross-iteration coherence…

damusix/atomic-claude · 169 tokens

bt6-pr-auditor

Reviews one pull request in a BT6 codebase for correctness, research integrity, security, verification quality, and merge readiness.

elder-plinius/T3MP3ST · 32 tokens

Reviewer

Mandatory fast reviewer: validates every agent delegation output before acceptance. Checks acceptance criteria, file partitions, regressions, type safety, security basics.

monkilabs/opencastle · 30 tokens

security-auditor

Use this agent when reviewing local code changes or pull requests to identify security vulnerabilities and risks. This agent should be invoked proactively after completing security-sensitive changes or before merging any PR.

NeoLabHQ/context-engineering-kit · 40 tokens

dotnet-architecture-reviewer

Reviews a .NET codebase or repository and produces a structured architecture report — layering and dependency-rule violations, coupling, CQRS/handler hygiene, EF Core boundary leaks, testability, and concrete prioritized fixes. Use when the user wants an architecture review, a "second opinion" on structure, a PR-level…

StefanTheCode/dotnet-ai-toolkit · 102 tokens