brand-voice-generator
Generate tone-of-voice and brand-system files for use with the PPTX Generator and other brand-aware skills. TRIGGERS - Use this skill when user says: - "help me create a brand system" / "set up my brand" - "generate my tone of voice" / "create my voice guidelines" - "configure my brand for presentations" / "set up brand for slides" - "create brand files" / "initialize my brand" - Any request about defining brand identity, voice, or visual system for content creation Creates brand.json, config.json, brand-system.md, and tone-of-voice.md files.
What this skill does
# Brand & Voice Generator
Generate complete brand configuration files for content creation skills (PPTX Generator, Excalidraw diagrams, document generation, social media). This skill guides users through defining their brand identity and writing voice, then produces four standardized files that all brand-aware skills consume.
## What This Creates
| File | Purpose | Used By |
|------|---------|---------|
| `brand.json` | Colors, fonts, assets — machine-readable design tokens | PPTX Generator, Excalidraw, any skill reading brand colors/fonts |
| `config.json` | Output settings (directories, slide dimensions) | PPTX Generator |
| `brand-system.md` | Design philosophy, visual guidelines, signature elements | All content skills needing visual direction |
| `tone-of-voice.md` | Writing voice, vocabulary, banned words, tone calibration | Any skill generating text content |
## Output Location
Default location (project-local, works with PPTX Generator):
```
.claude/brands/{brand-name}/
```
Brand files are stored relative to the project root. The PPTX Generator and other brand-aware skills look for brands at `.claude/brands/` by default.
Always create an `assets/` subdirectory for logos and icons.
---
## How This Works
The process has three phases. The goal is to minimize back-and-forth — extract as much as possible from what the user already told you, use smart defaults for the rest, and only ask about things that genuinely need human input.
### Phase 1: Extract & Infer
Before asking any questions, analyze what the user already provided. Users often pack a lot of information into their initial message. Look for:
- **Brand name** — Any proper noun or quoted name
- **Industry/domain** — What they do (SaaS, education, consulting, etc.)
- **Colors** — Any hex codes, color names, or theme preferences (dark/light)
- **Personality** — Adjectives describing their brand or communication style
- **Voice influences** — Names of creators, brands, or people they admire
- **Anti-patterns** — Things they want to avoid ("I hate corporate speak")
- **Style preferences** — Sentence length, contractions, formality level
- **Quick mode signals** — "just the basics", "quick setup", "get started fast", "minimal"
Build a mental model of what you know vs. what you need. If the user gave you a name, a color, and said "dark theme" — that's enough for Quick Mode.
### Phase 2: Fill the Gaps
Ask only for what you couldn't infer. Batch your questions into a single message rather than asking one at a time. Here's what you need and how to prioritize:
**Always needed** (ask if not provided):
- Brand name (folder name: lowercase, hyphens, no spaces)
- At least one accent color (hex code)
- Dark or light theme preference
**Ask only if doing a full setup** (skip for Quick Mode):
- 3 personality words
- Voice influences (2-3 creators/brands they admire)
- What to avoid (tone, phrases, patterns)
- Sentence style preference
**Use defaults for** (don't ask unless user seems particular):
- Typography (default: Inter / Inter / JetBrains Mono)
- Full 10-color palette (generate from accent + theme)
- Assets (default: null, remind them to add later)
- Design principles (infer from personality + industry)
**Example batched question for full setup:**
> "I'll set up your brand files. I just need a few things:
> 1. Brand name for the folder (lowercase with hyphens, like 'my-brand')
> 2. Your signature color (hex code)
> 3. Dark or light theme?
> 4. Describe your brand personality in 3 words
> 5. Any creators or brands whose communication style you admire?"
### Phase 3: Generate
Once you have enough information, generate all four files. Don't ask for confirmation before generating — just produce the files and tell the user what you created. They can refine afterwards.
---
## Quick Mode
Trigger when the user says "just the basics", "quick setup", "minimal", or provides only a name and color. Quick Mode needs just three things:
1. Brand name
2. Signature color
3. Dark or light theme
Generate everything else from smart defaults based on industry context. Read `reference/color-presets.md` for pre-built color palettes — pick the closest match to their accent color and theme, then swap in their actual accent.
**Industry-aware voice defaults:**
| Industry | Personality | Voice Style | Influences |
|----------|-------------|-------------|------------|
| B2B SaaS | Clear, Confident, Practical | Professional but human | Stripe, Linear, Basecamp |
| Developer tools | Technical, Direct, Honest | Dev-to-dev, no fluff | Fireship, Vercel, Hashicorp |
| Education | Approachable, Clear, Patient | Mentor-to-student | 3Blue1Brown, Fireship |
| Creative/Design | Bold, Expressive, Authentic | Confident and opinionated | Apple, Figma |
| Consulting | Authoritative, Measured, Trustworthy | Expert-to-peer | McKinsey, HBR |
After generating Quick Mode files, tell the user:
> "Brand files created. Run this skill again anytime to refine your voice, colors, or design philosophy."
---
## Generating the Files
### brand.json
All color hex codes are stored WITHOUT the `#` prefix. This is important — downstream tools expect bare hex values.
```json
{
"name": "{display_name}",
"description": "{one_line_description}",
"colors": {
"background": "0B0F1A",
"background_alt": "0E1225",
"text": "F5F5F5",
"text_secondary": "B0B8C9",
"accent": "2563EB",
"accent_secondary": "3B82F6",
"accent_tertiary": "60A5FA",
"code_bg": "080B14",
"card_bg": "131829",
"card_bg_alt": "1A2035"
},
"fonts": {
"heading": "Inter",
"body": "Inter",
"code": "JetBrains Mono"
},
"assets": {
"logo": null,
"logo_dark": null,
"icon": null
}
}
```
**Building the 10-color palette from a single accent:**
1. `accent` — the user's provided color, stored without `#`
2. `accent_secondary` — lighter variant (shift toward white by ~15%)
3. `accent_tertiary` — even lighter (shift by ~30%) or a complementary hue
4. For dark themes: backgrounds in the `0a0a0a`–`1a1a2e` range, text in `f0f0f0`–`ffffff`
5. For light themes: backgrounds in `ffffff`–`f8f9fa` range, text in `111827`–`333333`
6. `code_bg` — slightly darker than background
7. `card_bg` / `card_bg_alt` — between background and text
Read `reference/color-presets.md` for complete palettes to use as starting points.
### config.json
```json
{
"output": {
"directory": "output/{brand_folder_name}",
"naming": "{name}-{date}",
"keep_parts": false
},
"generation": {
"slides_per_batch": 5,
"auto_combine": true,
"open_after_generate": false
},
"defaults": {
"slide_width_inches": 13.333,
"slide_height_inches": 7.5
}
}
```
### tone-of-voice.md
This is the highest-value file. A good tone-of-voice document makes every piece of generated content sound like the brand. Use `reference/tone-template.md` as the structure, but focus on making the content specific and actionable:
**What makes a great tone-of-voice file:**
- **Concrete vocabulary patterns** — actual words and phrases to use, not abstract descriptions
- **A banned-word replacement table** — mapping corporate/filler words to preferred alternatives (e.g., "leverage" → "use", "utilize" → "use", "synergize" → remove entirely). This is one of the most useful sections because it gives clear, unambiguous guidance.
- **Tone-by-context calibration** — how the voice shifts across different content types (presentations vs. social media vs. documentation)
- **Real example phrases** — headlines, CTAs, and descriptions written in the brand's actual voice
- **A pre-publish checklist** — 4-5 questions to ask before publishing anything
Read `reference/voice-templates.md` for example voice configurations.
### brand-system.md
Use `reference/brand-template.md` as the structure. Key sections:
- Brand philosophy with 3-4 core principles
- Color system documentation with usage guidance
- Typography rules
- Signature visual elements (suggestRelated in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".