feat: add GSD brand system for consistent UI

Add ui-brand.md reference with visual patterns:
- Stage banners with GSD ► prefix
- Checkpoint boxes (62-char width)
- Status symbols vocabulary
- Next Up routing blocks

Update orchestrators to use branded output.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Lex Christopherson
2026-01-16 11:51:57 -06:00
parent 6ae0923c29
commit daa54737cf
6 changed files with 329 additions and 52 deletions

View File

@@ -313,10 +313,14 @@ Use subagents for autonomous work. Reserve main context for user interaction.
## UX Patterns
**Visual patterns:** `get-shit-done/references/ui-brand.md`
Orchestrators @-reference ui-brand.md for stage banners, checkpoint boxes, status symbols, and completion displays.
### "Next Up" Format
```markdown
---
───────────────────────────────────────────────────────────────
## ▶ Next Up
@@ -326,13 +330,13 @@ Use subagents for autonomous work. Reserve main context for user interaction.
<sub>`/clear` first → fresh context window</sub>
---
───────────────────────────────────────────────────────────────
**Also available:**
- Alternative option
- Another option
---
───────────────────────────────────────────────────────────────
```
### Decision Gates

View File

@@ -24,6 +24,7 @@ Context budget: ~15% orchestrator, 100% fresh per subagent.
<execution_context>
@~/.claude/get-shit-done/references/principles.md
@~/.claude/get-shit-done/references/ui-brand.md
@~/.claude/get-shit-done/workflows/execute-phase.md
</execution_context>
@@ -108,11 +109,16 @@ After verification completes, route based on status:
**Route A: Phase verified, more phases remain**
```
## ✓ Phase {Z}: {Name} Complete
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► PHASE {Z} COMPLETE ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
All {Y} plans finished. Phase goal verified.
**Phase {Z}: {Name}**
---
{Y} plans executed
Goal verified ✓
───────────────────────────────────────────────────────────────
## ▶ Next Up
@@ -122,14 +128,13 @@ All {Y} plans finished. Phase goal verified.
<sub>`/clear` first → fresh context window</sub>
---
───────────────────────────────────────────────────────────────
**Also available:**
- `/gsd:verify-work {Z}` — manual acceptance testing before continuing
- `/gsd:discuss-phase {Z+1}` — gather context first
- `/gsd:research-phase {Z+1}` — investigate unknowns
---
───────────────────────────────────────────────────────────────
```
---
@@ -137,13 +142,16 @@ All {Y} plans finished. Phase goal verified.
**Route B: Phase verified, milestone complete**
```
🎉 ALL PHASES COMPLETE!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► MILESTONE COMPLETE 🎉
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## ✓ Phase {Z}: {Name} Complete
**v1.0**
All {N} phases finished. Phase goals verified.
{N} phases completed
All phase goals verified ✓
---
───────────────────────────────────────────────────────────────
## ▶ Next Up
@@ -153,14 +161,13 @@ All {N} phases finished. Phase goals verified.
<sub>`/clear` first → fresh context window</sub>
---
───────────────────────────────────────────────────────────────
**Also available:**
- `/gsd:verify-work` — manual acceptance testing
- `/gsd:complete-milestone` — skip audit, archive directly
- `/gsd:add-phase <description>` — add another phase first
---
───────────────────────────────────────────────────────────────
```
---
@@ -168,16 +175,20 @@ All {N} phases finished. Phase goals verified.
**Route C: Gaps found — need additional planning**
```
## ⚠ Phase {Z}: {Name} — Gaps Found
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► PHASE {Z} GAPS FOUND ⚠
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**Score:** {N}/{M} must-haves verified
**Report:** .planning/phases/{phase_dir}/{phase}-VERIFICATION.md
**Phase {Z}: {Name}**
Score: {N}/{M} must-haves verified
Report: `.planning/phases/{phase_dir}/{phase}-VERIFICATION.md`
### What's Missing
{Extract gap summaries from VERIFICATION.md}
---
───────────────────────────────────────────────────────────────
## ▶ Next Up
@@ -187,13 +198,13 @@ All {N} phases finished. Phase goals verified.
<sub>`/clear` first → fresh context window</sub>
---
───────────────────────────────────────────────────────────────
**Also available:**
- `cat .planning/phases/{phase_dir}/{phase}-VERIFICATION.md` — see full report
- `/gsd:verify-work {Z}` — manual testing before planning
---
───────────────────────────────────────────────────────────────
```
After user runs `/gsd:plan-phase {Z} --gaps`:

View File

@@ -12,6 +12,10 @@ allowed-tools:
- AskUserQuestion
---
<execution_context>
@~/.claude/get-shit-done/references/ui-brand.md
</execution_context>
<objective>
Execute a single PLAN.md file by spawning the `gsd-executor` subagent.

View File

@@ -31,6 +31,7 @@ This is the most leveraged moment in any project. Deep questioning here means be
<execution_context>
@~/.claude/get-shit-done/references/questioning.md
@~/.claude/get-shit-done/references/ui-brand.md
@~/.claude/get-shit-done/templates/project.md
@~/.claude/get-shit-done/templates/requirements.md
@@ -93,6 +94,14 @@ Exit command.
## Phase 3: Deep Questioning
**Display stage banner:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► QUESTIONING
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
**Open the conversation:**
Ask inline (freeform, NOT AskUserQuestion):
@@ -291,7 +300,14 @@ Use AskUserQuestion:
**If "Research first":**
Display: `Researching [domain] ecosystem...`
Display stage banner:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► RESEARCHING
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Researching [domain] ecosystem...
```
Create research directory:
```bash
@@ -304,6 +320,15 @@ Check if this is greenfield or subsequent milestone:
- If no "Validated" requirements in PROJECT.md → Greenfield (building from scratch)
- If "Validated" requirements exist → Subsequent milestone (adding to existing app)
Display spawning indicator:
```
◆ Spawning 4 researchers in parallel...
→ Stack research
→ Features research
→ Architecture research
→ Pitfalls research
```
Spawn 4 parallel gsd-project-researcher agents with rich context:
```
@@ -343,6 +368,7 @@ Your STACK.md feeds into roadmap creation. Be prescriptive:
<output>
Write to: .planning/research/STACK.md
Use template: ~/.claude/get-shit-done/templates/research-project/STACK.md
DO NOT commit. The synthesizer agent commits all research files together.
</output>
", subagent_type="gsd-project-researcher", description="Stack research")
@@ -382,6 +408,7 @@ Your FEATURES.md feeds into requirements definition. Categorize clearly:
<output>
Write to: .planning/research/FEATURES.md
Use template: ~/.claude/get-shit-done/templates/research-project/FEATURES.md
DO NOT commit. The synthesizer agent commits all research files together.
</output>
", subagent_type="gsd-project-researcher", description="Features research")
@@ -421,6 +448,7 @@ Your ARCHITECTURE.md informs phase structure in roadmap. Include:
<output>
Write to: .planning/research/ARCHITECTURE.md
Use template: ~/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md
DO NOT commit. The synthesizer agent commits all research files together.
</output>
", subagent_type="gsd-project-researcher", description="Architecture research")
@@ -460,6 +488,7 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
<output>
Write to: .planning/research/PITFALLS.md
Use template: ~/.claude/get-shit-done/templates/research-project/PITFALLS.md
DO NOT commit. The synthesizer agent commits all research files together.
</output>
", subagent_type="gsd-project-researcher", description="Pitfalls research")
```
@@ -488,12 +517,32 @@ Commit after writing.
", subagent_type="gsd-research-synthesizer", description="Synthesize research")
```
Display key findings summary to user from synthesizer output.
Display research complete banner and key findings:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► RESEARCH COMPLETE ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## Key Findings
**Stack:** [from SUMMARY.md]
**Table Stakes:** [from SUMMARY.md]
**Watch Out For:** [from SUMMARY.md]
Files: `.planning/research/`
```
**If "Skip research":** Continue to Phase 7.
## Phase 7: Define Requirements
Display stage banner:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► DEFINING REQUIREMENTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
**Load context:**
Read PROJECT.md and extract:
@@ -630,7 +679,14 @@ EOF
## Phase 8: Create Roadmap
Display: `Creating roadmap...`
Display stage banner:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► CREATING ROADMAP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Spawning roadmapper...
```
Spawn gsd-roadmapper agent with context:
@@ -768,16 +824,23 @@ EOF
Present completion with next steps:
```
Project initialized:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► PROJECT INITIALIZED ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Project: .planning/PROJECT.md
- Config: .planning/config.json (mode: [chosen mode])
- Research: .planning/research/ (if created)
- Requirements: .planning/REQUIREMENTS.md ([X] v1 requirements)
- Roadmap: .planning/ROADMAP.md ([N] phases)
- State: .planning/STATE.md
**[Project Name]**
---
| Artifact | Location |
|----------------|-----------------------------|
| Project | `.planning/PROJECT.md` |
| Config | `.planning/config.json` |
| Research | `.planning/research/` |
| Requirements | `.planning/REQUIREMENTS.md` |
| Roadmap | `.planning/ROADMAP.md` |
**[N] phases** | **[X] requirements** | Ready to build ✓
───────────────────────────────────────────────────────────────
## ▶ Next Up
@@ -787,7 +850,7 @@ Project initialized:
<sub>`/clear` first → fresh context window</sub>
---
───────────────────────────────────────────────────────────────
```
</process>

View File

@@ -14,6 +14,10 @@ allowed-tools:
- mcp__context7__*
---
<execution_context>
@~/.claude/get-shit-done/references/ui-brand.md
</execution_context>
<objective>
Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification.
@@ -103,8 +107,17 @@ ls "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
- Skip to step 6
**If RESEARCH.md missing OR `--research` flag set:**
- Display: `Phase {X}: {Name} — researching domain...`
- Proceed to spawn researcher
Display stage banner:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► RESEARCHING PHASE {X}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Spawning researcher...
```
Proceed to spawn researcher
### Spawn gsd-phase-researcher
@@ -198,7 +211,14 @@ UAT="${PHASE_DIR}/${PHASE}-UAT.md"
## 8. Spawn gsd-planner Agent
Display: `Phase {X}: {Name} — launching planner...`
Display stage banner:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► PLANNING PHASE {X}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Spawning planner...
```
Fill prompt and spawn:
@@ -278,7 +298,14 @@ Parse planner output:
## 10. Spawn gsd-plan-checker Agent
Display: `Launching plan checker...`
Display:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► VERIFYING PLANS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ Spawning plan checker...
```
Fill checker prompt and spawn:
@@ -379,30 +406,38 @@ Wait for user response.
## 13. Present Final Status
```markdown
Phase {X} planned: {N} plan(s) in {M} wave(s)
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► PHASE {X} PLANNED ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## Research
{Completed | Used existing | Skipped (--skip-research) | N/A (--gaps)}
**Phase {X}: {Name}** — {N} plan(s) in {M} wave(s)
## Wave Structure
Wave 1 (parallel): {plan-01}, {plan-02}
Wave 2: {plan-03}
| Wave | Plans | What it builds |
|------|-------|----------------|
| 1 | 01, 02 | [objectives] |
| 2 | 03 | [objective] |
## Verification
{Passed | Passed with user override | Skipped (--skip-verify)}
Research: {Completed | Used existing | Skipped}
Verification: {Passed | Passed with override | Skipped}
---
───────────────────────────────────────────────────────────────
## Next Up
## ▶ Next Up
**Phase {X}: [Phase Name]** - {N} plan(s)
**Execute Phase {X}** — run all {N} plans
`/gsd:execute-phase {X}`
<sub>`/clear` first - fresh context window</sub>
<sub>`/clear` first → fresh context window</sub>
---
───────────────────────────────────────────────────────────────
**Also available:**
- `cat .planning/phases/{phase-dir}/*-PLAN.md` — review plans
- `/gsd:plan-phase {X} --research` — re-research first
───────────────────────────────────────────────────────────────
```
</process>

View File

@@ -0,0 +1,160 @@
<ui_patterns>
Visual patterns for user-facing GSD output. Orchestrators @-reference this file.
## Stage Banners
Use for major workflow transitions.
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GSD ► {STAGE NAME}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
**Stage names (uppercase):**
- `QUESTIONING`
- `RESEARCHING`
- `DEFINING REQUIREMENTS`
- `CREATING ROADMAP`
- `PLANNING PHASE {N}`
- `EXECUTING WAVE {N}`
- `VERIFYING`
- `PHASE {N} COMPLETE ✓`
- `MILESTONE COMPLETE 🎉`
---
## Checkpoint Boxes
User action required. 62-character width.
```
╔══════════════════════════════════════════════════════════════╗
║ CHECKPOINT: {Type} ║
╚══════════════════════════════════════════════════════════════╝
{Content}
──────────────────────────────────────────────────────────────
→ {ACTION PROMPT}
──────────────────────────────────────────────────────────────
```
**Types:**
- `CHECKPOINT: Verification Required` → `→ Type "approved" or describe issues`
- `CHECKPOINT: Decision Required` → `→ Select: option-a / option-b`
- `CHECKPOINT: Action Required` → `→ Type "done" when complete`
---
## Status Symbols
```
✓ Complete / Passed / Verified
✗ Failed / Missing / Blocked
◆ In Progress
○ Pending
⚡ Auto-approved
⚠ Warning
🎉 Milestone complete (only in banner)
```
---
## Progress Display
**Phase/milestone level:**
```
Progress: ████████░░ 80%
```
**Task level:**
```
Tasks: 2/4 complete
```
**Plan level:**
```
Plans: 3/5 complete
```
---
## Spawning Indicators
```
◆ Spawning researcher...
◆ Spawning 4 researchers in parallel...
→ Stack research
→ Features research
→ Architecture research
→ Pitfalls research
✓ Researcher complete: STACK.md written
```
---
## Next Up Block
Always at end of major completions.
```
───────────────────────────────────────────────────────────────
## ▶ Next Up
**{Identifier}: {Name}** — {one-line description}
`{copy-paste command}`
<sub>`/clear` first → fresh context window</sub>
───────────────────────────────────────────────────────────────
**Also available:**
- `/gsd:alternative-1` — description
- `/gsd:alternative-2` — description
───────────────────────────────────────────────────────────────
```
---
## Error Box
```
╔══════════════════════════════════════════════════════════════╗
║ ERROR ║
╚══════════════════════════════════════════════════════════════╝
{Error description}
**To fix:** {Resolution steps}
```
---
## Tables
```
| Phase | Status | Plans | Progress |
|-------|--------|-------|----------|
| 1 | ✓ | 3/3 | 100% |
| 2 | ◆ | 1/4 | 25% |
| 3 | ○ | 0/2 | 0% |
```
---
## Anti-Patterns
- Varying box/banner widths
- Mixing banner styles (`===`, `---`, `***`)
- Skipping `GSD ►` prefix in banners
- Random emoji (`🚀`, `✨`, `💫`)
- Missing Next Up block after completions
</ui_patterns>