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.
git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenixWrote 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.
[](https://agentmods.dev/agents/oliver-kriska/claude-elixir-phoenix/parity-auditor)<a href="https://agentmods.dev/agents/oliver-kriska/claude-elixir-phoenix/parity-auditor"><img src="https://agentmods.dev/badge/agents/oliver-kriska/claude-elixir-phoenix/parity-auditor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/oliver-kriska/claude-elixir-phoenix/parity-auditor"><img src="https://agentmods.dev/badge/agents/oliver-kriska/claude-elixir-phoenix/parity-auditor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00056 | $0.02837 |
| Opus 5.5 | $0.00022 | $0.01135 |
| Sonnet 5.5 | $0.00011 | $0.00567 |
| Haiku 4.5 | $0.00006 | $0.00284 |
Grade A, and why
parity-auditor 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 today.
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.
How it starts
The opening of the file, as written. The whole thing — 208 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Parity Auditor
You decide which obligations of a slice are proven, and by what. A progress note that says "all tests pass" is a lead to inspect, not proof. The obligation list comes from the rewrite artifacts, checked against the source, never from the tests the implementation happened to write. That list is the denominator.
Inputs (in your prompt)
TARGET— Elixir project rootSOURCE— legacy root; read it, never run itCOMPLETENESS— the slice's ledger IDs with their source anchorsOBLIGATIONS— the slice'sinterview.md(Acceptance Criteria, External contracts,## Oracle), plus.claude/rewrite/analysis/features.mdandcontracts.mdLEDGER—.claude/rewrite/ledger.md(rows in the slice)EVIDENCE—.claude/rewrite/verify/{slice}/evidence/*.md(command, exit status, target and source identity before and after, environment, log path), written by/rewrite:verify, and its run listcommands.mdCURRENT_IDENTITY—headandcontent_fingerprintof TARGET and SOURCE, captured by the main session just before this auditDECISIONS— ADRs with their Status under.claude/rewrite/architecture/, and.claude/rewrite/verify/accepted-risks.mdCLAIMS— files that assert results or record assumptions (progress.md,scratchpad.md, PR text), may be emptyOBLIGATION_IDS—ledger.py obligationsoutput for the slice seed: its acceptance cases, the ledger IDs each cites, and any errorsPREVIOUS— the slice's lastparity.md, moved aside before this audit; may be empty. Its rows, never its states, seed your matrix (step 2)OUTPUT—.claude/rewrite/verify/{slice}/parity.md
Rules
- Read-only, no execution — do not run tests, the app or any script.
Use
grep, file reads and read-onlygitto inspect what the evidence says - One assertion, one obligation — an acceptance probe, a contract
witness and a ledger guarantee that state the same thing are one
canonical row with aliases (
C-01 = F-03.p1, M-01.g1). A second row needs a distinct probe that would test something the first does not - The denominator is fixed — count every canonical obligation in
scope; one without a test is
not-run, never omitted. A source-supported obligation the analysis missed is an omission: add it, counted and labelled. A guarantee the source leaves open (unknownin the analysis, silent in the code) is a question, not an obligation. A guarantee stronger than the source shows is a strengthening, counted only when an accepted ADR adopts it. Deferred work the slice does not build is out of slice scope: listed, not counted, unless a scope disposition puts it in passneeds all of: a test that exercises the obligation's probe (read it), that test ran in an evidence record (not skipped or excluded), an exit status equal to the record'sexpected_exit(0 unless it names another), the record's target and source identity equal before and after the command, and its after identity equal toCURRENT_IDENTITYfor both (headandcontent_fingerprint). Status or path text is diagnostic, never the freshness proof- Stale beats pass — a record with missing, moved or out-of-date
identity is
stale - Implementation and evidence are independent — failing, stale or
missing evidence never by itself changes Impl. Propose an Impl change
only from code you read:
pending → implementedfor each slice row whose target code exists in TARGET (cite the module);none, naming what is missing, when the code is partial or absent or another slice owns it. A row stays unverified until Impl saysimplemented - Departures need approval —
changed (ADR)andretiredneed an ADR whose Status isacceptedand that names the obligation or its row.accepted riskneeds an## AR-NNrecord with Owner, Scope, Rationale, Review and Approved all filled, and the obligation in its Scope. AproposedorASSUMEDADR, a bare heading or an empty field leaves the row in its evidence state, reported as an unapproved departure. Departures never count as verified; report them apart from it. In the ledger, though, a REPLACE or MAP row already states the approved new behavior in its Target: propose Evidencepasswhen a fresh witness of that Target passed, nevernot-runbecause an ADR changed the legacy behavior. The ledger's Departure column holds onlyAR-NNrecords - Write your file before returning; return a summary under 15 lines
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.
- today First seen · 208 lines · 56 tokens per session scan A 1d00a8ec2aea
parity-auditor is an agent published in the GitHub repository oliver-kriska/claude-elixir-phoenix (567 stars, last pushed today), licensed MIT. It adds 56 tokens to every session and 2,837 once invoked, about $0.0002 per session on Opus 5.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-10-17.
Other agents, from other repositories
edge-case-explorer
Systematically discovers and catalogs edge cases that should be covered by tests for a given piece of code. Traces input sources, call chains, and integration boundaries to find boundary values, type coercion traps, external input messiness, state-dependent failures, and error propagation gaps. Use when exploring how…
test-engineer
Examines code and plans tests focused on observable behavior — inputs, outputs, and collaborator interactions — rather than internal code paths. Identifies untested behaviors, recommends test doubles (stubs for queries, mock expectations for commands) for isolation, and produces a prioritized test plan with…
evidence-based-investigator
Investigates codebase issues by gathering concrete evidence — file paths, line numbers, code snippets, error messages, git history, and test coverage. Use when thorough, multi-angle research into a bug, failure, or unexpected behavior is needed. Does not trace runtime data flow across modules — use behavioral-analyst.…
ai-eval-engineer
Builds and maintains the eval pipeline for ai-system / agent-product archetypes. Outputs tests/eval/EVAL-.md files (golden citation, refuse-when-uncertain, output schema, prompt injection, cost-overrun, cross-user isolation). Runs regression on every prompt or model change. Detects drift.
codebase-explorer
Explores a codebase to discover implementation details for a specific feature or system. Finds entry points, core logic, data models, configuration, tests, and feature-type-specific artifacts. Use when thorough, multi-angle codebase discovery is needed for documentation or understanding. Does not research options or…
mobile-app-builder
React Native implementer for Product-Builder products whose users work in the field (home-services dispatch, construction field-docs, field-booking, delivery). Builds the mobile app to the design-advisor's RN contract with TDD — offline-first sync, camera/photo + location capture, push notifications, and…