Skip to content
Back to skills

Plan Review Checklist

ASecurity

Detailed checklist for verifying Development Plans.

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 9, 2026
ai-agentspythongodocumentation

Security analysis

A100/100

Scanned October 9, 2026

npx -y skills add MatrixFounder/Agentic-development --skill plan-review-checklist --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Plan Review Checklist?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Plan Review Checklist
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/matrixfounder-plan-review-checklist/badge)](https://www.skillsdirectory.com/skills/matrixfounder-plan-review-checklist)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: plan-review-checklist
description: Detailed checklist for verifying Development Plans.
tier: 1
version: 1.3
---
# Plan Review Checklist

## 1. Use Case Coverage
- [ ] **Total Coverage:** Every Use Case mapped to >= 1 Task?
- [ ] **Traceability:** Coverage table exists?

## 2. Structure & Formalism
- [ ] **Stub-First:** Every component has specific "Stub" and "Impl" phases/tasks?
- [ ] **Dependencies:** Task order respects dependencies?
- [ ] **Disjoint scope:** No task's "Changes" list is a subset of another task's — the same file
  and the same function or route owned twice means one of the two closes with no code. Seen
  once: a "sessions, CSRF, login limits" task duplicated the auth-logic task that preceded it in
  the dependency graph and was closed as already delivered.
- [ ] **Phasing:** Clear stages (Structure -> Logic -> Test)?

## 3. Task Descriptions
- [ ] **Existence:** File exists for every task in `plan.md`?
- [ ] **Naming:** Matches `task-{ID}-{SubID}-{slug}.md`?
- [ ] **Sections:** Contains Goal, Changes, Test Cases, Acceptance Criteria?
- [ ] **Depth:** Specific file paths and method signatures? (Without coding).

- [ ] **Strict Mode:** Usage of `tdd-strict` specified for critical components/bugs?

## 4. Register (`documentation-standards` §5.5)
- [ ] **Scan attached:** `scan_register.py docs/PLAN.md docs/tasks/task-<ID>-*.md --sections
      --terms docs/ARCHITECTURE.md` was run over **every** task file this plan produced, not a
      sample; `DETECTORS` shows none dead. `<ID>` is the Task ID from `docs/TASK.md` section 0.
      Task files carrying an earlier ID are the archive (`skill-archive-task` moves rotated
      documents into the same directory) and are out of this review's scope.
- [ ] **Warns resolved:** zero `warn`, or each survivor carries a written reason.
- [ ] **Reading pass covered:** every section of every task file appears in the worklist and was
      read for rules 3, 4 and 6.

## 5. References (`documentation-standards` §4.1)
- [ ] **Resolver run:** `python3 .agent/skills/documentation-standards/scripts/check_positional_refs.py --all docs/PLAN.md docs/tasks/task-<ID>-*.md`
      was run, and its `path:line` coverage line is **quoted** in the review — not asserted to
      have been produced. A checklist cannot prove a command ran; pasted output can.
- [ ] **Verdicts resolved:** zero `REFERENT_ABSENT` and `REFERENT_AMBIGUOUS`, or each survivor
      carries a written reason. `REFERENT_MOVED` is repaired by re-running with `--fix`, never
      argued about — the number is derived from the referent, so no judgement is involved.
- [ ] **A coordinate carrying no referent is not a defect.** It is reported as *not examined* and
      is **NOT** required to gain one. This review never demands a migration: most corpora carry
      no referents at all, and adoption is the project's decision, not the reviewer's.
- [ ] **Cross-repository coordinates pinned:** a path outside this repository resolves to nothing
      and reports `UNRESOLVABLE`. It carries `@<rev>` naming the revision measured, which is the
      form §4.1 already licenses for a claim about another state.
> **Scope caveat, the same one this checklist's Script Contract states for the register scan.**
> `docs/tasks/` is also the permanent archive sink, so the bare glob `docs/tasks/*.md` would put
> every task ever written under this section. Substitute the current Task ID for `<ID>`.

## 6. Figures (`documentation-standards` §5.6)
The standard is `mermaid-authoring-guidelines`. The caller runs the Script Contract commands of this
section, and the brief carries their output. Without the `plan_gantt.py --check` output, the items
**Schedule valid** and **Chart current** are reported *not verified*. The review then does not
return APPROVED, and `has_critical_issues` is true.
- [ ] **Schedule block:** `docs/PLAN.md` holds one `json` fence directly under
      `<!-- contract:schedule -->`. It lists every task of the sequence once, with the `id` of its
      record and the record's dependencies as `deps`.
- [ ] **Schedule valid:** the `plan_gantt.py --check` output names no cycle, unknown dependency,
      duplicate id or non-integer estimate.
- [ ] **Status of a new plan:** every task of the block holds the status `not-started`, or no
      `status`. No task of a new plan is `in-progress` or `done`: the develop workflows set them
      (`skill-planning-format` §2.2).
- [ ] **Chart current:** a plan of 8 or more tasks holds the generated chart, or one chart per
      stage group, between `<!-- generated:plan-gantt-start -->` and
      `<!-- generated:plan-gantt-end -->`, and the check output shows exit `0`. A plan of fewer
      than 8 tasks holds no chart there (`skill-planning-format` §2.1).
- [ ] **Skill absent:** a project without `.agent/skills/mermaid-authoring-guidelines/` gets no
      plan chart, and the check cannot run. When the `figures` field of the planner's return JSON
      states `skill absent`, the absent chart is not a defect. **Schedule valid** and **Chart
      current** are then reported *not examined*.
- [ ] **Other figures:** each other figure in `docs/PLAN.md` or a task file of this plan comes with
      lint output that holds no `error`. Without it the figure is reported *not verified*. The
      review then does not return APPROVED, and `has_critical_issues` is true. Render output is
      optional; the line `not rendered: <reason>` lets the review conclude and never counts as a
      passed render.
- [ ] **No negative marker:** no figure in `docs/PLAN.md` or a task file of this plan ends with a
      `%% negative:` line. Such a line in a project document fails FIG-25 of the skill's review
      checklist. The lint reports the line as MA-NEG-03, an error. It also counts every finding of
      that fence.
- [ ] **A figure this plan does not add or edit is not a defect.** It is reported as *not
      examined*, and this review never demands a redraw of it.

## Execution Mode
- **Mode**: `hybrid`
- **Rationale**: the checklist items are reviewer judgement. The commands of the Script Contract
  are deterministic and are run, not recalled.

## Script Contract
- **Primary Command:** `python3 .agent/skills/artifact-formalizer/scripts/scan_register.py docs/PLAN.md docs/tasks/task-<ID>-*.md --sections --terms docs/ARCHITECTURE.md`
- **Scope:** substitute the current Task ID for `<ID>`. `docs/tasks/` is also the permanent
  archive sink. The bare glob `docs/tasks/*.md` would put every task ever written under a gate
  that demands zero `warn`. No review can pass that gate, and none can fix it.
- **Outputs:** findings, a `DETECTORS` probe table, a `DIAGNOSTICS` block, and the
  per-section worklist. `--json` for the same content as a document.
- **Failure Semantics:** `0` on any number of findings (advisory); `2` on a broken rule file or a
  dead detector; `3` on unreadable or absent input. A `2` or `3` invalidates the run, not the
  artifact.
- **Plan chart check (§6):**
  `python3 .agent/skills/mermaid-authoring-guidelines/scripts/plan_gantt.py docs/PLAN.md --check docs/PLAN.md`.
  Exit `0` the schedule block is valid and the chart is current; `1` a stale chart or an invalid
  block, and the message names which; `2` a broken instrument; `3` usage. A `2` or `3` leaves the
  items that read this output *not verified*.
- **Figure lint (§6), once per file of this plan with a figure outside the generated region:**
  `python3 .agent/skills/mermaid-authoring-guidelines/scripts/lint_mermaid.py <file>`. Exit `0` no
  `error`; `1` `error` findings; `2` a broken instrument or a dead rule; `3` usage. A `2` or `3`
  leaves the figure *not verified*.
- **Figure render (§6), optional:**
  `python3 .agent/skills/mermaid-authoring-guidelines/scripts/render_check.py <file>`. Exit `0`
  pass; `1` a figure fails; `2` not rendered, printed as `not rendered: <reason>`; `3` usage.
  Renders are written outside the repository.

## Safety Boundaries
- **Scope:** read-only. A review reads artifacts and runs the read-only register scan; it never
  edits the artifact under review. Findings go to the review notes, and the authoring role applies
  them. The plan chart check, figure lint and render output reach the review as caller-supplied
  evidence; renders sit outside the repository.

## Validation Evidence
- **Primary Evidence:** the register scan named in the Register section, attached to the review
  notes with its `DETECTORS` and `DIAGNOSTICS` blocks intact.
- **Figure Evidence:** the `plan_gantt.py --check` output; for a file that holds another figure,
  the lint output, and the render output or the `not rendered: <reason>` line.
- **Quality Gate:** no dead detector; zero unresolved `warn`; every checklist item above ticked
  against the artifact under review rather than against the previous revision. An item reported
  *not examined* stays unticked, and the review still concludes. An item or a figure reported
  *not verified* keeps the review from APPROVED.

## Criticality Protocol
Severity is a named value, never a glyph (§5.5 rule 5).
- **BLOCKING:** Missing Use Case, Missing Task File, No "Stub-First" approach, dead detector in the
  register scan.
- **MAJOR:** Missing coverage table, Vague dependencies, unresolved register `warn`. Figures: an
  absent, incomplete or invalid schedule block; an absent or stale plan chart, except in a project
  without the skill (§6 **Skill absent**); a figure lint `error`; a figure that contradicts its
  text.
- **MINOR:** Formatting, missing "Notes", figure layout, caption and legend form.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…