feat(workflow): surface /gsd:ui-phase recommendation for UI-heavy phases

- new-project Step 9: suggest /gsd:ui-phase when Phase 1 has UI hint
- progress Route B: show /gsd:ui-phase in options when current phase has UI
- progress Route C: show /gsd:ui-phase in options when next phase has UI
- Detection uses **UI hint**: yes annotation from roadmapper output

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-03-22 10:17:20 -04:00
parent f28c114527
commit d93bbb5bb2
2 changed files with 96 additions and 1 deletions

View File

@@ -1131,6 +1131,37 @@ Exit skill and invoke SlashCommand("/gsd:discuss-phase 1 --auto")
**If interactive mode:**
Check if Phase 1 has UI indicators (look for `**UI hint**: yes` in Phase 1 detail section of ROADMAP.md):
```bash
PHASE1_SECTION=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase 1 2>/dev/null)
PHASE1_HAS_UI=$(echo "$PHASE1_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
```
**If Phase 1 has UI (`PHASE1_HAS_UI` is `true`):**
```
───────────────────────────────────────────────────────────────
## ▶ Next Up
**Phase 1: [Phase Name]** — [Goal from ROADMAP.md]
/gsd:discuss-phase 1 — gather context and clarify approach
<sub>/clear first → fresh context window</sub>
---
**Also available:**
- /gsd:ui-phase 1 — generate UI design contract (recommended for frontend phases)
- /gsd:plan-phase 1 — skip discussion, plan directly
───────────────────────────────────────────────────────────────
```
**If Phase 1 has no UI:**
```
───────────────────────────────────────────────────────────────

View File

@@ -228,6 +228,13 @@ Read its `<objective>` section.
Check if `{phase_num}-CONTEXT.md` exists in phase directory.
Check if current phase has UI indicators:
```bash
PHASE_SECTION=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "${CURRENT_PHASE}" 2>/dev/null)
PHASE_HAS_UI=$(echo "$PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
```
**If CONTEXT.md exists:**
```
@@ -245,7 +252,30 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
---
```
**If CONTEXT.md does NOT exist:**
**If CONTEXT.md does NOT exist AND phase has UI (`PHASE_HAS_UI` is `true`):**
```
---
## ▶ Next Up
**Phase {N}: {Name}** — {Goal from ROADMAP.md}
`/gsd:discuss-phase {phase}` — gather context and clarify approach
<sub>`/clear` first → fresh context window</sub>
---
**Also available:**
- `/gsd:ui-phase {phase}` — generate UI design contract (recommended for frontend phases)
- `/gsd:plan-phase {phase}` — skip discussion, plan directly
- `/gsd:list-phase-assumptions {phase}` — see Claude's assumptions
---
```
**If CONTEXT.md does NOT exist AND phase has no UI:**
```
---
@@ -344,6 +374,40 @@ State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
Read ROADMAP.md to get the next phase's name and goal.
Check if next phase has UI indicators:
```bash
NEXT_PHASE_SECTION=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "$((Z+1))" 2>/dev/null)
NEXT_HAS_UI=$(echo "$NEXT_PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
```
**If next phase has UI (`NEXT_HAS_UI` is `true`):**
```
---
## ✓ Phase {Z} Complete
## ▶ Next Up
**Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
`/gsd:discuss-phase {Z+1}` — gather context and clarify approach
<sub>`/clear` first → fresh context window</sub>
---
**Also available:**
- `/gsd:ui-phase {Z+1}` — generate UI design contract (recommended for frontend phases)
- `/gsd:plan-phase {Z+1}` — skip discussion, plan directly
- `/gsd:verify-work {Z}` — user acceptance test before continuing
---
```
**If next phase has no UI:**
```
---