planning-tools/skills/plan-verification-checklist/SKILL.md
This skill should be used by the plan-verifier agent and the /plan-verify command to audit a drafted master plan against a fixed checklist. Covers universal-core completeness, the v0.3.0+ no-tables-for-phases-or-questions rule, trigger-based section-coverage gaps, phase actionability (heading + per-phase TL;DR + bulleted scope + exit criteria), the v0.3.1+ per-phase TL;DR requirement, the v0.3.2+ plain-bullet scope shape (legacy `- [ ]`/`- [x]` accepted silently), integer phase numbering enforcement, dependency traceability, citation resolution, callout/evidence convention compliance, Open Questions placement, and the one-PR-per-master-plan rule. Single-owner of the audit checklist.
npx skillsauth add oborchers/fractional-cto plan-verification-checklistInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill codifies the audit performed by /planning-tools:plan-verify and the plan-verifier agent. It is the single owner of the checklist; the command and agent both reference it rather than duplicating rules.
The checklist applies to any master plan written under the master-plan-methodology skill. Findings are graded Critical, Important, or Suggestion.
Verify every required section is present and in the prescribed order:
>) containing Ticket(s), PRD/Source, Evidence, Depends on, Constraints### Phase <N>: <name> <emoji> H3 headings and - bulleted scope items (no table; v0.3.2+ canonical shape is plain bullets, legacy - [ ]/- [x] accepted silently)Missing universal-core sections = Critical.
For each trigger observed in the plan, check the corresponding optional section is present:
| If the plan mentions | Then it must include | |---|---| | SQL, schema changes, migrations, new tables/columns | Data Model / Schema AND Rollback Procedure | | React components, UI changes, new screens/dialogs | Component Architecture, UI States or Skeleton Screens, Manual QA Checklist | | Novel UI surfaces | Visual Design — ASCII Mockups | | Multiple locales | i18n table | | New analytics events or tracking | Analytics section | | Cost-bearing infrastructure (e.g., cloud spend) | Cost Summary | | Failure modes, dependencies, external risks | Risks + Mitigations | | Manual deploy steps or post-merge ops | Deployment Steps | | Production validation requirements | Verification (post-merge / post-deploy) | | Production incident remediation | Recovery for Affected Records | | File-level impact across phases | Code Changes (file × phase) | | ≥5 design decisions referenced | Design Decisions table | | Tests required for any phase | Tests breakdown | | External prerequisites (other tickets) | Prerequisites |
Missing trigger-driven section = Important.
Every phase must be one ### Phase <N>: <verb-led name> <emoji> H3 heading followed by a **TL;DR:** callout and a plain unordered bulleted list of scope items. Each phase block must contain:
### Phase <N>: <verb-led name> <emoji> where <N> is a positive integer and <emoji> is one of ⏳ 🚧 ✅ ❌ and is the last token on the line**TL;DR:** and contain 1–3 sentences capturing what the phase does and why. Missing or empty TL;DR = Important. Existing v0.3.0 plans without TL;DRs are flagged Important but not Critical — the rest of the audit still proceeds and PASS verdict is still reachable if no other Critical findings exist.- scope item with a concrete file path or named symbol (when the work touches code). Legacy - [ ] / - [x] shapes are accepted silently — no finding either way for v0.3.2+ plans.**Exit criteria:** … scope item describing definition of done**Tests:** … scope item when the phase requires tests (omit when no tests are needed)Phases with vague scope ("update the UI", "improve performance") = Critical. Phases missing exit criteria = Critical. Phases missing any - scope item at all = Critical. Phases missing TL;DR = Important (not Critical).
Scan every "Phase" reference in the document:
1, 2, 3, …)0.5, 1.5)1A, 2B)Phase A, Phase B)Phase 0–5)Sub-Phases or Implementation Sub-Phases headingAny violation = Critical.
The context block's Depends on: line, plus any inline Depends on references, must specify the artifact that creates the dependency, not just the ticket:
Depends on: CI-22 (src/features/cases/lib/sf-links.ts helpers + i18n key + ADR-28 amendment)Depends on: CI-22Vague dependencies = Important.
Every evidence claim must be traceable:
ADR-NN or full path<repo-relative-path>:<line>Unresolvable or vague citations = Important. Fabricated citations (linked source does not exist) = Critical.
Bold-prefix callouts must use the prescribed labels:
**Decision:** … for settled choices**Rationale:** … for reasoning**Risk:** … for known risks**Mitigation:** … for risk responses**Note:** … for informational asidesBlockquotes (>) are used only for invariants/constraints and the top-of-file context block. GitHub-style > [!NOTE] admonitions are not used.
Misused callout labels = Suggestion.
If Open Questions is at the bottom = Important.
**Size:** or **Effort:** bolded scope items in any phaseSizing present = Important (will be deleted on next revision).
Scan every phase scope and every section other than Release:
gh pr create instructions inside a phasemain, master, or developPer-phase git commit and git push to the working branch are allowed — do not flag them.
Per-phase PR creation, merging, or review-request = Critical. The fix is to remove the per-phase PR prose and move it (if needed) into a single Release section at the bottom of the plan.
### Phase <N>: heading ends with one of ⏳ 🚧 ✅ ❌ as the last token on the line (separated from the phase name by exactly one space)Mixed conventions = Suggestion. Missing heading emoji = Important.
Per-bullet checkbox well-formedness is not audited (v0.3.2+). Plain - bullets are canonical; legacy - [ ]/- [x] shapes pass through silently.
Implementation Phases, Open Questions, and Resolved Questions must use the v0.3.0 list shape — not markdown tables.
### Phase <N>: <name> <emoji> H3 headings with - bulleted scope items (v0.3.2+; legacy - [ ]/- [x] accepted silently), not a | Phase | Name | Status | Scope | markdown table- **Q<N> — <question>:** ... lines, not a | Q | Blocking? | table- **Q<N> — <question>:** <resolution> lines, not a | Q | Resolution | tableAny of these three sections rendered as a markdown table (i.e., a header row with | delimiters) = Critical, pointing the user at planning-tools:master-plan-methodology for the v0.3.0 shape.
Narrow-cell tables elsewhere in the plan (Architecture matrices, Code Changes file × phase, Dependency tables, Cost summaries, etc.) are explicitly allowed and do not trigger this finding. The ban is scoped to wide-cell sections only.
The verifier emits findings in this exact shape:
# Verification Report: <plan filename>
> Verified: <date>
> Plan path: <path>
## Critical findings
### <#>: <Short title>
- **Location:** <file>:<line>
- **Rule violated:** <which audit dimension>
- **Quote:** <verbatim excerpt>
- **Fix:** <concrete fix>
## Important findings
### <#>: <Short title>
- **Location:** <file>:<line>
- **Rule:** <dimension>
- **Why:** <impact>
- **Fix:** <concrete fix>
## Suggestions
### <#>: <Short title>
- **Location:** <file>:<line>
- **Note:** <polish improvement>
## Summary
| Severity | Count |
|---|---|
| Critical | <n> |
| Important | <n> |
| Suggestion | <n> |
**Verdict:**
- `PASS` — zero Critical, ≤ 2 Important. Safe to append `> **Verified:** <date>` to the context block.
- `FAIL` — any Critical or > 2 Important. Plan must be revised.
**Top 3 highest-impact fixes:**
1. …
2. …
3. …
The verifier agent does not call AskUserQuestion — it emits the report only. The main conversation (in /planning-tools:plan-verify) presents the report and calls AskUserQuestion to ask the user whether to append the > **Verified:** YYYY-MM-DD callout to the context block when the verdict is PASS.
tools
This skill should be used when the user invokes any /plan-* command from the planning-tools plugin (/plan-context, /plan-master, /plan-open-questions, /plan-verify, /plan-tick, /plan-progress, /plan-delete), asks how Claude Code's plan files work, asks where plans are stored, asks to author or audit a multi-phase master planning document, asks how to walk through a plan's Open Questions interactively, asks how to write progress entries, or mentions ~/.claude/plans/ or .claude/planning-tools.local.md. Provides the index of planning-tools commands, the master-plan workflow lifecycle, the v0.3.0+ list-shape mandate (phases and questions as headings + bulleted scope items, never tables), the v0.3.2+ plain-bullet shape (no `- [ ]` checkboxes — heading emoji is the sole tick signal), the progress-entry methodology, and the mechanics of Claude Code's plan-mode file storage.
testing
This skill should be used when the user is adjusting spacing, padding, margins, content density, section gaps, vertical rhythm, or separation between elements. Also applies when reviewing whether a design feels cramped or too sparse, choosing between borders and whitespace for separation, or defining a spacing system. Covers the 4px/8px spacing system, macro vs micro whitespace, content density spectrum, separation techniques (whitespace > background shifts > borders), and vertical rhythm.
development
This skill should be used when the user is defining brand personality in design, choosing between illustration and photography, adding motion or animation, creating visual motifs, ensuring layout variety, customizing CSS framework defaults, or calibrating the level of creative expression for a given context. Covers Lavie & Tractinsky's expressive aesthetics, the expression spectrum (restrained to bold), brand personality translation, illustration systems, photography direction, and template independence.
development
This skill should be used when the user is establishing visual importance, designing headings, creating focal points, designing CTAs or buttons, arranging label-data relationships, implementing scanning patterns (F-pattern, Z-pattern), or ensuring one dominant element per screen. Covers the three levers of hierarchy (size, weight, color), three-tier information architecture, the 'emphasize by de-emphasizing' principle, CTA design, and label-data relationships.