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 scolladon/craft/plugin install craftWrote 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/scolladon/craft/review)<a href="https://agentmods.dev/skills/scolladon/craft/review"><img src="https://agentmods.dev/badge/skills/scolladon/craft/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.00031 | $0.01281 |
| Opus 5 | $0.00015 | $0.00641 |
| Sonnet 5 | $0.00006 | $0.00256 |
| Haiku 4.5 | $0.00003 | $0.00128 |
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 6d 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 — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
craft:review
Preamble (always runs — non-overridable)
- Manifest read (lint if standalone). Standalone: scope = current branch vs default branch; establish global-context preconditions (checkout root).
- Probe harness knobs from
phase.harness(the resolved descriptor the orchestrator holds for this phase), each with a strong fallback when the knob is absent:dimensions(defaultcode, security, tests, perf— a repocontext:may refine their definitions);passes= reviewers per dimension (default1);max_cycles(default3);convergence(defaultlow-only). Gates as in implementation's preamble;gates.review-batchoptional extra. - Memory read/write surface (advisory).
READS: recurring
findingsentries as advisory watch-items — prepended to each reviewer spawn's injected block so reviewers check these locations first. A cached finding pre-empts re-discovery effort; it never replaces the full-diff review. WRITES (buffered to run record, flushed at run end): findings that recurred this run, keyed byfile+pattern, withseverity.fileMUST be stored repo-RELATIVE (strip the repoRoot prefix) — never an absolute path, which would leak$HOME/username into the committed store. Per ADR-123 whitelist: no provenance refs, no code snippets, no prose explanation body, no PII. RETRACTS: the run retracts afindingsentry when it re-checked that entry's ownfile+patternat that location and the pattern is absent — a mechanical re-check, never a judgment call, and only for the concern this phase owns. EmitMEMORY-RETRACT(findings): <file> <pattern>,filerepo-RELATIVE under the same rule the WRITES clause states above.
Procedure (default body — a manifest override: replaces everything below)
- Round 1 — full scope: fan out exactly
phase.harness.reviewPlan.passesread-only craft:reviewer per dimension in parallel (one message,dimensions.length × reviewPlan.passesspawns). This count is engine-emitted and binding — the walk MUST spawn exactly that many reviewers per dimension, no more, no fewer. A resolved product above eight also lands an advisory record in the run record — it never changes this count. Each carries: its dimension + definition; the working directory; the diff scope; the design doc path (if any); global + review-phasecontext:files verbatim. Perf calibrates to the diff — zero findings legitimate. Tests dimension: do NOT run the executing-harness techniques (a dedicated phase owns it) — but suspected-benign harness findings MAY be flagged as advisory notes (keep them for the validation phase). - Normalize findings: before applying, pipe each reviewer's raw output through
node "${CRAFT_ROOT:-${CLAUDE_PLUGIN_ROOT}}/engine/bin/normalize-findings.js"to obtain a canonicalFinding[]({file, line, severity, finding, fix?, status?}). Key on these fields — never on whether the reviewer emitted a JSON array or a per-line list. - Fixes — session-owned: the actionable set is
status ∈ {absent, VERIFIED, SUSPECT, PROBE}— engage each of these exactly as today (apply the fix, or investigate and either fix it or record it as RULED-OUT).RULED-OUTis record-only: write it to the run record as "examined, not a defect" and drop it from the fix set. Apply every accepted actionable finding yourself, batched per dimension; each batch gates on the targeted checks (gates.partover touched files) +gates.review-batchbefore its conventional commit (e.g.refactor(<scope>): apply code-review fixes);gates.phaseafter the round. - Converge per dimension, up to
max_cyclescycles (default 3), perphase.harness.reviewPlan.stop_rule(engine-emitted, binding). Both rules below count only actionable findings (Step 3) — aRULED-OUTrecord never blocks convergence:low-only→ converged once only LOW-severity actionable findings remain; NO relaunch.none→ no convergence loop; single pass only.non-low-count<=<n>→ stop when the count of remaining non-LOW actionable findings (severity ≥ MEDIUM, off the normalizedFinding[]) is ≤ n. The threshold n is read directly from the rule string — no re-derivation. MEDIUM+ → fresh reviewer scoped to the FIX DELTA only (prior findings + fix commits' diff; mission: verify resolutions + review the fix diff). The prior-findings payload carriesRULED-OUTrecords too, labelled: do not re-raise a RULED-OUT claim unless the fix diff reintroduces the condition. This threaded payload is a bounded, status-tagged findings-state, never an accumulated transcript. Fresh agent each cycle — never continue a reviewer.
- Security gate: HIGH/CRITICAL security findings — show the user the fix diff BEFORE committing. Everything else: fix-all-then-converge, no user round-trip.
- Record per-dimension outcomes in the run record.
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.
- 6d ago First seen · 76 lines · 31 tokens per session scan A 6ff1c45bcc7c
review is a skill published in the GitHub repository scolladon/craft (2 stars, last pushed 18d ago), licensed MIT. It adds 31 tokens to every session and 1,281 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.
Other skills, from other repositories
link-check
Verify @file references in AIWG skills and agents against the linking contract — per-file or corpus-wide, with optional auto-fix.
great_cto
Use when the CTO describes a feature, task, or project goal. Orchestrates the full SDLC pipeline automatically based on project type.
vertical-real-estate
Residential-proptech domain knowledge so architect / pm aren't naive when speccing real-estate products (listings, lead-crm, transaction-coordination, property-mgmt). Codifies MLS/IDX reality, listing status lifecycle + syndication canonical-source, long-cycle lead nurture, transaction-coordination as the high-pain…
product-economics
Does this product make money at a price someone will pay? Forces contribution margin, a price with a stated basis, and a bottom-up market size — each number labelled measured / assumed / unknown, so a guess can never be read as a calculation.
anti-patterns
Catalogue of known SDLC anti-patterns that greatcto agents must actively reject when reviewing architecture, plans, code, or post-mortems. Used by architect (pre-impl), pm (planning), senior-dev (impl), l3-support (post-incident).
migration-ready-schema
Data-model rules that make a schema importable from day one, so the migration-import-engineer is never blocked on missing columns. Every SMB Product-Builder product must let a customer bring their data from an incumbent (ServiceTitan/Toast/Mindbody/Shopify) — that requires provenance (sourceref) and rollback…