name: gsp-brand-brief description: Define your brand — who, why, and what it should feel like — use when: create a brand, define our brand identity, who are we, what's our brand user-invocable: true allowed-tools: - Read - Write - Bash - AskUserQuestion - Glob
Works two ways:
- Routed —
/gsp-startdetects "new brand" intent and invokes this skill - Direct — user runs
/gsp-brand-briefdirectly
This skill handles new brands only. For existing brands (evolve mode), /gsp-start routes to /gsp-brand-audit directly.
Input: Brand name (from args or asked)
Output: .design/branding/{name}/ with BRIEF.md, STATE.md, config.json, ROADMAP.md
Next: /gsp-brand-research
Never re-ask what the user already answered. If you need to validate, confirm: "I see X from earlier — still accurate?"
Inference over interrogation. Don't ask what you can infer. "Fintech for Gen Z" → mobile-first, modern, trustworthy. State inferences, let them correct.
Concrete options over open-ended. "More like Stripe's clean approach or Duolingo's playful style?" beats "What style do you want?" Use AskUserQuestion with 2-3 options when the option space is known.
Adapt and skip. If an early answer reveals enough, skip later questions. Follow up on surprises before moving on. The sequence is a guide, not a script.
Know when you have enough. A brand brief is complete when you can answer:
- Who is this for and what do they need?
- What does the brand feel like?
- What are the hard constraints?
Check if a brand name was passed via invocation args. If not, ask:
- Ask for brand name (kebab-case, e.g., "acme-corp") —
AskUserQuestion
Validate: lowercase alphanumeric + hyphens only. Check .design/branding/{name}/ doesn't already exist. If it does, use AskUserQuestion: Overwrite / Pick a different name.
Accept an optional e2e flag from the invoking skill. Default to false.
Create directory structure:
mkdir -p .design/branding/{name}/{discover,strategy,identity,patterns}
Step 2: Business & People
Sequential AskUserQuestion calls. Ask one, wait, adapt, ask the next. Skip anything you can already infer.
- What's the company name, and what industry/stage? (open-ended
AskUserQuestion) - What problem does it solve, and for whom? (open-ended — use the answer to start inferring persona)
- What's the business model? (use
AskUserQuestionwith options if you can infer likely models from industry, otherwise open-ended) - Who are the main competitors? (2-3 names — open-ended)
- Present an inferred primary persona — a concrete profile (name, role, frustration, aspiration) based on answers so far. Personas should feel like real people — dig into the emotional layer. Use
AskUserQuestion: Looks right / Adjust / Add a secondary persona
Step 3: Brand Essence
Before presenting personality options, internally synthesize promise (what should someone feel?) and point of view (what does this brand disagree with?) from prior answers. Don't ask these directly — use them to ground personality options.
- Brand personality direction — use
AskUserQuestionwith 2-3 concrete personality directions. Each option must explain WHY it fits this brand's audience and problem — not just a style label:- Each option: Label (3 adjectives) / Description (why this personality fits their specific audience and competitive position — reference the persona by name, the problem, or the gap) / Preview (example sentence in that voice, using their product context)
- Surprise me — craft an unexpected direction inspired by the user's industry and personas
- Note: this is a high-level direction only. Brand strategy phase will deepen this into archetype + voice — don't over-refine here.
- What should the brand NEVER feel like? (use
AskUserQuestionwith 2-3 anti-directions inferred from their personality pick, plus open-ended option) - Brands admired or styles to avoid? (open-ended
AskUserQuestion) - Visual direction — raw aesthetic feeling. Use
AskUserQuestion(open-ended):"What should it look and feel like visually? You can share image or website links, describe a mood ('editorial and dark', 'warm brutalist', 'cinematographic with beautiful stills'), drop adjective clusters ('rounded, clean, airy'), or even describe a scene or texture. The weirder and more specific the better — this is what prevents a bland brand."
- Synthesize the answer into a
visual_directionblock in the brief: mood words, reference aesthetics, texture/atmosphere descriptors, any specific anti-patterns (e.g., "never stock-photo corporate"). This block directly informs color, typography, and imagery choices downstream.
- Synthesize the answer into a
Step 4: Constraints & confirmation
Any non-negotiables or constraints? (timeline, budget, must-haves) — open-ended
AskUserQuestionState your understanding back — but lead with feeling, not facts. Format:
"Here's what I'm hearing: [2-sentence factual summary]. The feeling this brand should leave: [emotional compass — one evocative sentence capturing the brand's energy, not its category]."
The emotional compass is the hardest line to write and the most important. It should make the user feel something when they read it. Not "a fintech tool that simplifies investing" but "the brand that makes financial confidence feel earned, not given." Synthesize it from the personality direction, the persona aspiration, the brand POV, and the visual direction. It should be specific enough to be wrong — vague sentences aren't compasses.
Use
AskUserQuestion:- Looks good — "That's accurate, let's go"
- Adjust the feeling — "The compass is off — let me reframe it"
- Adjust something else — "Facts are right but I want to change something"
If "Adjust" — ask what to change, update your understanding, re-confirm. Don't re-ask everything.
Step 5: Write artifacts and register brand
Read templates at write time from ${CLAUDE_SKILL_DIR}/../../templates/branding/ and write:
.design/branding/{name}/BRIEF.mdfrombrief.mdtemplate- Populate all sections from conversation answers
- Synthesize brand promise, POV, and personality (these are inferred, not asked directly)
- Write the confirmed emotional compass as
brand_heartbeatin the Emotional Compass section - Set
brand_modetonew - Set evolve-only sections (Existing Brand State, Evolution Scope) to "N/A — new brand"
.design/branding/{name}/STATE.mdfromstate.mdtemplate- Phase 0 (Audit):
skipped - All other phases:
pending
- Phase 0 (Audit):
.design/branding/{name}/config.jsonfromconfig.jsontemplate- Set
brand.name,brand.created(ISO date) - Set
brand_mode: "new" - Set
e2eflag from Step 1
- Set
.design/branding/{name}/ROADMAP.mdfromroadmap.mdtemplateWrite/update
.design/CLAUDE.md— register the brand as started. If the file doesn't exist, read${CLAUDE_SKILL_DIR}/../../templates/design-claude.mdfirst. Append under## Brands:
### {brand-name} · in progress · {DATE}
"{brand_heartbeat}"
next: gsp-brand-research · .design/branding/{brand-name}/
Step 6: Route
Use AskUserQuestion — always offer Continue / Stop here / What happens next:
- Continue to research — "Start market and competitor research" → invoke
/gsp-brand-researchvia Skill tool - Stop here — "I'll come back later" → confirm files are saved, show how to resume with
/gsp-start - What happens next? — "Explain the research phase" → explain what brand-research does (market landscape, competitive audit, trend analysis, mood board direction) and how it uses the brief
If e2e: true, mention that after the full branding diamond completes, it will auto-transition to project setup.
Step 7: e2e transition (only when e2e: true and branding diamond is complete)
After all four brand phases complete (brand-research → brand-strategy → brand-identity → brand-guidelines), scaffold the project directory before invoking /gsp-project-brief:
Derive
{project-slug}from the brand name: lowercase, spaces and underscores replaced with hyphens.Create the project directory:
mkdir -p .design/projects/{project-slug}/
Read templates at write time from
${CLAUDE_SKILL_DIR}/../../templates/projects/and write:.design/projects/{project-slug}/config.jsonfromconfig.jsontemplate — setproject.name(title-cased from project-slug) andproject.created(ISO date).design/projects/{project-slug}/STATE.mdfromstate.mdtemplate — fill in project name and brand name
Write
.design/projects/{project-slug}/brand.refcontaining the brand directory name (e.g.{brand-name}), so the project knows which brand it belongs to.Display:
brand complete — {brand-name}
now let's scope your project.
- Invoke
/gsp-project-briefvia Skill tool, passing{project-slug}so Step 0 resolves the existing directory rather than prompting for one.