From daa54737cf1a2918a38cc50518f313ad3fe1a54d Mon Sep 17 00:00:00 2001 From: Lex Christopherson Date: Fri, 16 Jan 2026 11:51:57 -0600 Subject: [PATCH] feat: add GSD brand system for consistent UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- GSD-STYLE.md | 10 +- commands/gsd/execute-phase.md | 49 ++++---- commands/gsd/execute-plan.md | 4 + commands/gsd/new-project.md | 87 +++++++++++++-- commands/gsd/plan-phase.md | 71 +++++++++--- get-shit-done/references/ui-brand.md | 160 +++++++++++++++++++++++++++ 6 files changed, 329 insertions(+), 52 deletions(-) create mode 100644 get-shit-done/references/ui-brand.md diff --git a/GSD-STYLE.md b/GSD-STYLE.md index fba6e4ff1..e508f3eae 100644 --- a/GSD-STYLE.md +++ b/GSD-STYLE.md @@ -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. `/clear` first → fresh context window ---- +─────────────────────────────────────────────────────────────── **Also available:** - Alternative option - Another option ---- +─────────────────────────────────────────────────────────────── ``` ### Decision Gates diff --git a/commands/gsd/execute-phase.md b/commands/gsd/execute-phase.md index 6ceda3254..65d3b91c0 100644 --- a/commands/gsd/execute-phase.md +++ b/commands/gsd/execute-phase.md @@ -24,6 +24,7 @@ Context budget: ~15% orchestrator, 100% fresh per subagent. @~/.claude/get-shit-done/references/principles.md +@~/.claude/get-shit-done/references/ui-brand.md @~/.claude/get-shit-done/workflows/execute-phase.md @@ -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. `/clear` first → fresh context window ---- +─────────────────────────────────────────────────────────────── **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. `/clear` first → fresh context window ---- +─────────────────────────────────────────────────────────────── **Also available:** - `/gsd:verify-work` — manual acceptance testing - `/gsd:complete-milestone` — skip audit, archive directly -- `/gsd:add-phase ` — 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. `/clear` first → fresh context window ---- +─────────────────────────────────────────────────────────────── **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`: diff --git a/commands/gsd/execute-plan.md b/commands/gsd/execute-plan.md index 91c2cf450..f1bb882cc 100644 --- a/commands/gsd/execute-plan.md +++ b/commands/gsd/execute-plan.md @@ -12,6 +12,10 @@ allowed-tools: - AskUserQuestion --- + +@~/.claude/get-shit-done/references/ui-brand.md + + Execute a single PLAN.md file by spawning the `gsd-executor` subagent. diff --git a/commands/gsd/new-project.md b/commands/gsd/new-project.md index 1e214267e..600f18a1b 100644 --- a/commands/gsd/new-project.md +++ b/commands/gsd/new-project.md @@ -31,6 +31,7 @@ This is the most leveraged moment in any project. Deep questioning here means be @~/.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: 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. ", subagent_type="gsd-project-researcher", description="Stack research") @@ -382,6 +408,7 @@ Your FEATURES.md feeds into requirements definition. Categorize clearly: 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. ", subagent_type="gsd-project-researcher", description="Features research") @@ -421,6 +448,7 @@ Your ARCHITECTURE.md informs phase structure in roadmap. Include: 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. ", subagent_type="gsd-project-researcher", description="Architecture research") @@ -460,6 +488,7 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall: 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. ", 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: `/clear` first → fresh context window ---- +─────────────────────────────────────────────────────────────── ``` diff --git a/commands/gsd/plan-phase.md b/commands/gsd/plan-phase.md index d61a0c048..540d308b2 100644 --- a/commands/gsd/plan-phase.md +++ b/commands/gsd/plan-phase.md @@ -14,6 +14,10 @@ allowed-tools: - mcp__context7__* --- + +@~/.claude/get-shit-done/references/ui-brand.md + + 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}` -`/clear` first - fresh context window +`/clear` first → fresh context window ---- +─────────────────────────────────────────────────────────────── + +**Also available:** +- `cat .planning/phases/{phase-dir}/*-PLAN.md` — review plans +- `/gsd:plan-phase {X} --research` — re-research first + +─────────────────────────────────────────────────────────────── ``` diff --git a/get-shit-done/references/ui-brand.md b/get-shit-done/references/ui-brand.md new file mode 100644 index 000000000..8d45554ac --- /dev/null +++ b/get-shit-done/references/ui-brand.md @@ -0,0 +1,160 @@ + + +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}` + +`/clear` first → fresh context window + +─────────────────────────────────────────────────────────────── + +**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 + +