Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/srnichols/plan-forgenpx agentmods add skills/srnichols/plan-forge/code-reviewWrote 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/srnichols/plan-forge/code-review)<a href="https://agentmods.dev/skills/srnichols/plan-forge/code-review"><img src="https://agentmods.dev/badge/skills/srnichols/plan-forge/code-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.
<a href="https://agentmods.dev/skills/srnichols/plan-forge/code-review"><img src="https://agentmods.dev/badge/skills/srnichols/plan-forge/code-review.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.00084 | $0.03674 |
| Opus 5.5 | $0.00034 | $0.01470 |
| Sonnet 5.5 | $0.00017 | $0.00735 |
| Haiku 4.5 | $0.00008 | $0.00367 |
Grade A, and why
code-review scanned grade A 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 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.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
- Plan-Forge-specific: dual-shell parity (every PowerShell entry point has a matching Bash one), no sync `child_process` in the orchestrator hot path, `path.join(...)` everywhere (no hardcoded `\` or `/`) 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.
Code Review Skill — Plan Forge
Run
/clean-code-reviewFIRST. That skill is the mechanical/quantitative pass: 44 CHECKS across 11 languages (JS/TS, Python, .NET, Java/Kotlin, Go, Rust, PHP, Swift, Ruby, PowerShell, Bicep) — module size, function complexity, parameter counts, duplication (jscpd + literal/regex scanners), engineering hygiene (empty catches, magic numbers, dead imports, TODO/FIXME, hardcoded secrets, SQL-injection, command-injection patterns), shell-parity (PS/Bash twins), enums-drift (pforge-mcp/enums.mjs), cross-package dependency boundaries, and ESLint. This skill is the qualitative/judgment pass. Mechanical findings clear the noise so this review can focus on what actually requires judgment.
Trigger
"Review my code" / "Run code review" / "Check before merge" / "Code review --quorum"
Steps
0. Forge Analysis
Use the forge_analyze MCP tool with the current plan (if available) to get a structured consistency score. Pass the plan's .md path, not a source file: without quorum: true, forge_analyze scores plans only and rejects a source-file target. If the reviewed work has no plan, skip the score. Use the forge_diff MCP tool to detect scope drift and forbidden file edits.
If --quorum was specified: Use forge_analyze with quorum: true to dispatch multi-model analysis. Each changed file is independently reviewed by multiple AI models, and findings are synthesized with consensus confidence levels.
1. Identify Changed Files
# What changed since the merge-base with planning/main?
git diff --name-only origin/planning/main...HEAD
# Or since last commit
git diff --name-only HEAD~1
2. Public Surface Diff (consumer impact)
node scripts/audit/surface-diff.mjs
node scripts/audit/surface-diff.mjs --base origin/master
Parse docs/plans/cleanup-findings/raw/surface-diff-report.json. Three layers are diffed against the merge-base:
| Layer | Source | What's compared |
|---|---|---|
| Module exports | every .mjs outside tests/ |
added/removed named exports |
| MCP tools | pforge-mcp/server.mjs TOOLS array |
added/removed tool names + inputSchema property keys |
| CLI commands | pforge.ps1, pforge.sh |
added/removed top-level dispatch branches |
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.
- 4d ago Changed · +24 lines · +14 tokens per session 5842cfa43d67
- 9d ago Changed 6e0c73014466
- 1mo ago First seen · 184 lines · 70 tokens per session scan A 3d800cf9a6c3
code-review is a skill published in the GitHub repository srnichols/plan-forge (5 stars, last pushed 3d ago), licensed MIT. It adds 84 tokens to every session and 3,674 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
code-analysis
Use the free built-in .NET SDK analyzers and analysis levels with gradual Roslyn warning promotion. USE FOR: the repo wants first-party .NET analyzers; CI should fail on analyzer warnings; the team needs AnalysisLevel or AnalysisMode guidance. DO NOT USE FOR: third-party analyzer selection by itself; formatting-only…
graphify-dotnet
Use graphify-dotnet to generate codebase knowledge graphs, architecture snapshots, and exportable repository maps from .NET or polyglot source trees, with optional AI-enriched semantic relationships. USE FOR: graphify commands; graph JSON, HTML, SVG, Cypher, Markdown, and Obsidian exports; repository map and…
sonarjs
Use SonarJS-derived rules in .NET repositories that ship JavaScript or TypeScript frontends and need deeper bug-risk, code-smell, or cognitive-complexity checks than a minimal ESLint baseline. USE FOR: SonarQube, SonarCloud, or eslint-plugin-sonarjs setups; frontend code smells; cognitive complexity and deeper…
complexity
Use free built-in .NET maintainability analyzers and code metrics configuration to find overly complex methods and coupled code. USE FOR: the team wants to find overly complex methods; cyclomatic complexity thresholds are needed in CI; maintainability metrics or coupling thresholds need to be configured. DO NOT USE…
resharper-clt
Use the free official JetBrains ReSharper Command Line Tools for .NET repositories. USE FOR: jb inspectcode; jb cleanupcode; stronger C# inspections, cleanup profiles, and CI-friendly JetBrains analysis. DO NOT USE FOR: replacing tests with inspection output; ad-hoc formatting-only work when the repo intentionally…
roslynator
Use the open-source free Roslynator analyzer packages and optional CLI for .NET. USE FOR: Roslynator.Analyzers setup; Roslynator CLI checks or cleanup; C# linting, static analysis, and code-fix automation. DO NOT USE FOR: overlapping analyzer packs with no consolidation plan; formatting-only work owned by another…