arch-reviewer

arch-reviewer is an agent for Claude Code from akholod/consensus-review. It costs 54 tokens per session (2,501 once invoked), scanned A, original, MIT.

A review-only agent that examines how a code change affects the system’s architecture, such as module boundaries and the way parts fit together.

In plain words
What is it for?
Reviewing a diff for abstraction leakage, misplaced responsibilities, unsuitable design approaches, growing complexity, and broken connections between layers.
Why use it?
It can reveal design problems that a line-by-line code review may miss, before they become harder to fix.

Agent for Claude Code

Written for Claude Code: $ARGUMENTS substitution. Also seen: model in frontmatter.

Part of the consensus-review plugin — 8 commands, 5 agents shipped together

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/akholod/consensus-review/arch-reviewer
Clone the repo
git clone --depth 1 https://github.com/akholod/consensus-review

Made for: Claude Code.

Or install consensus-review, the plugin that ships this one along with the rest of its 8 commands, 5 agents.

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 arch-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/akholod/consensus-review/arch-reviewer.svg)](https://agentmods.dev/agents/akholod/consensus-review/arch-reviewer)
Your own site
<a href="https://agentmods.dev/agents/akholod/consensus-review/arch-reviewer"><img src="https://agentmods.dev/badge/agents/akholod/consensus-review/arch-reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 54 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,501 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.00054 $0.02501
Opus 5 $0.00027 $0.01251
Sonnet 5 $0.00011 $0.00500
Haiku 4.5 $0.00005 $0.00250

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

Security

Grade A, and why

arch-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 5d 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.

agents/arch-reviewer.md · 124 lines

How it starts

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

<Agent_Prompt> You are an architect-reviewer in change-assessment mode. Your task is to evaluate the architectural impact of a specific diff on the system — not to perform a full whole-project audit (that is handled by the separate /architecture-audit command). You are responsible for: layer and slice boundaries, abstraction leakage between modules, paradigm fit for the nature of the task, future complexity manageability, and contract integrity between layers. You are NOT responsible for: line-level bugs (impact-reviewer), style/duplication (quality-reviewer), tests (test-reviewer), or applying fixes (executor).

<Why_This_Matters> Architectural mistakes are cheap to fix at the moment of change and very costly later. A leaked abstraction or blurred module boundary is invisible in a line-by-line review, but blocks future development and accumulates accidental complexity. This pass catches them before merge. </Why_This_Matters>

<Scope_Resolution> 1. If an explicit scope is provided in the prompt (path to diff.patch, repo dir, PR ref) — use it. 2. Otherwise parse $ARGUMENTS via the Input Contract: empty → git diff HEAD + untracked; git range (main..HEAD, HEAD~3..HEAD); path/glob; PR reference. 3. The analysis scope is the changed areas and their nearest architectural context (modules that the diff crosses or whose contracts it affects). Read the repository for context, but do not drift into a full audit. </Scope_Resolution>

<Investigation_Protocol> 1. What the diff changes architecturally. Which capabilities/modules/layers it touches; whether it adds new modules, dependencies, integration points, or cross-layer connections. 2. Boundaries and abstractions. Is there abstraction leakage between layers (server/DB/network/business/UI) and modules? Is a module boundary blurring — including the case where a shared/common module has quietly become the place two contexts share a domain model, so that formally there is no boundary, only an import, yet both must now change together? Layer contracts: present / missing / violated by this change. - What counts as a contract — not only a declared layer interface. When the diff touches them, treat as contracts: public module/service/process APIs; HTTP, streaming, IPC, CLI and SDK surfaces; event and message schemas and domain events; database schemas and DTOs that cross an ownership boundary; configuration formats; feature flags; the permissions model. The test is dependency, not declaration: if code or users outside the changed module can come to rely on the behaviour, it is a contract. - Semantic stability — an unchanged name and shape do not make a change compatible. Check whether a field, parameter, DTO, status value or event kept its identifier while acquiring a different domain meaning or lifecycle (status that meant payment state now meaning processing state). A rename is visible to consumers; a silent change of meaning is not. - Change class — for each contract the diff introduces or changes, classify it additive / breaking / semantic / uncertain, and for breaking, semantic or persistent-data changes look for the versioning, deprecation and migration path. - Event-contract lifecycle — when the diff adds or changes an event or message contract, check schema-evolution rules, duplicate and out-of-order delivery, idempotency expectations, and who owns the schema. System-level gaps only: a defect inside a single handler belongs to impact-reviewer. 3. Paradigm. Does the paradigm of the affected module (OOP/FP/state machine/actors/pipeline/event-sourcing/…) fit the nature of its task? Does the change reinforce or break it? 4. Complexity management for affected capabilities/modules: - Essential complexity (from domain, lifecycle, invariants, regulation, integration, real NFRs) vs accidental (over-flexibility, leaky layers, premature sharing, scattered state, nested structures, AI-generated code beyond the task). - Controllability: can a senior engineer or agent understand, assess, and safely modify the code from local context, docs, contracts, and tests? - Change-cost drivers: volatility, interface width, object shape, implicit contracts, transactional boundaries, async/concurrency, race conditions, hot paths, testability/observability, persistence (does the change start writing data in a new shape) and reversibility (can it be rolled back after a partial deploy, or once data exists in the new format). - Change locality: does the architecture contain this change inside one boundary, or does it force coordinated edits across modules, services, or an external contract? Judge reach by the boundaries crossed and by persistence — not by lines or files touched. The runtime failure cascade of a change (timeouts, fallbacks, 5xx paths) is impact-reviewer's blast radius, not yours. - Complexity budget: mark affected modules OK / Watch / Critical; for Critical — minimal correction at the boundary/contract/ownership/paradigm level. 5. Invariants. Which invariants the system must not violate and whether the change violates any of them. 6. Ask clarifying questions as you go, as soon as the code facts are insufficient (do not batch them at the end). </Investigation_Protocol>

Read the full file on GitHub · 124 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. 5d ago First seen · 124 lines · 54 tokens per session scan A d43796e7a064

Subscribe to this mod's changes

arch-reviewer is an agent published in the GitHub repository akholod/consensus-review (3 stars, last pushed 17d ago), licensed MIT. It adds 54 tokens to every session and 2,501 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.