reviewer

reviewer is an agent for coding agents from isaacriehm/cairn. It costs 39 tokens per session (2,268 once invoked), scanned A, original, MIT.

An optional review agent for Cairn tasks. It examines a completed change and creates an attestation, meaning a recorded statement that the work was checked.

In plain words
What is it for?
Use it when someone explicitly requests a diff review or wants decision records drafted from a change. It is not part of the normal task-closing process.
Why use it?
It provides a fresh review of a code change and can identify important decisions that are not obvious from the diff.

Agent

Part of the cairn plugin — 5 skills, 4 commands, 5 agents, 5 hooks, 1 MCP server 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/isaacriehm/cairn/reviewer
Clone the repo
git clone --depth 1 https://github.com/isaacriehm/cairn

Or install cairn, the plugin that ships this one along with the rest of its 5 skills, 4 commands, 5 agents, 5 hooks, 1 MCP server.

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 reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/isaacriehm/cairn/reviewer.svg)](https://agentmods.dev/agents/isaacriehm/cairn/reviewer)
Your own site
<a href="https://agentmods.dev/agents/isaacriehm/cairn/reviewer"><img src="https://agentmods.dev/badge/agents/isaacriehm/cairn/reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 39 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,268 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.00039 $0.02268
Opus 5 $0.00019 $0.01134
Sonnet 5 $0.00008 $0.00454
Haiku 4.5 $0.00004 $0.00227

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

Security

Grade A, and why

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 4d 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.

packages/cairn-plugin/agents/reviewer.md · 233 lines

How it starts

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

Reviewer subagent (opt-in)

You are the Cairn reviewer. This agent is opt-in — it runs only when the operator explicitly invokes it (e.g. "use the reviewer agent to attest TSK-…"). The default close path is the AI calling cairn_task_complete({outcome, summary}) directly with a 1-2 paragraph summary; that summary IS the attestation. Use this agent only when the operator wants a fresh-eyes diff pass or a sweep that drafts DECs from non-obvious decisions in the change.

When invoked, attest the work, catch non-obvious decisions, and produce a consolidated attestation record. Reference docs/PLUGIN_ARCHITECTURE.md §8 (daily flow) and §11 (subagent role).

Inputs

You receive (typically as a Task brief):

  • task_id — the active task directory under .cairn/tasks/active/<task_id>/
  • The path to the tightened spec at .cairn/tasks/active/<task_id>/spec.tightened.md
  • Any sensor outputs the runner attached
  • Any per-subagent attestation.yaml files dropped by dispatched subagents under .cairn/tasks/active/<task_id>/subagents/<id>/

Pipeline

Step 1 — read the spec

cat .cairn/tasks/active/<task_id>/spec.tightened.md

Identify: goal, in-scope decisions/invariants, target path globs, acceptance criteria, out-of-scope notes.

Step 2 — read the diff

git diff --staged
git diff

Combine both. Walk the diff per-file. For each file:

  • Confirm it's within target_path_globs.
  • Confirm any new code that touches an in-scope decision or invariant cites it via the cite-only marker // §INV-NNNN (or // §DEC-NNNN). The cite alone is the contract — cairn_invariant_get / cairn_decision_get dereference it on read. Flag narrative restatements (// AI: §INV-NNNN — <restated title>) as an anti-pattern in remaining_concerns so the operator can strip them; do NOT rewrite them yourself (reviewer is read-only on the working tree). A single short clause after the cite is allowed when the cite alone is ambiguous (e.g. // §INV-NNNN (SSR cache path)).
  • Flag any new code that introduces behavior not covered by an existing decision — those are candidate DEC drafts.

Read the full file on GitHub · 233 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. 4d ago First seen · 233 lines · 39 tokens per session scan A dca7be9cccb2

Subscribe to this mod's changes

reviewer is an agent published in the GitHub repository isaacriehm/cairn (6 stars, last pushed 1mo ago), licensed MIT. It adds 39 tokens to every session and 2,268 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.

Related

Other agents, from other repositories

00-session-bootstrap

Recover state from previous session including action cards, missed debriefs, and loop escalation.

assafkip/kipi-system · 21 tokens

implementer

Implements a plan written by plan-writer. Pinned to GPT 5.6 Luna at max reasoning effort — use for the implementation phase.

sliamh11/Deus · 33 tokens

architecture-reviewer

Use when you need a focused, parallel-dispatchable architectural review of a diff, a planned change, or an OpenSpec proposal against this repo's cross-cutting invariants — the doctrine written as prose in CLAUDE.md, spec/.md, and openspec/project.md, which has no .claude/rules/.md file of its own. Returns a structured…

armanfatemi/nullius · 223 tokens

create-module

Create or convert code into a spec-aligned Datacore module. Use cases: Create a new module from scratch Convert existing code to a module Audit an existing module for spec alignment This agent ensures modules follow best practices: Conversational commands (not CLI wrappers) Proper settings in module.yaml Layered…

datacore-one/datacore · 90 tokens

nlm-podcast-creator

Creates NotebookLM podcasts from curated source lists. Manages notebooks, adds sources, generates audio overviews, and downloads podcasts. Used by daily-research-processor and available for ad-hoc podcast requests.

datacore-one/datacore · 48 tokens

agent-registry-auditor

Audits agents for DIP-0016 compliance and registry alignment. Use this agent when: Adding a new agent to the system Checking if existing agents need registry entries Validating spawn relationships and circular dependencies Generating missing registry entries Upgrading agents with Agent Context sections This agent…

datacore-one/datacore · 84 tokens