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