diff --git a/commands/gsd/verify-work.md b/commands/gsd/verify-work.md index b5c9e13bc..d117ea8d9 100644 --- a/commands/gsd/verify-work.md +++ b/commands/gsd/verify-work.md @@ -14,9 +14,9 @@ allowed-tools: Validate built features through conversational testing with persistent state. -Purpose: Confirm what Claude built actually works from user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, automatically diagnose, plan fixes, and prepare for execution. +Purpose: Confirm what Claude built actually works from user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, record them in UAT.md and route user to /gsd:plan-phase --gaps in a fresh context. -Output: {phase}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for /gsd:execute-phase +Output: {phase}-UAT.md tracking all test results. If issues found: structured gaps ready for /gsd:plan-phase --gaps @@ -35,5 +35,5 @@ Phase: $ARGUMENTS (optional) Execute the verify-work workflow from @~/.claude/get-shit-done/workflows/verify-work.md end-to-end. -Preserve all workflow gates (session management, test presentation, diagnosis, fix planning, routing). +Preserve all workflow gates (session management, test presentation, gap recording, routing). diff --git a/get-shit-done/workflows/execute-phase.md b/get-shit-done/workflows/execute-phase.md index e6fefaa08..1344b2806 100644 --- a/get-shit-done/workflows/execute-phase.md +++ b/get-shit-done/workflows/execute-phase.md @@ -226,94 +226,52 @@ After all waves: ``` - -Verify phase achieved its GOAL, not just completed tasks. - -``` -Task( - prompt="Verify phase {phase_number} goal achievement. -Phase directory: {phase_dir} -Phase goal: {goal from ROADMAP.md} -Check must_haves against actual codebase. Create VERIFICATION.md.", - subagent_type="gsd-verifier", - model="{verifier_model}" -) -``` - -Read status: -```bash -grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' ' -``` - -| Status | Action | -|--------|--------| -| `passed` | → update_roadmap | -| `human_needed` | Present items for human testing, get approval or feedback | -| `gaps_found` | Present gap summary, offer `/gsd:plan-phase {phase} --gaps` | - -**If human_needed:** -``` -## ✓ Phase {X}: {Name} — Human Verification Required - -All automated checks passed. {N} items need human testing: - -{From VERIFICATION.md human_verification section} - -"approved" → continue | Report issues → gap closure -``` - -**If gaps_found:** -``` -## ⚠ Phase {X}: {Name} — Gaps Found - -**Score:** {N}/{M} must-haves verified -**Report:** {phase_dir}/{phase}-VERIFICATION.md - -### What's Missing -{Gap summaries from VERIFICATION.md} - ---- -## ▶ Next Up - -`/gsd:plan-phase {X} --gaps` - -`/clear` first → fresh context window - -Also: `cat {phase_dir}/{phase}-VERIFICATION.md` — full report -Also: `/gsd:verify-work {X}` — manual testing first -``` - -Gap closure cycle: `/gsd:plan-phase {X} --gaps` reads VERIFICATION.md → creates gap plans with `gap_closure: true` → user runs `/gsd:execute-phase {X} --gaps-only` → verifier re-runs. - - - -Mark phase complete in ROADMAP.md (date, status). - -```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs(phase-{X}): complete phase execution" --files .planning/ROADMAP.md .planning/STATE.md .planning/phases/{phase_dir}/*-VERIFICATION.md .planning/REQUIREMENTS.md -``` - - -**If more phases:** +**Route based on execution mode:** + +**If `--gaps-only` (gap closure execution):** + ``` -## Next Up +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + GSD ► GAP FIXES EXECUTED +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -**Phase {X+1}: {Name}** — {Goal} +Phase {X}: {Name} — gap closure plans executed. -`/gsd:plan-phase {X+1}` +─────────────────────────────────────────────────────────────── -`/clear` first for fresh context +## ▶ Next Up + +**Re-verify fixes** — confirm gaps are closed + +`/clear` then `/gsd:verify-work {X}` + +─────────────────────────────────────────────────────────────── ``` -**If milestone complete:** +**If normal execution (no flags):** + ``` -MILESTONE COMPLETE! +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + GSD ► EXECUTION COMPLETE +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -All {N} phases executed. +Phase {X}: {Name} — all plans executed. -`/gsd:complete-milestone` +─────────────────────────────────────────────────────────────── + +## ▶ Next Up + +**Verify what was built** — manual acceptance testing + +`/clear` then `/gsd:verify-work {X}` + +─────────────────────────────────────────────────────────────── + +**Also available:** +- `/gsd:plan-phase {X+1}` — skip verification, plan next phase +- `/gsd:complete-milestone` — if all phases done ``` diff --git a/get-shit-done/workflows/verify-work.md b/get-shit-done/workflows/verify-work.md index c3e11886b..34cfe6cb3 100644 --- a/get-shit-done/workflows/verify-work.md +++ b/get-shit-done/workflows/verify-work.md @@ -311,7 +311,31 @@ Present summary: [List from Issues section] ``` -**If issues > 0:** Proceed to `diagnose_issues` +**If issues > 0:** + +``` +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + GSD ► ISSUES RECORDED +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +{N} issue(s) recorded in UAT.md with structured gaps. + +| # | Test | Severity | Issue | +|---|------|----------|-------| +[table of issues from Gaps section] + +─────────────────────────────────────────────────────────────── + +## ▶ Next Up + +**Plan fixes** in a fresh context (saves tokens): + +`/clear` then `/gsd:plan-phase {phase} --gaps` + +This will read the UAT gaps and create targeted fix plans. + +─────────────────────────────────────────────────────────────── +``` **If issues == 0:** ``` @@ -320,203 +344,6 @@ All tests passed. Ready to continue. - `/gsd:plan-phase {next}` — Plan next phase - `/gsd:execute-phase {next}` — Execute next phase ``` - - - -**Diagnose root causes before planning fixes:** - -``` ---- - -{N} issues found. Diagnosing root causes... - -Spawning parallel debug agents to investigate each issue. -``` - -- Load diagnose-issues workflow -- Follow @~/.claude/get-shit-done/workflows/diagnose-issues.md -- Spawn parallel debug agents for each issue -- Collect root causes -- Update UAT.md with root causes -- Proceed to `plan_gap_closure` - -Diagnosis runs automatically - no user prompt. Parallel agents investigate simultaneously, so overhead is minimal and fixes are more accurate. - - - -**Auto-plan fixes from diagnosed gaps:** - -Display: -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - GSD ► PLANNING FIXES -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -◆ Spawning planner for gap closure... -``` - -Spawn gsd-planner in --gaps mode: - -``` -Task( - prompt=""" - - -**Phase:** {phase_number} -**Mode:** gap_closure - -**UAT with diagnoses:** -@.planning/phases/{phase_dir}/{phase}-UAT.md - -**Project State:** -@.planning/STATE.md - -**Roadmap:** -@.planning/ROADMAP.md - - - - -Output consumed by /gsd:execute-phase -Plans must be executable prompts. - -""", - subagent_type="gsd-planner", - model="{planner_model}", - description="Plan gap fixes for Phase {phase}" -) -``` - -On return: -- **PLANNING COMPLETE:** Proceed to `verify_gap_plans` -- **PLANNING INCONCLUSIVE:** Report and offer manual intervention - - - -**Verify fix plans with checker:** - -Display: -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - GSD ► VERIFYING FIX PLANS -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -◆ Spawning plan checker... -``` - -Initialize: `iteration_count = 1` - -Spawn gsd-plan-checker: - -``` -Task( - prompt=""" - - -**Phase:** {phase_number} -**Phase Goal:** Close diagnosed gaps from UAT - -**Plans to verify:** -@.planning/phases/{phase_dir}/*-PLAN.md - - - - -Return one of: -- ## VERIFICATION PASSED — all checks pass -- ## ISSUES FOUND — structured issue list - -""", - subagent_type="gsd-plan-checker", - model="{checker_model}", - description="Verify Phase {phase} fix plans" -) -``` - -On return: -- **VERIFICATION PASSED:** Proceed to `present_ready` -- **ISSUES FOUND:** Proceed to `revision_loop` - - - -**Iterate planner ↔ checker until plans pass (max 3):** - -**If iteration_count < 3:** - -Display: `Sending back to planner for revision... (iteration {N}/3)` - -Spawn gsd-planner with revision context: - -``` -Task( - prompt=""" - - -**Phase:** {phase_number} -**Mode:** revision - -**Existing plans:** -@.planning/phases/{phase_dir}/*-PLAN.md - -**Checker issues:** -{structured_issues_from_checker} - - - - -Read existing PLAN.md files. Make targeted updates to address checker issues. -Do NOT replan from scratch unless issues are fundamental. - -""", - subagent_type="gsd-planner", - model="{planner_model}", - description="Revise Phase {phase} plans" -) -``` - -After planner returns → spawn checker again (verify_gap_plans logic) -Increment iteration_count - -**If iteration_count >= 3:** - -Display: `Max iterations reached. {N} issues remain.` - -Offer options: -1. Force proceed (execute despite issues) -2. Provide guidance (user gives direction, retry) -3. Abandon (exit, user runs /gsd:plan-phase manually) - -Wait for user response. - - - -**Present completion and next steps:** - -``` -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - GSD ► FIXES READY ✓ -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -**Phase {X}: {Name}** — {N} gap(s) diagnosed, {M} fix plan(s) created - -| Gap | Root Cause | Fix Plan | -|-----|------------|----------| -| {truth 1} | {root_cause} | {phase}-04 | -| {truth 2} | {root_cause} | {phase}-04 | - -Plans verified and ready for execution. - -─────────────────────────────────────────────────────────────── - -## ▶ Next Up - -**Execute fixes** — run fix plans - -`/clear` then `/gsd:execute-phase {phase} --gaps-only` - -─────────────────────────────────────────────────────────────── -``` - @@ -562,9 +389,7 @@ Default to **major** if unclear. User can correct if needed. - [ ] Severity inferred from description (never asked) - [ ] Batched writes: on issue, every 5 passes, or completion - [ ] Committed on completion -- [ ] If issues: parallel debug agents diagnose root causes -- [ ] If issues: gsd-planner creates fix plans (gap_closure mode) -- [ ] If issues: gsd-plan-checker verifies fix plans -- [ ] If issues: revision loop until plans pass (max 3 iterations) -- [ ] Ready for `/gsd:execute-phase --gaps-only` when complete +- [ ] If issues: gaps recorded in structured YAML in UAT.md +- [ ] If issues: user routed to `/gsd:plan-phase {N} --gaps` in fresh context +- [ ] If no issues: user routed to next phase