From creator-stack
Generates user-level brand guidelines skill through phased workflow: ingest assets like websites/docs/images, interactive discovery, synthesize identity, output SKILL.md for enforcement. Activates on brand queries.
npx claudepluginhub kenneth-liao/ai-launchpad-marketplace --plugin creator-stackThis skill uses the workspace's default tool permissions.
Create a self-contained brand guidelines skill through guided discovery. The generated skill lives at the user level and enforces brand identity across all future Claude Code sessions.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Create a self-contained brand guidelines skill through guided discovery. The generated skill lives at the user level and enforces brand identity across all future Claude Code sessions.
Execute these phases in strict order. Phase 0 is optional (skip if the user has no existing assets to share). Never skip Phases 1-4. Each phase builds on the previous.
| Phase | Name | Action | Output |
|---|---|---|---|
| 0 | Context Ingestion | Collect + analyze existing business assets | Extracted brand signals + smart defaults for discovery |
| 1 | Brand Discovery | Interactive questionnaire across 6 dimensions | User preferences for brand identity |
| 2 | Synthesis & Preview | Format and present brand summary | User-confirmed brand identity spec |
| 3 | Skill Generation | Generate user-level SKILL.md from template | ~/.claude/skills/{brand-slug}/SKILL.md |
| 4 | Optional DS Creation | Create design systems for unmapped asset types | Updated mapping table in brand skill |
Before starting discovery, ask the user if they have existing business assets to share. Existing context dramatically reduces the number of questions needed — the skill extracts what it can and only asks about what's missing or ambiguous.
Opening prompt: "Before we start defining your brand, do you have any existing assets I can learn from? These could be your website, newsletter archives, social media profiles, pitch decks, brand documents, images, or anything that represents your brand today. This is optional — we can build entirely from scratch too."
Supported input types:
| Input Type | How to Provide | What to Extract |
|---|---|---|
| Website URL | User provides a URL like https://mybrand.com | Use WebFetch to capture the page. Extract: brand name, tagline (from hero/header), mission/about copy, value proposition, tone signals from copywriting style, target audience signals, content categories (→ asset types). Follow internal links to About, Mission, and similar pages if present. |
| Newsletter / blog posts | User provides URLs, files, or pastes content | Analyze writing style for voice and tone signals. Extract: recurring topics (→ value prop), how the author addresses readers (→ audience), vocabulary level (→ tone modifiers), sentence structure patterns. |
| Documents | User provides file paths (PDF, MD, TXT, DOCX) | Read and analyze. Could be pitch decks, brand guides, one-pagers, course outlines, etc. Extract any brand identity data present. |
| Images / logos | User provides file paths or pastes images | Read images visually. Extract: brand name from wordmarks, color palette signals, visual style/mood, existing design system hints. |
| Social media profiles | User provides profile URLs | Use WebFetch to capture. Extract: bio (→ tagline/mission), content themes, posting style (→ voice), follower description (→ audience), platform mix (→ asset types). |
| Existing brand skill | User points to a previous SKILL.md | Read it as a starting point for updates. Pre-fill all dimensions from existing data. |
| Skip | User has no assets to share | Proceed directly to Phase 1 with no smart defaults. |
Analysis protocol:
For each provided asset, extract and categorize signals into the 6 discovery dimensions:
| Dimension | What to Look For |
|---|---|
| 1. Brand name & tagline | Literal brand name, slogans, header text, social bios |
| 2. Mission & value prop | About pages, mission statements, "what we do" sections, pitch deck opening slides |
| 3. Voice & tone traits | Copywriting style — formal vs. casual, assertive vs. supportive, humorous vs. serious |
| 4. Tone modifiers | Sentence length patterns, vocabulary level, use of jargon, narrative vs. direct style |
| 5. Target audiences | Who the content addresses ("you" references), testimonials, case studies, subscriber descriptions |
| 6. Asset types | What visual content exists (thumbnails, social posts, headers, slides, etc.) |
After analysis, present a summary:
"Here's what I extracted from your assets:
- Brand name: {name} | Tagline: {tagline or "none found"}
- Mission signals: {1-2 sentence summary of what the brand appears to be about}
- Voice signals: {detected traits, e.g., "Reads as friendly and expert — conversational but backs up claims"}
- Tone signals: {detected modifiers, e.g., "Short punchy sentences, casual vocabulary, avoids jargon"}
- Audience signals: {who the content seems to target}
- Asset types spotted: {list of visual content types found}
I'll use these as starting points during discovery. You'll have full control to confirm, adjust, or override everything."
Store the complete analysis as context_analysis with per-dimension confidence levels:
Guide the user through structured questions to define their brand identity. Use the AskUserQuestion tool to present options. Ask questions one dimension at a time to keep the conversation focused.
Load the full question bank from references/discovery-framework.md.
Rules:
multiSelectSmart Default Behavior (when Phase 0 data exists):
| Confidence | Behavior |
|---|---|
| High | Present the extracted value and ask for confirmation: "From your website, I found your brand name is {name} with tagline {tagline}. Sound right, or want to change it?" Use AskUserQuestion with the extracted value as the first option and "I want to change this" as the second. |
| Medium | Present the extracted value as a suggested default: "Based on your writing style, I'd suggest Friendly & approachable + Expert & authoritative — your content is conversational but backs up claims with evidence. Does this match your intent?" Still present all options with the suggestion pre-noted. |
| Low | Present all options normally but note what was observed: "Your content seems to target developers, but I wasn't sure — who is your primary audience?" |
| No signal | Ask the full question as defined in the discovery framework with no pre-selection. |
Dimensions (in order):
Dimension 6 — Special handling:
Before presenting asset type options, scan ~/.claude/.context/design-systems/ to discover available design systems. For each directory found, read the design system markdown file to extract the style name.
After the user selects their asset types, ask a follow-up for each selected asset type: which design system should be used? Present three options per asset type:
Store the complete mapping as asset_ds_mapping.
After all 6 dimensions are answered, synthesize into a formatted brand summary and present for confirmation.
Steps:
ai-launchpad-newsletter)Present to the user:
## Brand Summary: {brand_name}
**Tagline:** {tagline}
**Mission:** {mission}
**Value Prop:** {value_prop}
**Voice Traits:** {trait_1}, {trait_2}
**Tone Modifiers:** {modifier_1}, {modifier_2}
**Voice Application Rules:**
- {rule_1}
- {rule_2}
- {rule_3}
**Audiences:**
- Primary: {primary_audience}
- Secondary: {secondary_audience}
**Asset Type → Design System Mapping:**
| Asset Type | Design System |
|------------|---------------|
| {type_1} | {ds_1 or "Create new" or "Decide later"} |
| ... | ... |
**Anti-Patterns (things this brand should NEVER do):**
- {anti_pattern_1}
- {anti_pattern_2}
- ...
Generate the brand guidelines skill at ~/.claude/skills/{brand-slug}/SKILL.md.
Steps:
{{placeholder}} with the confirmed brand data from Phase 2~/.claude/skills/{brand-slug}/ if it doesn't exist~/.claude/skills/{brand-slug}/SKILL.md{{placeholder}} markers remain"Your brand guidelines skill has been created at
~/.claude/skills/{brand-slug}/SKILL.md. Restart Claude Code to activate it — user-level skills are loaded at startup."
If any asset types in asset_ds_mapping were mapped to "Create new design system", offer to create them now.
Steps:
~/.claude/skills/{brand-slug}/SKILL.mdIf the user already has a brand skill (detected by checking ~/.claude/skills/ for existing brand directories), offer an abbreviated update flow.
Update workflow:
~/.claude/skills/*/SKILL.md~/.claude/.context/design-systems/ does not exist or is empty during Dimension 6, inform the user no design systems are available yet and offer "Create new" or "Decide later" as the only options~/.claude/skills/{brand-slug}/SKILL.md already exists, ask the user whether to overwrite or choose a different slug