Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add a-lottes/aSPARK/plugin install asparkWrote 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/skills/a-lottes/aspark/peer-review)<a href="https://agentmods.dev/skills/a-lottes/aspark/peer-review"><img src="https://agentmods.dev/badge/skills/a-lottes/aspark/peer-review.svg" alt="Measured on agentmods" 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.00057 | $0.00992 |
| Opus 5 | $0.00028 | $0.00496 |
| Sonnet 5 | $0.00011 | $0.00198 |
| Haiku 4.5 | $0.00006 | $0.00099 |
Grade A, and why
peer-review 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 8d 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.
How it starts
The opening of the file, as written. The whole thing — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/peer-review — Review (Reviewer)
You are running the code review ceremony. A second pair of eyes goes
over everything /increment built, before any human-visible testing starts.
Input
Optional argument: the feature name. Resolve as usual.
Steps
- Check the gate. The plan at
.spark/<feature-name>/plan.mdmust show all tasksdone. If the working tree doesn't build or the test suite is red, STOP — that goes back to/incrementwithout a review. Read only what the gate asks: theStatuscolumn of the task table and the build/test result. You do not read the spec, the plan or the diff here — therevieweragent reads all three in full, in its own context. That separation is the entire point of delegating this phase; pre-loading the same material into this conversation gives the benefit straight back.- Only after the gate has passed, resolve optional tool availability,
once: if the session exposes MCP tools whose names end in
stalenessandimpact(they are normally namespaced, e.g.mcp__aspark-graph__staleness), treat that as the available surface and run no command; otherwise probe once, read-only, withcommand -v aspark-graph >/dev/null 2>&1 && echo runner=yes || echo runner=no; test -f .aspark-graph/graph.json && echo graph=yes || echo graph=no— it reports both facts and always exits 0, so the absent case never looks like a failed command. Resolve both facts — is there a surface, and does.aspark-graph/graph.jsonexist — and act on the four states in${CLAUDE_PLUGIN_ROOT}/tools/aspark-graph.md: pass the tool file in step 2 only when both hold; say its one-sentence hint, at most once, in either mixed state; and when neither holds, say nothing at all and continue exactly as you would otherwise. Never probe in a run that already stopped, and never let the outcome change a gate.
- Only after the gate has passed, resolve optional tool availability,
once: if the session exposes MCP tools whose names end in
- Delegate to the Reviewer. Invoke the
revieweragent with the feature paths, the report template from${CLAUDE_PLUGIN_ROOT}/templates/review-report.md, how to determine the diff (commit range or changed files since the increment started), and the paths of any active lenses with review-phase checks (from the constitution's profile —${CLAUDE_PLUGIN_ROOT}/lenses/<name>.mdfor any ofseo,api,cli,library,security,data,i18nthat are active). If a tool resolved as available in step 1, pass${CLAUDE_PLUGIN_ROOT}/tools/aspark-graph.mdthe same way — one more path alongside the lens paths, nothing else. For a re-review, point it at the previous report so it verifies the fixes instead of starting from zero. - Present the report. Findings grouped by severity with locations; what the reviewer already fixed itself; plan deviations; and the verdict — quoted, not paraphrased into something softer.
- Route the findings with the user:
- open Blockers/Majors →
/increment(fix-mode), then re-run/peer-review; - the user may waive a Major — record the waiver and reason in the report; Blockers cannot be waived;
- Minors/Nits → user decides: fix now or accept.
- open Blockers/Majors →
- Close the gate. When the REVIEW GATE checklist is genuinely
satisfied, set the report status to
passed.
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.
- 8d ago First seen · 80 lines · 57 tokens per session scan A a861c49f891b
peer-review is a skill published in the GitHub repository a-lottes/aSPARK (19 stars, last pushed 7d ago), licensed MIT. It adds 57 tokens to every session and 992 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-30.
Other skills, from other repositories
github-pr-review
Handles PR review comments and feedback resolution. Use when user wants to resolve PR comments, handle review feedback, fix review comments, address PR review, check review status, respond to reviewer, verify PR readiness, review PR comments, analyze review feedback, evaluate PR comments, assess review suggestions, or…
github-pr-creation
Creates GitHub Pull Requests with automated validation and task tracking. Use when user wants to create PR, open pull request, submit for review, or check if ready for PR. Analyzes commits, validates task completion, generates Conventional Commits title and description, suggests labels. NOTE - for merging existing…
review-spec
A workflow for comparing an existing feature specification with the project's review checklist and implementation. It looks for missing requirements, differences between documented screens and actual screens, and lessons from rejected submissions.
pr
Create a GitHub pull request for a verified change. Reads verify-report.md, opens a PR with title from proposal and body from spec, enforces the configured test policy. Requires the gh CLI authenticated. Run after /specclaw:verify produces a verify-report.md. For Azure DevOps PRs, use /specclaw:pr-azdo instead.
init
Opt-in onboarding for the mARC agent team. Scaffolds a per-repo team binding so the team graduates from ephemeral session-memory to persistent, versioned config — without ever writing a file silently. Discovers the repo's org/repo/ project at runtime via gh, prefills {{ agentsdir }}/team.toml, and (optionally) a lean…
review
Run a full code review on current changes or specified files. Runs ruff lint, review-code agent, and security scan in sequence.