---
name: brand-kit
description: Activates whenever the user mentions their brand, brand colors, brand voice, brand assets, products, or asks Claude to create branded content (ads, copy, images, landing pages, emails, social posts). Provides single source of truth for brand identity. Also activates when other Vault skills (static-ad-designer, nano-banana-ads, animation-ads, blog-pipeline, etc.) need brand context. Includes the /build-brand-kit interactive command, /build-brand-kit-from-url auto-scrape mode, and /upgrade-brand-kit migration from older formats.
---

# Brand Kit Skill

This is the single source of truth for the user's brand. Every other skill in the Vault references this file when generating branded content. Treat it as immutable during a workflow run unless the user explicitly asks to update it.

## Activation Rules

Activate this skill when:
- The user mentions "my brand," "our brand," brand colors, brand voice, brand fonts, or brand assets
- The user asks for branded content of any kind (ad, post, email, page, image)
- Another Vault skill is invoked that requires brand context
- The user runs any of the slash commands defined in this skill

## File Location

The brand kit data is stored at `./brand-kit.md` in the project root. If that file doesn't exist when this skill activates, prompt the user to run `/build-brand-kit` before continuing.

---

## Brand Kit Schema

The `brand-kit.md` file MUST follow this structure:

```yaml
---
brand_kit_version: 1.0
last_updated: YYYY-MM-DD
---

# Brand Identity

**Brand name:** [Required. The brand's display name.]
**Tagline:** [Optional. One sentence positioning statement.]
**Mission:** [Optional. One paragraph on why the brand exists.]
**Industry:** [Required. e.g., "DTC supplements," "B2B SaaS," "local services"]
**Founded:** [Optional. Year and location.]

# Visual Identity

**Logo:** [File path to PNG with transparent background, e.g., "./assets/logo.png"]
**Logo (white):** [File path for use on dark backgrounds]

**Colors:**
- Primary: #HEXCODE [used for: headlines, primary CTAs, brand accents]
- Secondary: #HEXCODE [used for: subheadings, secondary buttons]
- Accent: #HEXCODE [used for: highlights, badges, hover states]
- Background: #HEXCODE [used for: page backgrounds, large surfaces]
- Text: #HEXCODE [used for: body copy]

**Fonts:**
- Headlines: [Font family name + fallback]
- Body: [Font family name + fallback]
- Accent: [Optional. Used for quotes, callouts, etc.]

**Photography style:**
[2-3 sentences describing the visual style of product photos and lifestyle imagery. e.g., "Natural light, warm tones, minimalist composition. Products shot on textured paper or linen. Avoid stock-photo aesthetic, harsh studio lighting, or over-saturated colors."]

# Voice and Tone

**Voice description:**
[One paragraph describing how the brand sounds. Include: register (formal/casual), energy level (high/measured), POV (first-person/third-person), and any distinguishing qualities.]

**Words and phrases we always use:**
- [Specific phrase or word, e.g., "30-day guarantee" — must appear in every offer]
- [Specific phrase, e.g., "made in small batches" — appears when describing the product]

**Words and phrases we never use:**
- [Banned word, e.g., "amazing"]
- [Banned phrase, e.g., "game-changing"]
- [Banned cliché, e.g., "in today's fast-paced world"]

**Reading level target:** [e.g., "8th grade" or "professional adult"]

# Products

For each product, include:

## Product: [Product Name]
- **SKU:** [Optional]
- **Price:** $XX.XX
- **Tagline:** [One sentence]
- **Key benefits:** [3-5 bullet points]
- **Photos:** [List of file paths]
- **Current offer:** [e.g., "25% off first order with code WELCOME25"]
- **Guarantee:** [e.g., "60-day money-back guarantee"]
- **Landing page URL:** [Direct link]

(Repeat for each product.)

# Customer Personas

Used by the creative matrix in Pillar 1 and segmentation logic in lead gen workflows.

## Persona 1: [Name, age]
- **Description:** [One sentence about who they are]
- **Pain point:** [What problem brings them to the brand]
- **Desired outcome:** [What success looks like for them]
- **Where they hang out:** [Platforms, communities]
- **Voice cue:** [How they talk about the problem in their own words]

(Repeat for 3-4 personas.)

# Naming Conventions

**Pattern:** `[brand]_[objective]_[hook]_[persona]_[style]_[version]_[date]`

- **brand:** Always lowercase, no spaces. [e.g., "vitapure"]
- **objective:** sales | traffic | leads | awareness
- **hook:** problem | benefit | social | curiosity
- **persona:** [Use the persona names from the section above, lowercase]
- **style:** minimal | lifestyle | ugc | studio
- **version:** v1, v2, v3, etc.
- **date:** YYYYMMDD

**Example:** `vitapure_sales_problem_sarah_minimal_v1_20260501`

This convention applies to ALL campaign names, ad set names, ad names, file names, and asset names generated by any Vault skill.

# Compliance and Legal

**Required disclaimers:** [Any legally required language for this niche]
**Restricted claims:** [Things you cannot say, e.g., medical claims for supplements]
**Trademark notes:** [Branded terms that need ™ or ®]

# Version History

| Version | Date | Changes |
|---------|------|---------|
| 1.0 | YYYY-MM-DD | Initial creation |
```

---

## Interactive Commands

### `/build-brand-kit`

When the user runs this command, walk them through building the brand kit interactively. Ask one section at a time, in this order:

1. Brand identity (name, tagline, industry)
2. Visual identity (colors, fonts, logo paths)
3. Voice and tone (description, banned words, required phrases)
4. First product (full details)
5. First persona (full details)
6. Naming conventions (use defaults if user is unsure)

Apply these validation rules:

**Color validation:**
- All hex codes must be valid (6 digits after #)
- Check WCAG AA contrast between text color and background color (minimum 4.5:1 ratio for body text)
- Flag any color combinations that fail accessibility

**Voice validation:**
- If the voice description contains generic AI phrases like "quality," "trust," "innovative," "passionate," or "we believe," ask the user for specific examples and rewrite. A useful voice description names actual qualities: register, energy, POV, distinguishing tics. Vague brand voices produce vague output.

**Banned words validation:**
- Suggest a starter list: "amazing," "incredible," "game-changing," "in today's fast-paced world," "let's dive in," "we're excited to announce"
- Add user-specific terms based on industry

**Persona validation:**
- Personas must include a specific age and a one-sentence description with at least one concrete detail (job, life stage, geography)
- Pain points must be specific, not generic. "She's stressed" is generic. "She's awake at 6 AM, kids not up yet, trying to write an email she's been putting off for three days" is specific.

After all sections are filled, save to `./brand-kit.md` with `brand_kit_version: 1.0` and the current date.

### `/build-brand-kit from [URL]`

When the user runs this with a URL, scrape the website using Firecrawl MCP (or Browserbase MCP if Firecrawl is unavailable) and auto-populate as many fields as possible:

1. Scrape the homepage and "About" page
2. Extract brand colors from the CSS (look for primary CTA colors, header backgrounds, link colors)
3. Identify fonts from CSS font-family declarations
4. Pull the logo file URL from the header
5. Analyze the homepage copy to infer voice (register, sentence length, vocabulary level)
6. Identify products from product page links or shop section
7. Generate three customer personas based on the marketing language used

Present the auto-populated brand kit to the user and ask them to verify and edit before saving. Some fields (banned words, naming convention defaults) still require user input.

### `/upgrade-brand-kit`

Migrates older brand kit files (from Pillar 1's inline version) to the v1.0 schema:

1. Read the existing `brand-kit.md`
2. Map old fields to new schema fields
3. Add missing required sections (prompt user for any required data not present)
4. Add YAML frontmatter with `brand_kit_version: 1.0` and today's date
5. Preserve all existing data
6. Save as the upgraded file
7. Show a diff so the user can verify nothing was lost

### `/update-brand-kit`

For changes to an existing brand kit:

1. Ask what's changing
2. Increment the version number (1.0 → 1.1 for minor changes, 1.0 → 2.0 for major changes like new product lines or full rebrand)
3. Update `last_updated` to today's date
4. Add an entry to the Version History table describing what changed
5. Save the updated file

---

## Cross-Skill Integration

When other Vault skills reference brand context, they should:

1. Read `./brand-kit.md` at the start of their workflow
2. Reference fields by their schema name (e.g., "primary color" not "the color")
3. Use the naming convention pattern for any names they generate
4. Apply banned-words filtering to all output copy
5. Include required phrases when generating offers

If a skill needs information that isn't in the brand kit, it should prompt the user to add it (and trigger `/update-brand-kit` to make the addition permanent).

---

## Output Conventions

When this skill generates content that references the brand:

- Use the brand name exactly as written in the kit (no abbreviations, no casing changes)
- Use only the colors defined in the kit (no inventing new shades)
- Match the voice description in tone and register
- Apply the banned-words filter before showing output to the user
- Include required phrases when generating any offer or CTA

---

## Notes

- The brand kit should be reviewed quarterly. Old colors, fonts, or voice descriptions create drift over time.
- If the user has multiple brands, create separate brand kit files (e.g., `brand-kit-vitapure.md`, `brand-kit-evergreen.md`) and ask which one to use at the start of each workflow.
- For agencies managing client brands, store each client's kit in a separate folder (e.g., `./clients/vitapure/brand-kit.md`).
