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.
npx agentmods add skills/dcosson/h2/plan-reviewnpx skills add dcosson/h2 --skill plan-reviewgit clone --depth 1 https://github.com/dcosson/h2Wrote 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/dcosson/h2/plan-review)<a href="https://agentmods.dev/skills/dcosson/h2/plan-review"><img src="https://agentmods.dev/badge/skills/dcosson/h2/plan-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 | $0.00037 | $0.02116 |
| Opus 5 | $0.00018 | $0.01058 |
| Sonnet 5 | $0.00007 | $0.00423 |
| Haiku 4.5 | $0.00004 | $0.00212 |
Grade A, and why
plan-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.
How it starts
The opening of the file, as written. The whole thing — 122 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plan Review
Independently review a plan doc and its test harness doc. Produce a findings doc with severity-rated issues.
Inputs
$0: Doc identifier (e.g.,04d-oltp-sql-engine)$1: Reviewer identifier (e.g.,reviewer-1, used in output filename)- Plans directory:
docs/plans/(or the project's established plans directory)
Critical Rules
- Do NOT read other reviewers' review files for the same doc. Reviews must be independent.
- Do NOT delegate plan doc reviews to sub-agents. The reviewing agent must read and analyze all plan docs itself, keeping everything in its own context window. Cross-document overlap and inconsistency detection requires one agent holding the full context — sub-agents fragment this and defeat the purpose of the review. Explore agents may be used for targeted research (understanding codebase structure, looking up specific docs or references), but the actual review analysis and findings must be done by the reviewing agent directly.
Phase 1: Read
- Read the plan doc
docs/plans/$0.md - Read the test harness doc
docs/plans/$0-test-harness.md(if exists) - Read prerequisite docs referenced in the plan (architecture, dependency docs)
- Read API contracts or shaping docs if referenced
Phase 2: Analyze
Evaluate the plan for:
- Correctness: Are algorithms, protocols, and data structures specified correctly? Any race conditions, crash recovery gaps, or consistency violations?
- Completeness: Are all interfaces fully defined? Any hand-waved sections? Missing error handling paths?
- Consistency: Does this doc align with the architecture doc and dependency docs? Are cross-document interfaces compatible?
- Acceptance Criteria: Do acceptance criteria exist? Are they concrete and testable? Does each one cross at least one component boundary? Flag if any criteria only test internal behavior without boundary crossing. Flag if criteria use internal APIs instead of the end-user interface.
- Connected Components: Are connected components listed? Are the interface descriptions specific enough (concrete types, protocols, message formats) that a seam review could verify compatibility with the other side?
- Testability: Does the test harness cover all critical paths? Any gaps in fault injection, oracle testing, or property-based coverage? Does every test category specify where test files live (exact paths), which make target they roll up into, and whether they run in CI PR checks, nightly, or on-demand? Flag any tests described without a location and runner.
- Performance: Are performance claims substantiated? Any obvious bottlenecks or scalability concerns?
- Security: Any injection vectors, privilege escalation paths, or missing validation?
- URP/EO/AA claims: Are these sections concrete commitments or wishlists? Each item must specify what will be built, where it fits, and how it's tested. Flag any items that read as "we could do X" rather than "we will do X with this specific design." Flag techniques that aren't applicable or wouldn't provide measurable benefit.
- Scope justification: For every named component, interface, slot, field, feature, primitive, or role the plan introduces — does it have a current consumer? "Forward-looking", "for future extensibility", "in case we need to..." are NOT consumers. Flag concepts that exist only to satisfy hypothetical future requirements, not real callers in this plan or its dependencies. Flag interfaces where consumers will only call a subset of the methods (over-specified surface area). Flag feature flags, fallback paths, or backwards-compat shims that are not forced by a real migration constraint. This is the counterweight to gap-finding above — finding too-much-scope is as important as finding too-little. Use severity P1 for unjustified scope that materially complicates the plan; P2 for smaller superfluity.
- Verbosity and within-doc duplication (writing style — how many words for the same content): Read for tightness. Flag sections that restate the same idea two or three different ways, "summary" or "overview" sections that duplicate detail already in the body, ceremonial framing that doesn't add information, and "for clarity" or "to be explicit" expansions where the original was already clear. Flag a doc that takes 200 lines to express what 50 lines would convey at the same fidelity. Specific patterns:
- Restated rationale: the same "why" appears in 3 places (motivation, summary, decision log) without each adding distinct content
- Pre-explained tables: prose paragraph immediately followed by a table that says the same thing — keep one
- Defensive doc sections: paragraphs anticipating questions a reviewer might ask, when the answer is already implicit in the design
- Verbose acceptance criteria: bullet lists where each item could be a sub-bullet of a more concise umbrella criterion Severity: P1 if verbosity buries a critical decision and makes the plan harder to implement correctly; P2 for sections that could be 30-50% shorter without losing fidelity; P3 for individual sentences/paragraphs (don't flag these unless they obscure meaning). Empirical test: could a competent implementor read 60% of this section and still execute correctly? If yes, the other 40% is bloat.
- Design complexity (architecture — how many moving parts to do the same job): Separate from verbosity. A 50-line plan can describe an over-engineered design; a 500-line plan can describe a simple one. Flag designs where the proposed shape is more elaborate than the production usage requires:
- Excess primitives: 3 named abstractions where 1 with a parameter would suffice
- Excess indirection: helper-of-helper-of-helper layering where consumers would call the underlying primitive directly with comparable clarity
- Excess state machines: more states/transitions than the actual lifecycle needs (e.g., 7 lifecycle states when 3 would cover every observable transition)
- Excess generality: protocols/interfaces parameterized over dimensions that have a single concrete value in production
- Excess coordination: locking, multi-step transactions, or distributed protocols where a simpler local operation would meet the same correctness bar Severity: P1 if a simpler design with comparable behavior is identifiable; P2 if complexity is justified by current usage but creates outsized maintenance burden. Empirical test: name a concrete simpler design and describe what it loses vs. the proposed one. If "loses nothing material," the complexity is not earning its keep.
- Implementation Guide candidates: Flag findings that are "implementation guide worthy" — non-obvious cross-cutting concerns that span multiple plan docs and that every implementor should know about, not just the teams working on this specific component. Mark these with
[IG]in the finding title.
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 First seen · 122 lines · 37 tokens per session scan A ea3b56e4f545
plan-review is a skill published in the GitHub repository dcosson/h2 (159 stars, last pushed 8d ago), licensed MIT. It adds 37 tokens to every session and 2,116 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-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.
chat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…