review

review is a skill for Claude Code from V-Songbird/slag. It costs 169 tokens per session (3,546 once invoked), scanned A, original, MIT.

A skill for reviewing a project's jig ledger, which is the record of installed code checks called guards.

In plain words
What is it for?
Use it to review check results, mark false positives, change a guard's mode, retire an ineffective guard, or find installed files that have changed.
Why use it?
It shows which checks have triggered, identifies false alarms or broken checks, and lets the project owner decide whether a check should stay active, observe, or be retired.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions CLAUDE.md; names the AskUserQuestion tool.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the jig plugin — 3 skills shipped together

Good fit Use it to review check results, mark false positives, change a guard's mode, retire an ineffective guard, or find installed files that have changed.

Compare 6 skills from other repositories ↓
Install

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.

Claude Code
/plugin marketplace add V-Songbird/slag
Claude Code
/plugin install jig

Made for: Claude Code.

Or install jig, the plugin that ships this one along with the rest of its 3 skills.

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 review

README.md
[![agentmods](https://agentmods.dev/badge/skills/v-songbird/slag/review/github.svg)](https://agentmods.dev/skills/v-songbird/slag/review)
Your own site
<a href="https://agentmods.dev/skills/v-songbird/slag/review"><img src="https://agentmods.dev/badge/skills/v-songbird/slag/review/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.

agentmods 80×15 button for review

Your own site · 80×15
<a href="https://agentmods.dev/skills/v-songbird/slag/review"><img src="https://agentmods.dev/badge/skills/v-songbird/slag/review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 169 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,546 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.00169 $0.03546
Opus 5 $0.00084 $0.01773
Sonnet 5 $0.00034 $0.00709
Haiku 4.5 $0.00017 $0.00355

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

Security

Grade A, and why

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

jig/skills/review/SKILL.md · 270 lines

How it starts

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

jig:review

Everything mechanical is one command. You run it, read its result, and put the real decisions — keep, quiet, or retire — to the user. Never re-derive what the command already computed.

Every command is node "${CLAUDE_PLUGIN_ROOT}/scripts/jig.js" <review|rerun|fp|disarm|arm|retire> from the project root. If node is not on PATH (fnm/nvm setups), register it the way the project's CLAUDE.md says to, then rerun.

A guard's mode is a choice, not a rank. Checks install proven and blocking; observe is something the owner picks, in either direction, at any time. There is no clean-session count that earns anything, and nothing here is a waiting period.

Anything that takes enforcement AWAY — fp, disarm, retire — plans and stops. The command writes a change and changes nothing; its result carries applied: false, the change id, the path, and an apply string. Put the change to the user with ONE AskUserQuestion and run the apply only if they say yes. Never pre-tick it, never assume it, never run both halves in one breath. arm is the exception and applies itself: it puts enforcement up, and the owner already named the guard.

If a command here refuses because the install predates the rework, that install needs upgrading before any of this reads correctly. Send the user to /jig:jig, which runs the migration, and stop.

1. Read the ledger

node "${CLAUDE_PLUGIN_ROOT}/scripts/jig.js" review

installed: false is the whole report. There is no .jig/config.json here — jig was never installed, or revert took it back out — so there is no activity to read. Say why and stop; offer /jig:jig to install. Do not report the empty guards list as guards that never fired.

guards[] carries one row per installed guard:

  • fired — times it matched, out of evaluated calls it was run on. Report the pair, never fired alone: four catches in four calls and four in four thousand are different guards. denied and wouldDeny split fired by what the guard was allowed to do — a wouldDeny count is coverage the user is not getting yet. lastFired is when the last catch was, or null; a guard that fired only long ago is as much a retirement candidate as one that never did. wavedOff — false positives recorded.
  • evaluatedOn — the shell tool names those evaluated calls arrived on, for THIS guard. Empty means not yet observed. This is the per-guard field; lanes.session.shell.seen below is repository-wide and answers a different question.
  • otherLanes — catches of this guard's class at COMMIT time, where the check runs with no guard and no denominator, which is why it is not part of fired. A guard with fired: 0 and a non-zero otherLanes is not a quiet guard: its class is being caught, in the lane that stops the commit. Never offer it for retirement. pendingWaveOff — a wave-off the user raised and never approved the change for. The guard is still doing whatever its config says, which is not what somebody who ran fp and walked away expects: say so, and offer the token again.
  • problem — non-null means this guard is broken, not quiet: its check module would not load, or it carries nothing for the event it is registered on. Say so first and separately. A broken guard reported as "never fired" is coverage the user thinks they have.
  • modearmed (it blocks) or observe (it records and lets the call through). why states what put it there; print it verbatim, because paraphrasing an honest limit blurs it.
  • demoted — non-null means the config says armed and the guard is running as observe anyway: drift, a stale proof, a standing false positive, a zone. The owner cannot see that gap anywhere else, so report it beside problem rather than leaving mode to imply somebody chose observe.
  • provenance — how the row was chosen. An assumed row is a default the owner never saw, and it is labelled as one wherever it is reported.

Read the full file on GitHub · 270 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 Changed · +120 lines df01eb037861
  2. 10d ago First seen · 150 lines · 169 tokens per session scan A 2efd3e758930

Subscribe to this mod's changes

review is a skill published in the GitHub repository V-Songbird/slag (1 stars, last pushed 5d ago), licensed MIT. It adds 169 tokens to every session and 3,546 once invoked, about $0.0008 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.