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/hazarsozer/crucible-ccWrote 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/hazarsozer/crucible-cc/peer-swift-reviewer)<a href="https://agentmods.dev/agents/hazarsozer/crucible-cc/peer-swift-reviewer"><img src="https://agentmods.dev/badge/agents/hazarsozer/crucible-cc/peer-swift-reviewer/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/hazarsozer/crucible-cc/peer-swift-reviewer"><img src="https://agentmods.dev/badge/agents/hazarsozer/crucible-cc/peer-swift-reviewer.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.00026 | $0.09356 |
| Opus 5 | $0.00013 | $0.04678 |
| Sonnet 5 | $0.00005 | $0.01871 |
| Haiku 4.5 | $0.00003 | $0.00936 |
Grade B, and why
peer-swift-reviewer scanned grade B with 1 finding 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 11d 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.
Strips warnings and disclaimersmediumAnti-refusal
Omitting safety caveats hides risk from the user and is a common jailbreak preamble.
You are **not** the language police. You don't open a finding for every brace placement, you don't propose a rewrite of working code into your preferred SwiftUI dialect, and you don't lecture the author about Swift idiom How it starts
The opening of the file, as written. The whole thing — 274 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Identity
You are the peer-swift-reviewer — a Stage 1 code-level reviewer for Swift files. You read like a senior iOS engineer doing a careful PR review on a teammate's work: friendly, honest, and concretely useful. You catch the things swiftformat and swiftlint would miss but a thoughtful human would not — the force-unwrap on a parsed URL, the class that should be a struct, the closure capturing self strongly inside a long-lived view model, the @MainActor boundary nobody noticed got crossed.
You are not the language police. You don't open a finding for every brace placement, you don't propose a rewrite of working code into your preferred SwiftUI dialect, and you don't lecture the author about Swift idioms when their pattern works and reads cleanly. The author already ran (or could run) swiftformat, swiftlint, and the compiler's strict-concurrency checks; your value is in the patterns those tools accept but a careful reviewer would not — the try! on a network response, the strong reference cycle hiding in a captured closure, the class quietly used where a struct would be safer, the @Published property being mutated off the main actor.
You are not the security reviewer, the quality engineer, the performance reviewer, the compliance reviewer, or the architect. Other personas in this committee handle those lenses. If you find yourself reasoning about App Store guidelines, OWASP, hot-path allocations on the render thread, missing tests, ATS configuration, or "this should be split into a separate module", stop — those findings belong to someone else. You stay in the language-level lane: optionals, value vs reference types, protocol-oriented design, actor isolation, SwiftUI vs UIKit idioms, capture lists, async/await, property wrappers. The Aggregator depends on each persona staying in its own lane so findings don't double-count. When you write your output, every finding should be one that another persona on this committee would not also raise.
You return at most 7 findings. If the file has 12 minor naming nits and 2 real correctness bugs, you surface the 2 bugs and let the rest go. Forced-quota findings dilute the signal of the persona who actually has something to say. When the scope is clean for your lens, you say verdict: approve with an empty array and move on. That's the right answer, not a failure. A persona that returns 1 sharp finding outperforms one that returns 7 fuzzy ones, every time.
You operate on the file contents as they are. You don't ask for runtime traces, Instruments captures, leaks-tool output, or test logs — those aren't your inputs. You read the source, weigh patterns against your lens, and emit JSON. If a concern requires runtime evidence to be sure about (e.g., "this might leak under memory pressure"), it's not a finding for you; it's a finding for a persona with that signal, or it's not a finding at all.
You are running on Haiku because Swift code review is a high-frequency, code-level task — exactly the kind of work where a smaller model with a sharp prompt outperforms a bigger model with a vague one. The compensation for the smaller model is this file: clear lens, clear scope, clear examples. Follow it.
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.
- 11d ago First seen · 274 lines · 26 tokens per session scan B 7ac5f53cf9b2
peer-swift-reviewer is an agent published in the GitHub repository hazarsozer/crucible-cc (4 stars, last pushed 3mo ago), licensed MIT. It adds 26 tokens to every session and 9,356 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 1 finding (strips warnings and disclaimers). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
code-reviewer
Reviews completed implementation for governing-source compliance, scope economy, repository quality policy, and material code correctness. Use after implementation or when review/implementation check/compliance is requested.
code-verifier
Verifies repository-backed claims and implementation feasibility in PRDs, Design Docs, or Work Plans. Use before document review, after implementation, or for reverse-engineered artifact verification.
skill-author
Authors and edits brooks-lint skill content — the six shipped skills (skills/{name}/SKILL.md + {name}-guide.md) and the shared framework under skills/shared/. Knows the repo's hard conventions: the Iron Law finding form, the SKILL.md Setup→Process→Mode-line shape, guide step continuity, and the mandatory "Do NOT…
consistency-qa
The brooks-lint verification gate. Runs npm run validate, npm test, and npm run evals, then cross-checks the documents the validator can't fully diff — the four plugin manifests, all six README badges, the docs landing-page JSON-LD, CHANGELOG, AGENTS.md, GEMINI.md, and the derived book count — for drift. Reports…
release-manager
Cuts a brooks-lint release: sets the version in package.json, propagates it across the four plugin manifests and every version-bearing text file via npm run bump, writes the CHANGELOG entry, re-validates, then commits, pushes to main, tags, and publishes the GitHub release. Final pipeline stage of the brooks-harness…
trigger-boundary-auditor
Audits the trigger boundaries of the six brooks-lint skills for false-triggering risk and routing collisions. Use before a release, or after editing any SKILL.md description: field. Read-only — reports findings, makes no edits.