From brand-intelligence
Brand kit setup — create, edit, or view a named brand profile with guided interview covering identity, contact info, social handles, colors, fonts, logo, and brand voice. Generates a visual designer-style brand board PDF with Polaroid color swatches, font specimens, social icons, and color bar. Brand data auto-applies to all document skills (docx, pptx, xlsx, pdf, email-drafter, etc.). Use when user says 'set up my brand', 'brand kit', 'brand setup', 'add a new brand', 'edit my brand', 'update my colors/logo/fonts', 'show my brand', 'brand guide', 'brand board', 'brand profile', 'brand style guide', or any request to define or update brand identity. Invoke immediately when a document skill needs brand data and none is loaded.
How this skill is triggered — by the user, by Claude, or both
Slash command
/brand-intelligence:MKT-brand-kitThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates and manages named brand profiles. This skill is the **identity source of truth** for the MKT domain — every other skill in the `brand-intelligence` and `social-media-pro` plugins reads from what is set up here.
Creates and manages named brand profiles. This skill is the identity source of truth for the MKT domain — every other skill in the brand-intelligence and social-media-pro plugins reads from what is set up here.
Brand data is saved in two places:
brain/preferences/mkt-preferences.md) — the preferences record all skills read at startupThe brand board output is a visual designer board — Polaroid-style color swatches, large signature/script name treatment, font specimens, social icons, and a full-width color bar. One page. Not a brochure.
Search Cloud Brain before starting:
mcp__cloud-brain__search_notes: query = "MKT preferences"
Tell the user: "I'll walk you through building your brand kit a few questions at a time — everything can be updated later."
Ask in blocks. Wait for answers before moving on.
Say: "Colors work best as hex codes like #335568. If you have brand colors but not the hex codes, share them however you know them and I'll convert."
If more than 2–3 colors are provided, save all in an extended_palette array.
Say exactly: "Now for fonts. I support custom font files — if you have your brand fonts as .ttf or .otf files, please upload them now and I'll save them permanently so they render correctly in all your documents and your brand board. If you don't have the files handy, just tell me the font names and I'll note them — you can upload the files anytime later by saying 'update my brand fonts'."
If font files are uploaded: Save them to the assets folder with clear names like kollektif.ttf, roboto-slab-thin.ttf. Record the paths in the brand JSON.
Font conversion note: If uploaded fonts are OTF with PostScript outlines, convert using fonttools:
pip install fonttools --break-system-packages -q
python3 -m fonttools otf2ttf input.otf -o output.ttf
If that fails, use PIL/ImageFont to pre-render large display text as PNG and embed in the PDF.
Say: "Do you have a logo file to upload? PNG with a transparent background works best, but SVG, AI, EPS, and JPG are all supported."
When logo files are uploaded (they arrive in the uploads folder):
logo-primary.png, logo-white.png, logo-icon.pnggs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pngalpha -r300 -dEPSCrop \
-sOutputFile="logo-primary.png" "input.eps"
Slug: lowercase, spaces → hyphens. "My Agency" → my-agency
Save a clean preferences record at brain/preferences/mkt-preferences.md:
# MKT Preferences — [Brand Name]
**Brand:** [brand_name]
**Slug:** [slug]
**Full Name:** [full_name]
**Title:** [title]
**Company:** [company_name]
**Tagline:** [tagline]
**Elevator Pitch:** [elevator_pitch]
**Industry / Niche:** [industry]
**Target Audience:** [target_audience]
**City / State:** [city_state]
## Contact
- Email: [email]
- Phone: [phone]
- Website: [website]
## Social Platforms
- Instagram: [handle]
- Facebook: [page]
- LinkedIn: [url]
- YouTube: [channel]
- TikTok: [handle]
- Threads: [handle]
- Other: [other]
## Brand Colors
- Primary: [hex]
- Secondary: [hex]
- Accent: [hex]
- Text: [hex]
- Background: [hex]
## Typography
- Heading Font: [name]
- Body Font: [name]
- Script Font: [name]
## Brand Voice
- Tone: [tone]
- Personality: [adjectives]
- Avoid: [avoid]
## Document Defaults
- Include Logo in Header: [yes/no]
- Footer Text: [footer]
- Legal Disclaimer: [disclaimer]
## Asset Paths (local)
- Brand JSON: [path]
- Logo Primary: [path]
- Last Updated: [YYYY-MM-DD]
Use mcp__cloud-brain__write_note to save.
mkdir -p /mnt/.claude/brain/brands
mkdir -p /mnt/.claude/assets/brands/{slug}
mkdir -p /mnt/.claude/assets/fonts
Save the full brand JSON at /mnt/.claude/brain/brands/brand-{slug}.json:
{
"brand_name": "",
"slug": "",
"created_at": "YYYY-MM-DD",
"updated_at": "YYYY-MM-DD",
"identity": {
"full_name": "",
"title": "",
"company_name": "",
"tagline": "",
"elevator_pitch": "",
"industry": "",
"license_number": "",
"license_state": "",
"city_state": ""
},
"contact": {
"email": "",
"phone": "",
"website": ""
},
"social": {
"instagram": "",
"facebook": "",
"linkedin": "",
"youtube": "",
"tiktok": "",
"threads": "",
"other": []
},
"colors": {
"primary": "",
"secondary": "",
"accent": "",
"text": "#1A1A1A",
"background": "#FFFFFF",
"extended_palette": []
},
"typography": {
"heading_font": "",
"body_font": "",
"script_font": "",
"font_files": {
"heading": "",
"body": "",
"script": ""
}
},
"assets": {
"logo_primary": "",
"logo_white": "",
"logo_icon": ""
},
"voice": {
"tone": "",
"personality_adjectives": [],
"target_audience": "",
"avoid": []
},
"document_defaults": {
"include_logo_in_header": true,
"footer_text": "",
"legal_disclaimer": ""
}
}
After saving, generate the brand board using the bundled script included in this plugin at scripts/generate_brand_board.py.
pip install reportlab Pillow fonttools --break-system-packages -q
python3 scripts/generate_brand_board.py /mnt/.claude/brain/brands/brand-{slug}.json
The script handles:
brand-{slug}-brand-board.pdfThe board feels like a designer brand board, not a document:
✅ Brand "[Name]" saved to Cloud Brain — all MKT skills are now pre-loaded
📄 Brand board saved to your outputs folder
"This brand is now available to all your document and content skills. I'll automatically apply your colors, fonts, logo, and contact info to any document I create — unless you tell me to use a different brand."
Present the brand board PDF using present_files.
At startup, any MKT skill that needs brand context should:
1. mcp__cloud-brain__search_notes: query = "MKT preferences"
2. If found: load the note, extract needed fields
3. Confirm in one line: "Working as [Name] at [Business], correct?"
4. If not found: prompt user to run MKT-brand-kit first
For skills that need the full JSON (e.g., document generation with logo embedding), load locally:
import json, os, glob
def load_brand_json(brand_slug=None):
brand_dir = "/mnt/.claude/brain/brands/"
if not os.path.exists(brand_dir):
return None
if brand_slug:
path = f"{brand_dir}brand-{brand_slug}.json"
else:
files = [f for f in glob.glob(f"{brand_dir}brand-*.json")
if 'style-guide' not in f]
if not files:
return None
path = sorted(files)[0]
return json.load(open(path)) if os.path.exists(path) else None
fonttools otf2ttf; if that fails, pre-render display text as PNG via PIL"status": "draft" in JSON, note in Cloud Brain record as incomplete. Resume next time: "Your brand kit is incomplete — want to finish setting it up?"search_notes: "MKT preferences"If the user says "update my brand" or "change my [brand element]":
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
npx claudepluginhub owenmecham/mbg --plugin brand-intelligence