with one click
verify
Verify phase deliverables match acceptance criteria
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Verify phase deliverables match acceptance criteria
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Initialize a Megazord project with configuration and planning structure
Systematic four-phase debugging (reproduce, isolate, root-cause, fix)
Socratic brainstorming to explore approaches before implementation
Execute the current phase plan (subagent or Agent Teams mode)
Show all available Megazord skills with descriptions and usage examples
Complete milestone lifecycle -- audit, archive, deferred items, and next version preparation
| name | verify |
| description | Verify phase deliverables match acceptance criteria |
| disable-model-invocation | false |
Verify that a phase achieved its GOAL by performing goal-backward verification against ROADMAP.md success criteria and PLAN.md must_haves. Spawns a verifier subagent via the Task tool that checks truths, artifacts (3-level), key links, and requirement coverage against the actual codebase. Produces VERIFICATION.md with results.
Note: This skill always works when invoked manually, regardless of the workflow.verifier config setting. The config toggle only controls whether /mz:go automatically suggests verification after execution.
Reference @skills/init/design-system.md for visual output formatting.
Reference @skills/shared/presentation-standards.md for content formatting rules.
Reference @skills/shared/terminology.md for official term definitions.
Reference @skills/verify/verifier.md for verification protocol and spawning patterns.
Output the stage banner:
+===============================================+
| MEGAZORD > VERIFY |
+===============================================+
Read .planning/megazord.config.json. If missing, display error and stop:
## Error
Project not initialized — no megazord.config.json found.
`/mz:init`
If config exists, continue loading:
.planning/STATE.md for current position..planning/ROADMAP.md for phase details and success criteria.Parse the user's message (text after /mz:verify) for arguments:
{phase_num} -- verify a specific phase (optional, defaults to current)--partial -- verify even if some plans are incomplete (skip completion check)--milestone {version} -- run milestone audit mode instead of phase verification (see Step 3b)Determine the plugin path for CLI commands:
plugin_path from the config JSON.plugin_path is not set in config, try ~/.claude/plugins/mz. Check if ~/.claude/plugins/mz/bin/megazord.mjs exists.## Error
Plugin path not configured.
`/mz:settings` to set plugin_path, or `/mz:init` to re-initialize.
Use this resolved path for all node {plugin_path}/bin/megazord.mjs commands below:
node {plugin_path}/bin/megazord.mjs tools plan incomplete --phase-dir {phase_dir}
.planning/phases/05-code-review-and-verification).## Error
Phase {N} not found in roadmap. Valid phases: {list}.
`/mz:status` to check current position.
Display:
> Target
Phase {N}: {Name} — {functional_sentence_from_goal}
The goal is already inline in the functional sentence — no separate "Goal:" line needed.
If --milestone {version} was provided, the skill enters milestone audit mode instead of the regular phase verification flow (Steps 4-7 are skipped).
Display:
> Milestone Audit: {version}
Determine which phases belong to this milestone:
.planning/MILESTONE.md exists with the specified version. If found, read the phases list from it.- [x]) and collect their phase numbers.Run the milestone audit via CLI tool:
node {plugin_path}/bin/megazord.mjs tools milestone audit --phases "{comma-separated phase numbers}"
Parse the JSON audit result.
Display audit results:
If all phases pass:
+===============================================+
| Milestone {version} Audit: PASSED |
+-----------------------------------------------+
| Phases verified: {N}/{N} |
| All verification gates passed. |
+===============================================+
Suggest: "Run /mz:plan to complete the milestone (archive and tag)."
If some phases fail:
+===============================================+
| Milestone {version} Audit: GAPS FOUND |
+-----------------------------------------------+
| Phases verified: {passed}/{total} |
| |
| Failed: |
| - Phase {N}: {Name} — {reason} |
| - Phase {M}: {Name} — No VERIFICATION.md |
+===============================================+
Suggest: "Run /mz:verify {N} for each failed phase."
Write MILESTONE-AUDIT.md in .planning/ with:
passed or gaps_foundDisplay Next Up block:
If passed:
## Next Up
**Milestone {version} audit passed.** Ready to archive.
`/mz:lifecycle`
<sub>`/clear` — start fresh context for the next step</sub>
If gaps found:
## Next Up
**Address gaps before closing milestone.**
`/mz:verify {N}` for Phase {N}: {Name}
<sub>`/clear` — start fresh context for the next step</sub>
Exit (do not proceed to regular phase verification).
If --milestone was NOT provided: Continue to Step 4 (regular phase verification flow).
node {plugin_path}/bin/megazord.mjs tools plan incomplete --phase-dir {phase_dir}
## Error
No plans found for Phase {N}: {Name}.
`/mz:plan {N}`
--partial was NOT provided:
Display warning listing incomplete plans. Ask user whether to proceed with partial verification or wait:
> Warning: Incomplete Plans
The following plans have not been executed:
- {plan_file_1}
- {plan_file_2}
Verification may report false gaps for artifacts in unexecuted plans.
Proceed with partial verification? (yes/no)
Or run with --partial to skip this check.
--partial was provided: proceed with a note:
> Note: Partial verification (--partial). Skipping completion check.
{plugin_path}/agents/mz-verifier.md content using the Read tool.<agent_role>
{content of agents/mz-verifier.md}
</agent_role>
<phase_goal>
{Phase goal from ROADMAP.md}
</phase_goal>
<success_criteria>
{Success criteria list from ROADMAP.md, numbered}
</success_criteria>
<plans>
{For each PLAN.md: filename, must_haves section from frontmatter, requirements field}
</plans>
<summaries>
{For each SUMMARY.md: filename, key accomplishments section, key-files, key-decisions}
</summaries>
<requirements>
{Requirement IDs mapped to this phase with their descriptions from REQUIREMENTS.md}
</requirements>
<verification_rules>
- Phase: {phase_number}
- Phase directory: {phase_dir}
- Report path: {phase_dir}/{padded}-VERIFICATION.md
- Mode: hybrid (automated first, user confirmation for ambiguous)
- Criteria sources: ROADMAP.md success criteria + PLAN.md must_haves
</verification_rules>
Spawn via Task tool:
subagent_type: "general-purpose"description: "Verify Phase {phase_number}: {phase name}"Wait for completion.
Parse the structured result (look for ## VERIFICATION COMPLETE).
Note: All file contents are read BEFORE spawning the Task subagent and embedded as inline text. @file references do NOT work across Task boundaries. This is the same pattern used by /mz:go for executor spawning (see skills/go/executor.md).
Parse the verification status from the structured result:
All truths verified, all artifacts exist and are wired, all requirements covered.
Display the strong phase completion banner first:
═══════════════════════════════════════════════════
### Phase {N}: {Name} — Complete
{Brief recap: what this phase delivered, 1-2 sentences}
═══════════════════════════════════════════════════
Then display verification stats:
+===============================================+
| Phase {N}: {Name} — Verification: PASSED |
+===============================================+
| Truths: {N}/{N} passed |
| Artifacts: {N}/{N} verified |
| Key Links: {N}/{N} wired |
| Requirements: {N}/{N} covered |
+===============================================+
Suggest advancing to next phase.
Some truths failed, artifacts missing, or requirements uncovered.
Display gaps clearly with details from VERIFICATION.md:
+===============================================+
| Phase {N}: {Name} — Verification: GAPS FOUND|
+===============================================+
| Truths: {passed}/{total} ({failed} failed) |
| Artifacts: {passed}/{total} |
| Key Links: {wired}/{total} |
| Requirements: {covered}/{total} |
+===============================================+
Then display each gap:
> Gaps
1. [FAILED] {truth/artifact/link description}
Evidence: {what was checked}
Expected: {what should exist}
Suggest running /mz:go to address gaps or re-planning.
Do NOT auto-advance the phase.
Some items need user confirmation.
Display the automated results (passed/failed items) first. Then present each UNCERTAIN item to the user one at a time:
> Human Verification Needed
1. {uncertain truth/artifact description}
Evidence checked: {what was verified}
Question: Does this satisfy the criteria? (yes/no/partial)
Collect user responses. Update the overall status based on responses:
Re-write VERIFICATION.md with user confirmations included.
Display Next Up block:
If passed:
## Next Up
**Plan Phase {N+1}: {NextName}** — {functional_sentence_of_next_phase}
`/mz:plan {N+1}`
<sub>`/clear` — start fresh context for the next step</sub>
If gaps_found:
## Next Up
**Address gaps in Phase {N}: {Name}** — fix issues, then re-verify
`/mz:go`
- Re-verify after fixes: `/mz:verify {N}`
<sub>`/clear` — start fresh context for the next step</sub>
If human_needed (after user confirms all): Update and proceed as passed or gaps_found based on user responses.
| Error | Step | Action |
|---|---|---|
| Config missing | Step 2 | Error box, suggest /mz:init. Stop. |
| ROADMAP.md missing | Step 2 | Error box, suggest /mz:plan. Stop. |
| Phase not found in ROADMAP | Step 3 | Error message with valid phase numbers. Stop. |
| No plans in phase | Step 4 | Error message, suggest /mz:plan. Stop. |
| Verifier subagent fails | Step 5 | Save error, display failure details. Stop. |
{plugin_path}/agents/mz-verifier.md) performs all verification logic. This skill orchestrates: load context, check completion, spawn verifier, handle result.{plugin_path} for CLI commands and agent files is resolved from config.plugin_path, falling back to ~/.claude/plugins/mz.