agent-patterns-plugin/skills/verify-before-plan/SKILL.md
Verify orchestrator premises (file counts, build state, artefact presence) before dispatching parallel subagents. Use when a wave's briefs cite a number, path, or behaviour not yet checked.
npx skillsauth add laurigates/claude-plugins verify-before-planInstall 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.
A premise is anything the orchestrator's plan asserts about the world without having looked: "there are 41 SKILL.md files that need editing," "the deprecated endpoint still has callers," "build is green on main," "the agent must rewrite the manifest." Before a wave of parallel subagents fans out against that premise, verify it with a small read-only probe. A wrong premise propagates to every brief in the wave and wastes an entire wave's worth of work — restarting is the only honest salvage.
| Use this skill when... | Skip when... | |---|---| | About to dispatch ≥2 parallel agents whose briefs cite a number, state, or path | Single-agent delegation — verify inline | | The premise was carried in from an earlier message and not re-checked this session | The premise was produced by a tool call earlier in this same session | | The user's report describes a symptom; the plan cites a cause | Waves entirely independent of repo state (e.g. brainstorming) | | The plan assumes a tool/library/agent does X based on its name or docs | The behaviour is covered by a passing test the wave will re-run | | The plan inherits a premise from another agent's return contract | The return contract already cites file:line evidence for the premise |
This skill sits before parallel-agent-dispatch in the dispatch
sequence. parallel-agent-dispatch covers the contract; this skill covers
the assumption the contract is built on.
State the load-bearing facts in one or two sentences, in the form the wave's briefs will reference. Numbers, paths, and "does X" claims must be explicit — "all the affected plugins" is not yet a premise.
| Premise shape | Verifier |
|---|---|
| File count / "N occurrences of …" | Glob or Grep -c directly from the main thread |
| "Does this tool/agent do X?" | Dispatch one read-only general-purpose agent: "Report what <thing> actually does, with file:line citations" |
| "Build is green / artefact exists" | One Bash call (gh pr checks, ls path, git log --branches) |
| "User's bug is X" | Read the failing log; do not patch the symptom |
| Manifest / counter snapshot | Read the file and quote the relevant lines |
Inline the verifier if it is one to three tool calls. Use a one-shot investigation agent only when the answer requires multi-file synthesis.
The verifier — whether inline calls or a dispatched agent — must report:
## Premise
<one-line restatement of what is being checked>
## Evidence
- file:line — <quoted finding>
- file:line — <quoted finding>
## Verdict
- confirmed | refuted | partial: <what changed>
- exact count / value: <N>
- sample paths: <up to 5>
## Implicit assumptions surfaced
- <assumptions the verifier had to make to answer>
- empty is fine — section must exist
Refuse to dispatch the wave until this report exists. "I'll check while dispatching" loses the salvage argument before it starts.
If confirmed, dispatch as planned. If refuted or partial, revise the
plan: shrink the file scope, re-allocate per-agent IDs, drop agents that no
longer have work, re-write the brief that cites the refuted fact. Only then
dispatch.
| Premise | How it fails | Verifier |
|---|---|---|
| "There are 41 SKILL.md files needing edits" | Actual was 28 — some plugins have no skills; 13 agents had empty briefs | Glob("**/SKILL.md") then count |
| "git-repo-agent supports X" (from the name) | Name ≠ behaviour; agent did not implement X | Read agents/git-repo-agent/SKILL.md |
| "The user says the bug is X" | Bug was a config typo two layers up; the X patch did nothing | Read the failing log / repro |
| "The plan says clear stuck Jobs" | Real root cause was an IdP password mismatch in ConfigMap; jobs were a symptom | Re-spelunk with one read-only agent |
| "Manifest counter is at WO-012" | Counter was bumped by a coworker mid-session | Read the manifest as the last act before allocation |
| "Build is green" (from morning standup) | Broke an hour ago; one wave-member tripped over the failing step | gh pr checks or gh run list |
| "All callers of the deprecated API are gone" | Two remained in a vendored copy outside the search root | Grep with a wide-enough path |
The unifying pattern: the premise was true at some past moment, but the current session has not confirmed it. Time is the silent invalidator.
| With … | Slot it in by … |
|---|---|
| parallel-agent-dispatch | Verify before the worktree-preflight; preflight assumes the file scope is right |
| wave-based-dispatch | Verify per wave — a Phase-1 wave's return contract is a premise for Phase 2 |
| exclusive-lock-dispatch | Verify the lock-holder list is current; locks come and go |
| agent-teams | The Lead Preflight Checklist's "file-scope and pin-budget" entries are premises |
confirmed — or plan revised before dispatch| Mistake | Correct approach | |---|---| | "Based on the name, X probably does Y" | Dispatch a read-only probe; cite file:line | | "The user says the bug is X, so we patch X" | Read the failing repro before any patch | | "The plan's remediation is X" | Verify the plan's premise; remediations inherit its truth-value | | Verifying after dispatch ("I'll check while they work") | Verify first — re-running a wave costs more than the probe | | Skipping the Verdict line — just summarising | The wave's briefs need a copy-pasteable fact, not a narrative |
parallel-agent-dispatch — the
dispatch contract whose preflight this skill protectswave-based-dispatch — per-wave
premise verification fits cleanly between phasesexclusive-lock-dispatch — lock
inventory is itself a premise.claude/rules/regression-testing.md — landing a verifier as a script
check when a premise-failure recurswrong_approach and initial_misdiagnosis signals across
284 sessionstesting
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.