Skip to main content

Overview

The /gsd:verify-work command validates that built features actually work from a user’s perspective. This is manual testing - you test each feature and report whether it works or what’s wrong.

Why Manual Verification

Automated verification (during execute-phase) checks:
  • Code exists
  • Tests pass
  • Requirements are covered
But it can’t verify:
  • User experience - Does the flow make sense?
  • Visual correctness - Does it look right?
  • Edge cases - Does error handling work in practice?
  • Integration feel - Do pieces fit together?
Verify-work is where you use what Claude built and confirm it matches your vision.

What It Does

1

Extract Testable Deliverables

Reads phase plans and identifies user-facing features.
2

Present Tests One-by-One

Shows each deliverable as a yes/no question.
3

Capture Feedback

For failures, asks what’s wrong (plain text, no interrogation).
4

Diagnose Issues

Spawns debug agents to find root causes.
5

Create Fix Plans

Generates verified PLAN.md files for immediate re-execution.
Output: {phase_num}-UAT.md tracking all results. If issues found: diagnosed fix plans ready for /gsd:execute-phase --gaps-only.

Command Usage

Tests all deliverables from phase 2.

Conversational Testing

Verify-work presents one test at a time:

Response Options

Feature works as expected.
Be specific about failures. β€œDoesn’t work” is vague. β€œSubmit button does nothing when clicked” helps debug agents find the issue faster.

Automatic Diagnosis

When you report a failure, GSD:
1

Spawn Debug Agent

Loads phase context, plan details, and execution summary.
2

Investigate Root Cause

Examines code, tests, and configuration.
3

Identify Fix

Determines what needs to change.
4

Create Gap Plan

Generates a PLAN.md file marked as gap_closure: true.

Gap Closure Plans

Fix plans are standard PLAN.md files with one difference:
Gap plans are executed with /gsd:execute-phase 2 --gaps-only, which runs only plans marked gap_closure: true.

UAT Output

Results are saved to {phase_num}-UAT.md:

Session Persistence

UAT sessions are saved after each test:
If you stop mid-session, the next run resumes where you left off:

Fixing Issues

After UAT identifies problems:
1

Review Fix Plans

Check that fix plans make sense before executing.
2

Execute Gap Plans

Runs only the fix plans, skips already-completed work.
3

Re-Test

Test again to confirm fixes worked.
4

Pass All Tests

Once everything passes:

Example Full Session

1

Start verification

2

Test 1 - Success

3

Test 2 - Failure

4

Test 3 - Success

5

Test 4 - Skip

6

Session Complete

7

Fix and Re-Test

Tips

Test immediately after execution. Don’t wait until all phases are done - catch issues early.
Focus on user workflows. Don’t test individual functions. Test complete features from a user’s perspective.
Use real data. Test with realistic inputs, not just β€œtest@test.com” and β€œpassword123”.
If diagnosis repeatedly fails to find the issue, provide more detail: error messages, console output, screenshots, or exact steps to reproduce.

When to Skip Verification

You might skip verify-work if:
  • Phase is purely technical (refactoring, optimization)
  • Automated tests cover everything adequately
  • You’re prototyping rapidly and will test later
  • Phase deliverables aren’t user-facing
Even if you skip, UAT findings are valuable before shipping. Consider running verify-work before /gsd:complete-milestone.

Next Steps

After verification:

Next Phase

Start discussing and planning the next phase

Complete Milestone

If all phases verified, complete the milestone