skills/df-plan-review/SKILL.md
Plan quality verification for dev-flow. Goal-backward analysis ensures plans WILL achieve their stated goal before execution burns context. ⚠️ MUST use when: (1) Reviewing Plan quality before approve (2) Wopal completes Plan writing and needs quality gate (3) User asks to "check plan", "verify plan", "review plan" (4) Plan enters planning status and needs pre-execution validation 🔴 Trigger automatically when Plan is ready for review, even if user doesn't explicitly say "review". Agent: rook (read-only verification subagent) Mode: verification, not execution
npx skillsauth add sampx/agent-tools df-plan-reviewInstall 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.
Goal-backward verification: Start from what the plan SHOULD deliver, verify it addresses that goal completely.
Plan completeness =/= Goal achievement
A task "create auth endpoint" can exist in the plan while password hashing is missing. The task exists but the goal "secure authentication" won't be achieved.
Question: Does every stated goal have implementing task(s)?
Why: Missing goal coverage = plan won't deliver what it promises.
Process:
Severity: BLOCKER if any goal component lacks coverage.
Question: Does every task have Files + Action + Verify + Done?
Why: Missing verification = can't confirm completion.
Required elements by task type:
auto: Files, Action, Verify, Donetdd: Files, Behavior, Implementation, Test commands, Expected outcomescheckpoint:*: N/A (marker tasks)Red flags: Missing <verify>, vague <action>, empty <files>
Severity: BLOCKER for missing required fields.
Question: Are task dependencies valid and wave assignment consistent?
Why: Broken dependencies = execution will fail at runtime.
Process:
Red flags: Wave 2 referencing Wave 3 output, circular A→B→A
Severity: BLOCKER for circular dependencies or impossible wave order.
Question: Are artifacts wired together, not just created in isolation?
Why: Component created but not imported = dead code.
Process:
Severity: WARNING for missing wiring in Action descriptions.
Question: Can each Verify command actually prove completion?
Why: "Manual — later" or "quality is good" = unverifiable.
Valid patterns:
rg -c 'pattern' file ≥ 1pytest tests/ passesflow.sh complete succeedsInvalid patterns:
Severity: BLOCKER for unverifiable commands without explicit manual reason.
Question: Will plan complete within context budget and scope boundaries?
Why: 5+ tasks/plan = quality degradation. Scope exceeding In Scope = uncontrolled expansion.
Thresholds:
Red flags: Plan includes Out of Scope items, 5+ tasks, complex work crammed into one wave
Severity: BLOCKER for Out of Scope violations or extreme complexity.
CRITICAL: All six dimensions MUST be checked before outputting any report.
At review start, create TodoWrite items for each dimension:
[ ] 1. Goal Coverage[ ] 2. Task Completeness[ ] 3. Dependency & Wave Correctness[ ] 4. Key Links Planned[ ] 5. Verification Falsifiability[ ] 6. Scope & Context MatchDuring review, mark only ONE in_progress at a time. Mark completed immediately after dimension-specific checks are done.
FORBIDDEN to output final report (VERIFICATION PASSED / ISSUES FOUND) while any dimension is still pending or in_progress. Wopal uses your todo completion rate to track review progress.
Context low fallback: If context is running out and some dimensions remain unchecked → output a partial report with an explicit UNCOVERED DIMENSIONS section listing which dimensions were NOT checked and why.
Most insidious failure: Plan claims to implement a decision but delivers a shadow version.
Pattern scan: Look for scope reduction language in Actions:
Cross-reference: Match against Plan goal and Technical Context decisions. If reduced from stated requirement → BLOCKER.
Fix path: Either deliver fully or propose phase split, don't silently shrink.
Bounded iteration: Max 3 revision rounds to prevent infinite planner-checker对抗.
Loop behavior:
## VERIFICATION PASSED
**Plan**: {plan-name}
**Status**: Ready for approve
### Goal Coverage
| Goal Component | Tasks | Coverage |
|----------------|-------|----------|
| {component-1} | 1,2 | Complete |
| {component-2} | 3 | Complete |
### Plan Summary
| Metric | Value | Status |
|--------|-------|--------|
| Tasks | 3 | ✅ Within budget |
| Files | 6 | ✅ Within budget |
| Waves | 2 | ✅ Valid |
Plan verified. Proceed to `approve`.
## ISSUES FOUND
**Plan**: {plan-name}
**Issues**: {N} blocker(s), {Y} warning(s), {Z} info
### Blockers (must fix)
**1. [{dimension}] {description}**
- Task: {task-number}
- Issue: {specific problem}
- Fix: {concrete fix hint}
### Warnings (should fix)
**1. [{dimension}] {description}**
- Fix: {suggestion}
### Recommendation
Return to planner with feedback. Max {remaining} revision rounds.
DO NOT:
Load detailed rubric when needed:
references/review-rubric.md — Six-dimension detailed process, scope reduction patterns, revision loop rules, issue format specificationPlan goal: "Implement secure authentication with login, logout, session persistence"
Issue found:
issue:
dimension: goal_coverage
severity: blocker
description: "Logout functionality has no implementing task"
plan: "143-..."
goal_component: "logout"
fix_hint: "Add Task for logout endpoint or confirm logout is deferred with explicit reason"
Technical Context D-26: "Config displays calculated costs in impulses from pricing table"
Task Action: "D-26 cost references (v1 — static labels). NOT wired to billing"
Issue found:
issue:
dimension: scope_reduction
severity: blocker
description: "Plan reduces D-26 from calculated costs to static hardcoded labels"
plan: "143-..."
task: 1
decision: "D-26: Config displays calculated costs"
plan_action: "static labels v1 — NOT wired"
fix_hint: "Either implement D-26 fully or split phase, don't silently reduce"
tools
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
testing
Master specification for WopalSpace. [MUST LOAD FIRST] — Load this skill when Wopal is uncertain how to proceed, task intent is ambiguous, or performing ontology/space maintenance. Triggers: Ambiguous task intent, "what workflow to use", "what skill to load", skill management (install/remove/search), space maintenance (worktrees, sync, PR contribution, promote), multi-space management. [CRITICAL] MUST LOAD whenever interacting with ontology repo operations (update/sync/contribute/promote/PR), even if the user does not explicitly say "upstream sync".
development
Workspace-level Git worktree management — create, list, remove, and prune isolated development environments. Use this skill whenever the user needs to create a worktree, set up an isolated workspace, work on multiple features in parallel, list existing worktrees, check what worktrees exist, remove or delete a worktree, clean up stale worktrees, or manage git working trees in any way. Triggers include "create worktree", "new worktree", "list worktrees", "show worktrees", "remove worktree", "delete worktree", "clean up worktree", "prune worktree", "isolated environment", "parallel development", "worktree for <project>", or any request involving git worktree operations.
development
Issue/Plan-driven development workflow. Tasks must be backed by a GitHub Issue or Plan. Trigger: issue references like #14, creating issues, creating plans, implementing plans, executing plans, checking plans, verifying plans, Plan lifecycle transitions (approve/complete/verify/archive), decomposing PRDs into Issues. Skip: spec-driven workflows, research/discussion/explanation only, small ad-hoc changes that don't need an Issue or Plan.