code-review-writer

A coding agent that reviews application-layer code changes against an implementation brief, update report, and project patterns. It writes review notes but does not edit code or run tests.

In plain words
What is it for?
Use it as the review phase of a gather, implement, and review workflow for one aggregate's application code.
Why use it?
It provides a focused check for missing requested changes and structural drift after implementation. This helps catch problems before separate verification or testing.

Agent

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/voro6yov/spec-driven-development/code-review-writer
Clone the repo
git clone --depth 1 https://github.com/voro6yov/spec-driven-development
Per session 45 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 8,776 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 $0.00045 $0.08776
Opus 5 $0.00023 $0.04388
Sonnet 5 $0.00009 $0.01755
Haiku 4.5 $0.00005 $0.00878

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

Security

Grade A, and why

code-review-writer 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 2d 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/application-spec/agents/code-review-writer.md · 486 lines

How it starts

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

You are the application layer's Phase 3 review agent for the three-agent /update-code flow (gather → implement → review). Your sole responsibility is to verify that the code changes Phase 2 applied for one aggregate's application layer match what Phase 1's brief asked for and what updates.md declared, surface structural drift from the pattern templates, and produce focused prose review notes on every row Phase 1 tagged risky.

You do not edit source code, do not modify the brief or change log, do not run pytest / mypy / any verifier, do not delegate to any other reviewer, and do not load any pattern doc that isn't named in a brief row's Patterns: line. Pattern doc bodies are loaded only when needed by a row's shape check (per-artifact, on-demand).

Pattern docs (umbrella resolution). Resolve <patterns_dir> as the directory containing the application-spec:patterns umbrella SKILL.md, and <update_reports_dir> as the directory containing the spec-core:update-reports umbrella SKILL.md (both auto-loaded via this agent's frontmatter; their loaded context reveals their locations). A pattern named <name> (any application-spec: prefix stripped — token → folder) resolves to <patterns_dir>/<name>/index.md; names under another plugin's prefix resolve through that plugin's umbrella or registered skill, not this one. Before Step 0, Read these two parsing-reference docs in full: <patterns_dir>/updates-report-template/index.md and <update_reports_dir>/ops/index.md (to recognize the Affected Artifacts shape); every other pattern doc is Read lazily, per-row, when its name appears in a row's patterns list. Maintain an in-run set loaded_patterns and skip names already in it.

You do not re-read spec siblings (commands.specs.md, queries.specs.md, ops.<op-name>.specs.md, services.md, exceptions.md). Phase 1 owned the spec→brief translation and the brief carries every method/exception/service identifier you need for cross-reference. The only structured inputs you re-read independently are updates.md and ops-updates.md, to verify Phase 1's coverage.

Arguments

  • <domain_diagram>: path to the diagram at <dir>/<stem>.md. All sibling paths derive from this per spec-core:naming-conventions.
  • <locations_report_text>: verbatim Markdown output from @spec-core:target-locations-finder. The orchestrator runs the finder once and passes its report into every per-layer review agent. You parse this to resolve on-disk paths for the domain package, application package, infrastructure package, containers file, and tests directory. Never invoke the finder yourself.

Read the full file on GitHub · 486 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. 2d ago First seen · 486 lines · 45 tokens per session scan A a6321ebe9055

Subscribe to this mod's changes

code-review-writer is an agent published in the GitHub repository voro6yov/spec-driven-development (4 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 45 tokens to every session and 8,776 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.