Brand Setup — Interactive Brand Profiling skill

Set up or update the brand profile every skill reads: voice, audience, compliance.

by indranilbanerjee·MIT license·★ 866 Stars on the repo·GitHub ↗

Use now

Inside this skill

SKILL.md · the author's own words
# Brand Setup — Interactive Brand Profiling

> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skil…

## When to Use This Skill

- User says "set up a new brand" or "create a brand profile"
- User mentions a new client or project for marketing
- User wants to switch between brands (agency use case)
- User wants to update brand voice, audiences, or goals
- First time using any marketing skill without an active brand

## Setup Modes

### Quick Setup (5 questions — recommended for getting started fast)
If the user wants to get started quickly, or says "quick setup", ask only these 5 essential questions:

Word-for-word excerpt, not a result. Read the full SKILL.md ↓

Files of Brand Setup — Interactive Brand Profiling

indranilbanerjee/main1 file shown
SKILL.md
Show the full text145 lines

Brand Setup — Interactive Brand Profiling

Script location. If your host does not set ${CLAUDE_PLUGIN_ROOT}, the scripts are in this plugin's scripts/ folder, next to skills/. Run them with Python 3.10 or newer: python, or python3 where python is not found (macOS, many Linux systems).

When to Use This Skill

  • User says "set up a new brand" or "create a brand profile"
  • User mentions a new client or project for marketing
  • User wants to switch between brands (agency use case)
  • User wants to update brand voice, audiences, or goals
  • First time using any marketing skill without an active brand

Setup Modes

If the user wants to get started quickly, or says "quick setup", ask only these 5 essential questions:

  1. Brand name — "What's your brand or business name?"
  2. What you do — "In one sentence, what does [brand] do?" (extract industry, business model, USP)
  3. Target audience — "Who is your primary customer?" (extract B2B/B2C, demographics)
  4. Brand voice — "Pick 3 words that describe how your brand communicates" (map to formality/energy/humor/authority scales)
  5. Primary channel — "Where do you primarily market? (social media, email, SEO, paid ads, etc.)"

From these 5 answers, intelligently populate the full profile:

  • Infer industry, business model type, and compliance requirements
  • Map voice descriptors to the 1-10 scales (e.g., "professional" → formality: 8, "fun" → humor: 7)
  • Set sensible defaults for everything else
  • Tell the user: "Quick profile created! You can refine it anytime with /digital-marketing-pro:brand-setup --full"
Full Setup (17 questions — comprehensive profiling)

Use the full setup when:

  • User explicitly asks for detailed/full/comprehensive setup
  • User says "/digital-marketing-pro:brand-setup --full"
  • User wants to update specific sections of an existing profile

Process (Full Setup)

Step 1: Brand Identity

Ask the user one question at a time (don't overwhelm):

  1. Brand name: "What's the brand/company name?"
  2. Elevator pitch: "In one sentence, what does [brand] do?"
  3. USP: "What makes [brand] different from competitors?"
  4. Mission/Values: "What's the brand's mission? What values drive it?"
Step 2: Business Model
  1. Business type: Present options:

    • B2B SaaS / Software
    • B2C eCommerce / DTC
    • B2B Services / Consulting
    • Local Business
    • Agency (managing multiple clients)
    • Creator / Personal Brand
    • Enterprise
    • Non-Profit
    • Marketplace
  2. Revenue model: subscription, transactional, freemium, marketplace commission, donation, retainer, advertising

  3. Price range and sales cycle: "What's your typical deal size and how long does it take to close?"

Step 3: Industry & Compliance
  1. Industry: "What industry are you in?" (match to industry-profiles.md)
  2. Regulated?: "Are you in a regulated industry? (healthcare, finance, legal, alcohol, cannabis, etc.)"
  3. Target markets: "What countries/regions do you sell to?" (triggers compliance rules)
Step 4: Brand Voice
  1. Voice dimensions — Ask user to rate 1-10 or describe:

    • Formality (1=very casual like a friend, 10=very formal like a law firm)
    • Energy (1=calm and measured, 10=enthusiastic and bold)
    • Humor (1=never use humor, 10=humor is core to the brand)
    • Authority (1=peer-level, friendly guide, 10=expert thought leader)
  2. Personality traits: "Pick 3-5 words that describe the brand's personality" (e.g., witty, empathetic, direct, bold, thoughtful, playful, authoritative, warm)

  3. This-Not-That: "Give me examples of how you'd say something vs. how you wouldn't" (e.g., "We say 'Let's figure this out together' not 'Contact our support team'")

  4. Sample content: "Share 2-3 URLs or text snippets of content you think nails your brand voice"

Step 5: Channels & Goals
  1. Active channels: "Which marketing channels are you currently using?" (website, Instagram, LinkedIn, Twitter, TikTok, YouTube, Facebook, Pinterest, Email, Google Ads, Meta Ads, etc.)

  2. Goals: "What's your #1 marketing goal right now?" + target KPIs + budget range + team size

Step 6: Competitors
  1. Competitors: "Name 3-5 competitors (direct or aspirational)"
    • For each: name, URL, relationship (direct/indirect/aspirational), known strengths/weaknesses
Step 7: Save & Confirm

After collecting all information:

  1. Run: python "${CLAUDE_PLUGIN_ROOT}/scripts/setup.py" --create-brand "[brand name]"
  2. Update the created profile.json with all collected data
  3. Add the AI-assistance disclosure block (defaults unless the user chooses otherwise): "ai_disclosure": {"mode": "claude-surfaces", "text": null, "author": null}. Modes: claude-surfaces (default — the disclosure attaches when content runs on a Claude surface or the surface is uncertain; skipped only on an affirmatively-detected non-Claude harness), always (every surface — safest for brands with their own AI-transparency obligations), off (never; the brand owns that choice). author is OPTIONAL and may stay null — the default wording ("reviewed by our editorial team") needs no name. Custom text replaces the default verbatim; note the default is vendor-neutral and claims only the review the pipeline performs
  4. Confirm to user: "Brand profile created for [brand_name]. All marketing modules will now use this context. You can update it anytime by saying 'update my brand profile.'"

Switching Brands

When user says "switch to [brand name]":

  1. Run: python "${CLAUDE_PLUGIN_ROOT}/scripts/setup.py" --list-brands
  2. Find matching brand
  3. Update ~/.claude-marketing/brands/_active-brand.json
  4. Confirm: "Switched to [brand_name]."

Updating a Brand

When user wants to update specific fields:

  1. Load current profile from ~/.claude-marketing/brands/{slug}/profile.json
  2. Ask about the specific field(s) to update
  3. Write updated profile back
  4. Confirm changes

Profile Storage and Brand Isolation

Each brand lives under ~/.claude-marketing/brands/{slug}/: profile.json (full brand context), guidelines/ (imported style guides, restrictions, approved messaging), and templates/ (custom deliverable templates). Every skill loads these automatically. Agencies keep one profile per client; each brand gets isolated context with no cross-contamination, and /digital-marketing-pro:switch-brand <name> (or --list) changes the active one.

After Setup

After creating the profile, ask:

"Brand profile for [name] is ready. Would you like to:

  • Import an existing style guide? (/digital-marketing-pro:import-guidelines)
  • Run a competitive analysis? (/digital-marketing-pro:competitor-analysis)
  • Plan your first campaign? (/digital-marketing-pro:campaign-plan)
  • Audit your SEO? (/digital-marketing-pro:seo-audit)
  • Check which connectors are active? (/digital-marketing-pro:integrations)"

Important Notes

  • NEVER skip the brand voice section — it's what makes all content outputs on-brand
  • For agencies: each client should be a separate brand profile
  • Store voice samples as markdown files in the brand's voice-samples/ directory
  • Auto-detect industry compliance rules based on the industry and market selections
1---
2name: brand-setup
3description: "Set up or update the brand profile every skill reads: voice, audience, compliance. \"set up a new brand\""
4argument-hint: "[brand-name or --full]"
5---
6 
7# Brand Setup — Interactive Brand Profiling
8 
9> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
10 
11## When to Use This Skill
12 
13- User says "set up a new brand" or "create a brand profile"
14- User mentions a new client or project for marketing
15- User wants to switch between brands (agency use case)
16- User wants to update brand voice, audiences, or goals
17- First time using any marketing skill without an active brand
18 
19## Setup Modes
20 
21### Quick Setup (5 questions — recommended for getting started fast)
22If the user wants to get started quickly, or says "quick setup", ask only these 5 essential questions:
231. **Brand name** — "What's your brand or business name?"
242. **What you do** — "In one sentence, what does [brand] do?" (extract industry, business model, USP)
253. **Target audience** — "Who is your primary customer?" (extract B2B/B2C, demographics)
264. **Brand voice** — "Pick 3 words that describe how your brand communicates" (map to formality/energy/humor/authority scales)
275. **Primary channel** — "Where do you primarily market? (social media, email, SEO, paid ads, etc.)"
28 
29From these 5 answers, intelligently populate the full profile:
30- Infer industry, business model type, and compliance requirements
31- Map voice descriptors to the 1-10 scales (e.g., "professional" → formality: 8, "fun" → humor: 7)
32- Set sensible defaults for everything else
33- Tell the user: "Quick profile created! You can refine it anytime with /digital-marketing-pro:brand-setup --full"
34 
35### Full Setup (17 questions — comprehensive profiling)
36Use the full setup when:
37- User explicitly asks for detailed/full/comprehensive setup
38- User says "/digital-marketing-pro:brand-setup --full"
39- User wants to update specific sections of an existing profile
40 
41## Process (Full Setup)
42 
43### Step 1: Brand Identity
44 
45Ask the user one question at a time (don't overwhelm):
46 
471. **Brand name**: "What's the brand/company name?"
482. **Elevator pitch**: "In one sentence, what does [brand] do?"
493. **USP**: "What makes [brand] different from competitors?"
504. **Mission/Values**: "What's the brand's mission? What values drive it?"
51 
52### Step 2: Business Model
53 
545. **Business type**: Present options:
55 - B2B SaaS / Software
56 - B2C eCommerce / DTC
57 - B2B Services / Consulting
58 - Local Business
59 - Agency (managing multiple clients)
60 - Creator / Personal Brand
61 - Enterprise
62 - Non-Profit
63 - Marketplace
64 
656. **Revenue model**: subscription, transactional, freemium, marketplace commission, donation, retainer, advertising
667. **Price range and sales cycle**: "What's your typical deal size and how long does it take to close?"
67 
68### Step 3: Industry & Compliance
69 
708. **Industry**: "What industry are you in?" (match to industry-profiles.md)
719. **Regulated?**: "Are you in a regulated industry? (healthcare, finance, legal, alcohol, cannabis, etc.)"
7210. **Target markets**: "What countries/regions do you sell to?" (triggers compliance rules)
73 
74### Step 4: Brand Voice
75 
7611. **Voice dimensions** — Ask user to rate 1-10 or describe:
77 - Formality (1=very casual like a friend, 10=very formal like a law firm)
78 - Energy (1=calm and measured, 10=enthusiastic and bold)
79 - Humor (1=never use humor, 10=humor is core to the brand)
80 - Authority (1=peer-level, friendly guide, 10=expert thought leader)
81 
8212. **Personality traits**: "Pick 3-5 words that describe the brand's personality" (e.g., witty, empathetic, direct, bold, thoughtful, playful, authoritative, warm)
83 
8413. **This-Not-That**: "Give me examples of how you'd say something vs. how you wouldn't" (e.g., "We say 'Let's figure this out together' not 'Contact our support team'")
85 
8614. **Sample content**: "Share 2-3 URLs or text snippets of content you think nails your brand voice"
87 
88### Step 5: Channels & Goals
89 
9015. **Active channels**: "Which marketing channels are you currently using?" (website, Instagram, LinkedIn, Twitter, TikTok, YouTube, Facebook, Pinterest, Email, Google Ads, Meta Ads, etc.)
91 
9216. **Goals**: "What's your #1 marketing goal right now?" + target KPIs + budget range + team size
93 
94### Step 6: Competitors
95 
9617. **Competitors**: "Name 3-5 competitors (direct or aspirational)"
97 - For each: name, URL, relationship (direct/indirect/aspirational), known strengths/weaknesses
98 
99### Step 7: Save & Confirm
100 
101After collecting all information:
102 
1031. Run: `python "${CLAUDE_PLUGIN_ROOT}/scripts/setup.py" --create-brand "[brand name]"`
1042. Update the created profile.json with all collected data
1053. Add the AI-assistance disclosure block (defaults unless the user chooses otherwise): `"ai_disclosure": {"mode": "claude-surfaces", "text": null, "author": null}`. Modes: `claude-surfaces` (default — the disclosure attaches when content runs on a Claude surface or the surface is uncertain; skipped only on an affirmatively-detected non-Claude harness), `always` (every surface — safest for brands with their own AI-transparency obligations), `off` (never; the brand owns that choice). `author` is OPTIONAL and may stay null — the default wording ("reviewed by our editorial team") needs no name. Custom `text` replaces the default verbatim; note the default is vendor-neutral and claims only the review the pipeline performs
1064. Confirm to user: "Brand profile created for [brand_name]. All marketing modules will now use this context. You can update it anytime by saying 'update my brand profile.'"
107 
108## Switching Brands
109 
110When user says "switch to [brand name]":
1111. Run: `python "${CLAUDE_PLUGIN_ROOT}/scripts/setup.py" --list-brands`
1122. Find matching brand
1133. Update `~/.claude-marketing/brands/_active-brand.json`
1144. Confirm: "Switched to [brand_name]."
115 
116## Updating a Brand
117 
118When user wants to update specific fields:
1191. Load current profile from `~/.claude-marketing/brands/{slug}/profile.json`
1202. Ask about the specific field(s) to update
1213. Write updated profile back
1224. Confirm changes
123 
124## Profile Storage and Brand Isolation
125 
126Each brand lives under `~/.claude-marketing/brands/{slug}/`: `profile.json` (full brand context), `guidelines/` (imported style guides, restrictions, approved messaging), and `templates/` (custom deliverable templates). Every skill loads these automatically. Agencies keep one profile per client; each brand gets isolated context with no cross-contamination, and `/digital-marketing-pro:switch-brand <name>` (or `--list`) changes the active one.
127 
128## After Setup
129 
130After creating the profile, ask:
131 
132"Brand profile for [name] is ready. Would you like to:
133- Import an existing style guide? (`/digital-marketing-pro:import-guidelines`)
134- Run a competitive analysis? (`/digital-marketing-pro:competitor-analysis`)
135- Plan your first campaign? (`/digital-marketing-pro:campaign-plan`)
136- Audit your SEO? (`/digital-marketing-pro:seo-audit`)
137- Check which connectors are active? (`/digital-marketing-pro:integrations`)"
138 
139## Important Notes
140 
141- NEVER skip the brand voice section — it's what makes all content outputs on-brand
142- For agencies: each client should be a separate brand profile
143- Store voice samples as markdown files in the brand's voice-samples/ directory
144- Auto-detect industry compliance rules based on the industry and market selections
145 

Discussion

Alternatives

Creative performance analysisDiagnose why a specific ad creative is winning or losing using the generalized hook-hold-click-convert funnel, applicable across any platform. Triggers on 'why is this ad underperforming', 'diagnose my creative', or 'where in the funnel is this ad failing'. Platform-agnostic diagnostic framework — platform-specific versions (meta-ads-creative-analytics) apply this with platform-native metrics.Coding · MITProfessional Full-Stack Developer for Network Mapping & Monitoring ApplicationAct as a professional full-stack developer tasked with building a web application for mapping and monitoring networks using Mikrotik Netwatch API. Implement multi-user role-based management to handle devices, monitor their status, and manage user subscriptions.Coding · CC0-1.0Constraint driven developmentEstablishes a project's quality bar as a written contract and stops agents quietly lowering it. Interviews the user on which dimensions matter, supplies sane default thresholds when they have no number in mind, records everything in CONSTRAINTS.md, and watches the diff for a weakened bar — new @ts-ignore or eslint-disable suppressions, skipped or deleted tests, assertions stripped out, unimplemented stubs, thresholds edited down. Use when no quality bar is written down, when the user says "set up constraints" or "define our standards", when the user wants dimensions they care about — accessibility, web performance, coverage — set up as enforced constraints, when an agent keeps silencing checks or skipping tests to get to green, when you need a coverage or performance threshold and don't know what number to pick, or when an agent writes more code than anyone will read.Coding · MITObservability and instrumentationInstruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the available data.Coding · MIT