Skip to content

UI Branding ​

Standardized visual output branding across all GHS skills: banners, boxes, indicators, routing blocks. For data formats (tables, scores, status indicators), see Scoring.

Stage Banners ​

Use at the start of every major skill phase. Width: 53 chars of ━.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 GHS ► {STAGE NAME}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Stage Names by Skill ​

SkillStage Name
ghs-repo-scanSCANNING
ghs-backlog-fixFIXING
ghs-issue-triageTRIAGING
ghs-issue-analyzeANALYZING
ghs-issue-implementIMPLEMENTING
ghs-review-prREVIEWING
ghs-merge-prsMERGING
ghs-backlog-syncSYNCING
ghs-releaseRELEASING
ghs-orchestrateORCHESTRATING
ghs-dev-loopDEV LOOP
ghs-backlog-boardBOARD
ghs-project-initINITIALIZING
ghs-action-fixACTION FIX
ghs-repos-pullPULLING

Checkpoint Boxes ​

Use before pausing for human input or destructive actions. Box width: 62 chars inner.

╔══════════════════════════════════════════════════════════════╗
║  CHECKPOINT: {Type}                                          ║
╚══════════════════════════════════════════════════════════════╝
TypeWhen to Use
Verification RequiredAgent output needs human review before next step
Decision RequiredMultiple valid paths; human must choose
Action RequiredHuman must run a command or complete a step
Confirmation RequiredDestructive action (delete, force-push, drop)

Status Symbols ​

Use consistently --- never mix Unicode variants or emoji substitutes.

SymbolMeaning
✓Complete / Passed / Verified
✗Failed / Missing / Blocked
◆In Progress / Active
○Pending / Not started
⚠Warning / Needs attention
⚡Auto-approved / Skipped

Usage:

✓ README.md --- present and non-empty
✗ CONTRIBUTING.md --- missing
⚠ LICENSE --- present but unrecognized SPDX identifier
○ SECURITY.md --- not yet checked
◆ Running health checks...
⚡ CI check skipped (no workflows directory)

Spawning Indicators ​

Use when launching subagents:

◆ Spawning agent: {description}...
✓ Agent complete: {result summary}
✗ Agent failed: {error summary}

Parallel batch:

◆ Spawning {N} agents in parallel...
  → {agent-1-desc}
  → {agent-2-desc}
  → {agent-3-desc}
✓ All agents complete (3/3)

Progress Display ​

Use for multi-step operations, waves, or item batches.

Progress: ████████░░ 80%
Items: 3/5 complete
Wave 2/3: ██████░░░░ 60%

Rules:

  • Bar width: 10 blocks (█ filled, ░ empty)
  • Always show numeric alongside bar
  • Label the unit (Items, Wave, Repos, Checks)

Error Box ​

Use when a skill cannot continue:

╔══════════════════════════════════════════════════════════════╗
║  ERROR                                                       ║
╚══════════════════════════════════════════════════════════════╝

{Error description --- one or two sentences, plain language}

**To fix:** {Concrete resolution steps, numbered if >1}

Next Up Block ​

Append at the end of every skill's output:

───────────────────────────────────────────────────────────────

## ▶ Next Up

**{Skill name}** --- {one-line description of what it does next}

  /ghs-{skill} {suggested-args}

───────────────────────────────────────────────────────────────

**Also available:**
- `/ghs-{alt-1}` --- {short description}
- `/ghs-{alt-2}` --- {short description}

───────────────────────────────────────────────────────────────

Standard Routing Table ​

After RunningPrimary Next UpAlternatives
ghs-repo-scanghs-backlog-boardghs-backlog-fix, ghs-backlog-sync
ghs-backlog-boardghs-backlog-fixghs-backlog-next, ghs-backlog-sync
ghs-backlog-fixghs-review-prghs-backlog-board, ghs-merge-prs
ghs-backlog-syncghs-backlog-boardghs-backlog-fix
ghs-issue-triageghs-issue-analyzeghs-issue-implement
ghs-issue-analyzeghs-issue-implementghs-review-pr
ghs-issue-implementghs-review-prghs-merge-prs
ghs-review-prghs-merge-prsghs-issue-implement, ghs-release
ghs-merge-prsghs-releaseghs-backlog-board
ghs-releaseghs-backlog-boardghs-orchestrate
ghs-orchestrateghs-backlog-boardghs-dev-loop

Dry-Run Indicator ​

Show immediately after the stage banner when --dry-run is active:

╔══════════════════════════════════════════════════════════════╗
║  DRY RUN --- No changes will be made                         ║
╚══════════════════════════════════════════════════════════════╝

All mutation descriptions in dry-run mode should be prefixed with [DRY RUN]:

[DRY RUN] Would create PR: "fix: add CONTRIBUTING.md"
[DRY RUN] Would apply label: priority/high
[DRY RUN] Would merge PR #38

Anti-Patterns ​

Do NOTDo InsteadWhy
Use random emojiUse the defined symbol set (✓ ✗ ⚠ ◆)Consistent terminal rendering
Vary box widths per skillAlways use 62-char inner widthVisual alignment across skill outputs
Skip Next Up blockAlways append Next Up at endUsers need guided continuation
Mix ━ and ─ as section separators━ for banners, ─ for Next Up onlyVisual hierarchy is load-bearing
Omit [DRY RUN] prefix on mutationsPrefix every would-be mutationPrevents confusion about what ran
Print raw API errors verbatimWrap in Error Box with fix stepsRaw errors are unactionable

Released under the MIT License.