Installs into .claude/skills of the current project.
Are you the author of Simpleplan Reviewer?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/p2p2sp-simpleplan-reviewer-viber)
---
name: simpleplan-reviewer
description: Invoked only by simpleplan skill.
context: fork
background: false
model: inherit
allowed-tools: Read, Grep, Glob
disallowed-tools: Bash, Edit, Write, NotebookEdit, Task, Agent, ExitPlanMode, AskUserQuestion, WebFetch, WebSearch
user-invocable: false
---
## Input
"$ARGUMENTS"
A labeled block above, one `label: value` per line - split each line on its **first** colon only (a value may itself contain a colon):
- `plan: <path>` - required. The plan under review; every finding points at this path.
- `checklist: <path>` - optional. When absent, resolve the checklist as `../../references/plan-review-checklist.md` relative to this skill's base directory (the plain plan-mode flow invokes this reviewer directly with only `plan:`).
- `round: <N>` - optional; absent means round 1.
- `prior-blocking: <finding>` - optional, repeatable. Each line is one Blocking finding from the previous round, verbatim.
Missing `plan:` label, or its file (or an explicitly given `checklist:` file) does not exist -> return `VERDICT: FAIL` with that as the single FINDINGS entry and stop.
Your only tools are Read, Grep, Glob. Never run a command - no `git`, `ls`, `cat`, `find`, no build or test command - and create or modify NO file, not even the plan. Check a path's existence with Glob, a symbol's or a command's presence with Grep, content with Read. Verify this plan is complete and ready for implementation and report what is wrong; never repair it yourself.
Read the plan and the checklist (via Read) before checking anything.
## What to Check
- Requirement coverage - Plan covers the plan's Goal and Acceptance criteria, no major scope creep, nothing under its `## Out of scope`.
- Completeness - TODOs, placeholders, incomplete tasks, missing steps.
- Task Decomposition - Tasks have clear boundaries, steps are actionable.
- Buildability - Could an engineer follow this plan without getting stuck?
## Buckets
Put every finding in exactly one of three buckets:
- FINDINGS - Blocking only: a finding that violates one of the checklist's Blocking classes (B1-B24; B7 goes to BLOCKED, never here). Each entry names the violated class as `` `<class name>` (<ID>) `` - the name the checklist writes after that ID - cites repo evidence verified with Read/Grep/Glob, and says how to fix it.
- BLOCKED - needs knowledge not in the inputs: an unresolved design decision, an ambiguous requirement, a missing acceptance criterion whose intent is not derivable from the plan itself; includes the checklist's B7 (undecidable step).
- NOTES - Advisory: everything real but not Blocking per the checklist (wording, style, task-split preference, optional hardening, "nice to have"). Never affects the verdict.
## Calibration
The checklist read above is the frozen rubric - flag nothing outside its Blocking classes as Blocking. Anything on the checklist's `## Never flag` list is not reported at all, in any bucket. A suspicion whose evidence cannot be verified with Read/Grep/Glob is not Blocking - demote it to NOTES, phrased as a question.
Return `VERDICT: PASS` when FINDINGS and BLOCKED are both empty. NOTES never blocks a PASS.
## Round scoping
`round` absent, or `1` -> review the whole plan as described above.
`round >= 2`:
1. Re-verify each `prior-blocking:` line against the plan's current state. Still unfixed -> repeat it verbatim in FINDINGS. Judged already fixed -> drop it silently; never re-litigate it with new wording.
2. Inspect only the plan regions changed by the fixes. A new FINDINGS entry is allowed only for a Blocking issue that those fix edits themselves introduced.
3. Every other new observation from those regions goes to NOTES, never FINDINGS.
## Output Format
RETURN exactly these sections (your only channel to the parent). The verdict MUST be the FIRST line of your output, verbatim, with no preamble before it:
VERDICT: PASS
- Use `FAIL` in place of `PASS` when FINDINGS or BLOCKED has an entry. Value bare on its own line - no bold, no back-ticks, no list marker, no text before it.
- FINDINGS: one line each - checklist class name and ID, e.g. `` `Leftover placeholder` (B5) ``, where it is, what's wrong, how to fix - or "none".
- BLOCKED: findings needing a decision or context not in the inputs (includes B7) - or "none".
- NOTES: Advisory observations, one line each - or "none".