brand-init
/brand-init
Create brand.yaml from scratch through interactive discovery.
What This Does
Guided process that produces a complete brand.yaml — the single source of truth
for brand identity, visual tokens, voice, and content strategy. Replaces running
/brand-builder + /design-tokens separately.
Process
Phase 1: Discovery (Interactive)
Gather context automatically, then ask focused questions.
Auto-gather:
# Tech stack, features, README
cat package.json 2>/dev/null | jq '{name, description, keywords}'
cat README.md 2>/dev/null | head -100
git log --oneline -10
Ask via AskUserQuestion:
- Identity: Product name, domain, tagline, category
- Audience: Primary user, segments, pain points
- Voice: Tone (casual/professional/technical/playful), personality traits, things to avoid
- Content: Topics, mix (product vs valuable), posting frequency
Phase 2: Visual Direction (Interactive)
-
Brand hue: Present 4 hue options based on category:
- SaaS/tech → blue (250), purple (280)
- Health/fitness → green (140), teal (170)
- Finance → navy (220), emerald (160)
- Creative → orange (30), magenta (330)
- Custom hue (0-360)
-
Typography: Display + sans + mono font stacks
- Modern: Inter/Geist
- Classical: Playfair Display + serif
- Technical: JetBrains Mono focused
- Custom
-
Color overrides: Accept specific hex colors if the brand already has them. Convert to OKLCH using
hexToOklch()from brand-kit.
Phase 3: Generation
Build the brand.yaml structure:
# If brand-profile.yaml already exists, offer migration instead
if [ -f brand-profile.yaml ]; then
node ~/Development/brand-kit/dist/src/cli.js migrate \
--profile brand-profile.yaml \
$([ -f design-tokens.json ] && echo "--tokens design-tokens.json") \
--out brand.yaml
fi
For new brands, construct the YAML programmatically with all sections:
version: "1"identityfrom Phase 1audiencefrom Phase 1voicefrom Phase 1palettewith brand_hue, primary/secondary/accent (OKLCH + hex), light/dark backgroundstypographyfrom Phase 2spacing,radii,elevation,motionwith sensible defaultscontentfrom Phase 1inspirationsfrom Phase 1metawith generation timestamp
Phase 4: Validate + Compile
node ~/Development/brand-kit/dist/src/cli.js validate brand.yaml
node ~/Development/brand-kit/dist/src/cli.js compile --out ./src/styles
Phase 5: Preview
Generate a sample OG card to show the brand visually:
node ~/Development/brand-kit/dist/src/cli.js render og-default \
--title "[Product Name]" \
--subtitle "[Tagline]" \
--out ./brand-preview.png
Show the preview to the user for approval.
Re-running
If brand.yaml exists:
- Load existing brand
- Ask which sections to update
- Preserve unchanged sections
- Recompile tokens
Migration Path
Existing projects with brand-profile.yaml:
- Auto-detect and offer migration
- Preserves all voice/content data
- Adds visual tokens (palette, typography, spacing)
- Old file kept as backup
Output
brand.yamlin project root- Compiled tokens in
./src/styles/(or specified directory) - Preview image
./brand-preview.png
Related Skills
/brand-compile— Recompile tokens after editing brand.yaml/brand-assets— Generate OG cards and social images/brand-builder— Legacy brand discovery (superseded)/design-tokens— Design token patterns reference