Source profileQuality 83/100

MoizIbnYousaf/marketing-cli/skills/brand-kit-playground/SKILL.md

brand-kit-playground

Generate an interactive HTML brand playground that shows your brand rendered live — palette, typography, logo, voice — with a social card and OG image preview that updates as you tweak tokens. Opens in browser. The visual approval step for the /cmo flow: /visual-style writes the brand, this skill shows it. Use when the user says "show me my brand", "brand playground", "preview my brand", "what does our brand look like", "visual preview", "brand kit", "see my colors", "how does my brand look", or

Source repository stars
27
Declared platforms
0
Static risk flags
0
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Your brand lives in markdown files. This skill renders it as a living, interactive HTML page the user opens in their browser — palette swatches, type specimens, logo lockups, and a real social card preview that updates as they tweak tokens. When they're happy, they copy the stru…

Best for

  • Use when the user says "show me my brand", "brand playground", "preview my brand", "what does our brand look like", "visual preview", "brand kit", "see my colors", "how does my brand look", or

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/brand-kit-playground"
Safe inspection promptEditorial

Inspect the Agent Skill "brand-kit-playground" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/brand-kit-playground/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Step 1: Extract Tokens

    Parse brand/creative-kit.md into structured data. Look for:

    Colors section: hex values for primary, secondary, accent. If not found, derive from the first hex codes mentioned anywhere in the file.Typography section: font family names, weights. If Google Fonts, construct the URL.Visual Brand Style section: aesthetic direction, lighting, composition notes. Use these to inform the playground's own aesthetic (dark mode vs light, gradient direction, texture).
  2. 02

    Step 2: Write the HTML

    Use the template structure from references/html-architecture.md. The file should be 800-1500 lines depending on brand complexity. Key implementation details:

    All CSS as in . Brand tokens as CSS custom properties on :root.All JS as before . Single state object, single updateAll() function.Google Fonts loaded via — this is the ONE external dependency.
  3. 03

    Step 3: Open It

    Tell the user: "Your brand playground is open in the browser. Play with the controls — every change updates the preview instantly. When you're happy with how it looks, click 'Copy Tokens' and paste the JSON here. I'll update your brand files."

    Tell the user: "Your brand playground is open in the browser. Play with the controls — every change updates the preview instantly. When you're happy with how it looks, click 'Copy Tokens' and paste the JSON here. I'll u…
  4. 04

    Step 4: Process Feedback

    When the user pastes the token JSON back:

    Parse it.Diff against current brand/creative-kit.md values.Show the diff: "You changed primary from 6366F1 to 4F46E5 and increased border radius to 12px. Want me to update creative-kit.md?"
  5. 05

    On Activation

    1. Read brand/creative-kit.md — extract the Colors, Typography, and Visual Brand Style sections. - If the file is template/empty: warn the user. "Your creative kit is empty — the playground will use placeholder values. Run /visual-style first for a real preview, or continue and…

    Read brand/creative-kit.md — extract the Colors, Typography, and Visual Brand Style sections.If the file is template/empty: warn the user. "Your creative kit is empty — the playground will use placeholder values. Run /visual-style first for a real preview, or continue and I'll use defaults you can tweak."If it has real content: proceed. Parse colors (hex values), fonts (family names), border radius, shadows, gradients.

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score83/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars27SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
MoizIbnYousaf/marketing-cli
Skill path
skills/brand-kit-playground/SKILL.md
Commit
f12fbcbe4929584697b309b9096c9427b0cfce8e
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

/brand-kit-playground — Visual Brand Workbench

Your brand lives in markdown files. This skill renders it as a living, interactive HTML page the user opens in their browser — palette swatches, type specimens, logo lockups, and a real social card preview that updates as they tweak tokens. When they're happy, they copy the structured JSON and you write it back to brand/creative-kit.md.

This is the visual approval step in the /cmo flow. /visual-style writes the brand identity. This skill shows it.


On Activation

  1. Read brand/creative-kit.md — extract the Colors, Typography, and Visual Brand Style sections.
    • If the file is template/empty: warn the user. "Your creative kit is empty — the playground will use placeholder values. Run /visual-style first for a real preview, or continue and I'll use defaults you can tweak."
    • If it has real content: proceed. Parse colors (hex values), fonts (family names), border radius, shadows, gradients.
  2. Read brand/voice-profile.md — extract tone adjectives, vocabulary preferences, headline style.
  3. Read brand/positioning.md — extract the primary positioning angle for the social card headline.
  4. Read brand/audience.md if it exists — extract audience description for the voice snapshot panel.
  5. If no brand files exist at all: proceed with sensible defaults. The playground works at L0. Show placeholder brand with a note: "These are defaults. Fill in your brand files and re-run for a real preview."

What You Build

A single self-contained HTML file with inline CSS and JS. Zero external dependencies except Google Fonts (loaded via <link>). No framework. No build step. No server.

The file is written to the project root as brand-playground.html and opened in the user's default browser via open brand-playground.html.

Layout

+-- BRAND BAR ------------------------------------------------+
|  [Logo] Project Name Brand Playground    [Light/Dark toggle] |
+--------------------------------------------------------------+
|                    |                                          |
|  CONTROLS          |  TAB: [Brand System] [Social Card] [OG] |
|  --------          |  ----------------------------------------|
|                    |                                          |
|  > Colors          |  (Brand System tab)                     |
|    Primary [pick]  |  COLOR PALETTE                          |
|    Secondary       |  ## ## ## ## ## (live swatches)          |
|    Accent          |                                         |
|                    |  TYPOGRAPHY                             |
|  > Typography      |  Display: Aa Space Grotesk              |
|    Display font    |  Body: Aa Inter Regular                 |
|    Body font       |  Mono: Aa JetBrains Mono               |
|    Scale ratio     |                                         |
|                    |  VOICE SNAPSHOT                         |
|  > Visual Style    |  Tone: confident, warm, technical       |
|    Border radius   |  Audience: indie developers             |
|    Shadow depth    |  Style: short-punchy headlines          |
|    Texture         |                                         |
|                    |  (Social Card tab)                      |
|  > Social Card     |  +---------------------------+          |
|    Headline        |  |                           |          |
|    Subhead         |  |  We just shipped          |          |
|    Badge text      |  |  dark mode                |          |
|    Layout [v]      |  |                           |          |
|    Background [v]  |  |  [logo]          [NEW]    |          |
|                    |  |                           |          |
|  > Presets         |  +---------------------------+          |
|    Launch          |  1200x675 - Twitter/X                   |
|    Blog Post       |                                         |
|    Feature         |  MULTI-PREVIEW:                         |
|                    |  [Tw] [Li] [IG] [St]                    |
+--------------------+-----------------------------------------+
|  TOKEN OUTPUT (structured JSON)              [Copy Tokens]   |
+--------------------------------------------------------------+

Three Tabs

Tab 1: Brand System — The identity overview. Color palette rendered as large swatches with hex values and contrast ratios. Typography specimens at the brand's modular scale. Logo lockups (primary, mark, on-dark) if logo paths exist in creative-kit.md. Voice snapshot showing tone, vocabulary, headline style from voice-profile.md.

Tab 2: Social Card — A live social card preview rendered with the brand tokens. The user types a headline, picks a layout variant (centered, split, overlay, minimal), chooses a background style (gradient, solid, dark, light). The card re-renders instantly. Below: a multi-preview strip showing the same card at Twitter (1200x675), LinkedIn (1200x627), Instagram (1080x1080), and Story (1080x1920) aspect ratios.

Tab 3: OG Image — Same pattern as social card but for OG images. Inputs: title, description, author, category tag. Layouts: editorial, minimal, bold. Target: 1200x630.

Controls Panel (Left Side)

Controls are grouped by concern. Each group is collapsible. Controls update the preview instantly — no "Apply" button.

TokenControlRange
Colors (primary, secondary, accent, background, foreground)Color picker (native <input type="color">)Any hex
Display fontDropdown10 curated options + current brand font
Body fontDropdown10 curated options + current brand font
Scale ratioSlider1.125 (Major Second) to 1.5 (Perfect Fifth)
Border radiusSlider0px to 24px
Shadow depthSlidernone / sm / md / lg / xl
Social card headlineText inputMax 60 chars
Social card layoutSegmented buttonsCentered / Split / Overlay / Minimal
Social card backgroundDropdownGradient / Solid / Dark / Light

Token Output (Bottom)

A <pre> block showing the current token state as structured JSON:

{
  "colors": {
    "primary": "#6366F1",
    "primaryForeground": "#FFFFFF",
    "secondary": "#7C3AED",
    "accent": "#F59E0B",
    "background": "#FFFFFF",
    "foreground": "#0F172A"
  },
  "typography": {
    "display": { "family": "Space Grotesk", "weights": [700, 800] },
    "body": { "family": "Inter", "weights": [400, 500, 600] },
    "scale": { "base": 16, "ratio": 1.25 }
  },
  "visual": {
    "borderRadius": "8px",
    "shadowDepth": "md",
    "texture": "none"
  }
}

A "Copy Tokens" button copies this JSON to the clipboard. The user pastes it back into the conversation. The agent reads the JSON and updates brand/creative-kit.md accordingly.

Presets

Include 3-5 presets that snap all controls to a cohesive combination:

PresetVibeColorsTypeVisual
Tech StartupClean, modern, confidentIndigo + violet + amberSpace Grotesk + Inter8px radius, md shadow
Indie MakerWarm, approachable, funCoral + teal + goldInstrument Serif + DM Sans12px radius, lg shadow
EnterprisePrecise, authoritative, refinedNavy + slate + emeraldGeneral Sans + IBM Plex4px radius, sm shadow
Creative StudioBold, expressive, artisticHot pink + lime + blackSpace Grotesk + Syne0px radius, none shadow
From BrandCurrent creative-kit.md values(extracted)(extracted)(extracted)

The "From Brand" preset is always first and always selected on load. It represents the current brand state. Other presets are for exploration.


How You Generate It

Step 1: Extract Tokens

Parse brand/creative-kit.md into structured data. Look for:

  • Colors section: hex values for primary, secondary, accent. If not found, derive from the first hex codes mentioned anywhere in the file.
  • Typography section: font family names, weights. If Google Fonts, construct the <link> URL.
  • Visual Brand Style section: aesthetic direction, lighting, composition notes. Use these to inform the playground's own aesthetic (dark mode vs light, gradient direction, texture).
  • Logo paths: if mentioned, include as <img> tags in the brand system tab.

If parsing is ambiguous, use reasonable defaults and note what you assumed.

Step 2: Write the HTML

Use the template structure from references/html-architecture.md. The file should be 800-1500 lines depending on brand complexity. Key implementation details:

  • All CSS as <style> in <head>. Brand tokens as CSS custom properties on :root.
  • All JS as <script> before </body>. Single state object, single updateAll() function.
  • Google Fonts loaded via <link rel="stylesheet"> — this is the ONE external dependency.
  • Dark/light toggle switches :root variables. Both themes use the brand palette.
  • Social card renderer uses absolute positioning within a fixed-aspect-ratio container.
  • Multi-preview strip uses CSS transform: scale() to show all sizes simultaneously.
  • Color pickers use native <input type="color"> — no library needed.
  • Token output updates on every state change via JSON.stringify(state.tokens, null, 2).
  • Copy button uses navigator.clipboard.writeText().

Step 3: Open It

open brand-playground.html

Tell the user: "Your brand playground is open in the browser. Play with the controls — every change updates the preview instantly. When you're happy with how it looks, click 'Copy Tokens' and paste the JSON here. I'll update your brand files."

Step 4: Process Feedback

When the user pastes the token JSON back:

  1. Parse it.
  2. Diff against current brand/creative-kit.md values.
  3. Show the diff: "You changed primary from #6366F1 to #4F46E5 and increased border radius to 12px. Want me to update creative-kit.md?"
  4. On confirmation, write the changes to the appropriate sections of creative-kit.md.
  5. Log the update to brand/assets.md: "Brand playground session — updated colors and visual style."

Integration with /cmo Flow

This skill slots into the /cmo foundation-building workflow:

/cmo activation
  -> mktg init (if needed)
  -> 3 research agents in parallel (brand, audience, competitors)
  -> /visual-style (writes creative-kit.md)
  -> /brand-kit-playground (renders creative-kit.md as interactive HTML)
     -> User tweaks in browser
     -> User copies tokens
     -> Agent updates creative-kit.md
  -> Continue to /image-gen, /creative, etc.

The playground is the approval gate between brand definition and brand execution. Before this skill existed, the user approved their visual identity by reading markdown. Now they see it rendered.


Progressive Enhancement Levels

LevelContextBehavior
L0No brand filesPlaceholder brand with defaults. Full functionality. Note: "These are defaults."
L1creative-kit.md onlyTokens extracted. No voice or positioning in the snapshot panels.
L2creative-kit + voiceTokens + voice snapshot. Social card headlines informed by voice style.
L3creative-kit + voice + positioningFull context. Social card headline defaults to positioning angle.
L4All 4 filesComplete playground with audience info in voice panel. Best experience.

Anti-Patterns

Anti-patternInsteadWhy
Generating a Next.js app with npm installSingle HTML file, zero dependenciesThe playground must be instant. npm install is a 30-second wall that kills the flow. /app-store-screenshots scaffolds Next.js because it needs html-to-image for PNG export. This skill only needs browser rendering.
Using a framework (React, Vue, etc.)Vanilla JS with a state objectFrameworks add bundle size, build complexity, and failure modes. The /playground plugin proves vanilla JS works for interactive previews.
Making the HTML generic/template-lookingThe playground LOOKS like the brandIf the brand is dark and moody, the playground chrome should be dark. If the brand is warm and organic, the playground should feel warm. The playground's own aesthetic is derived from the brand tokens — it's not neutral gray chrome.
Hardcoding Google Fonts URLsConstruct URLs from the font names in creative-kit.mdThe user's brand may use any font. Read the font name, build the URL. If the font isn't on Google Fonts, fall back to the closest system font.
Skipping the multi-preview stripAlways show at least 3 aspect ratiosThe whole point of the social card tab is to see how the brand renders at real platform dimensions. One size isn't enough — the user needs to see Twitter vs Instagram vs Story to catch layout problems.
Outputting raw CSS instead of JSON tokensStructured JSON with semantic namesThe agent needs to parse the output and write it to creative-kit.md. CSS variables are for the browser. JSON tokens are for the agent loop.
Asking the user to manually edit creative-kit.md after the playgroundRead the pasted JSON and write the changes yourselfThe playground exists to make brand editing visual. Making the user edit markdown afterward defeats the purpose.

Governance Checks (Built Into the HTML)

The playground includes a governance strip below the preview:

[checkmark] Contrast: AA   [checkmark] Heading readable   [warning] Accent on bg: 2.8:1 (needs 3:1)

Implementation: after each state change, run WCAG contrast ratio checks on all text-background combinations. Use the relative luminance formula inline — no library needed. Flag failures as warnings with the specific ratio.


Font Curation

For the font dropdowns, offer these curated options plus whatever the brand currently uses:

Display fonts: Space Grotesk, General Sans, Instrument Serif, Syne, Clash Display, Satoshi, Plus Jakarta Sans, Outfit, Bricolage Grotesque, Manrope

Body fonts: Inter, DM Sans, IBM Plex Sans, Source Sans 3, Nunito Sans, Geist, Work Sans, Rubik, Lato, Open Sans

These are all on Google Fonts. The dropdown should show the font name rendered in that font (via per-option font-family).


File Output

FilePathDescription
Playground HTMLbrand-playground.html (project root)The interactive playground
Asset log entrybrand/assets.md"Brand playground generated — [date]"

The HTML file is gitignored by convention (it's a generated artifact). The user can regenerate it anytime by re-running the skill.


Error Recovery

ProblemFix
creative-kit.md has no parseable colorsUse defaults. Note which values were assumed in the token output.
Font not found on Google FontsUse the closest system font. Show a warning: "Couldn't load [font]. Using [fallback]."
User doesn't paste tokens backThat's fine. The playground served its purpose as a visual check. No brand files need updating.
Logo path in creative-kit.md doesn't resolveSkip logo rendering. Show placeholder text: "[Logo]".
User wants to re-run after brand changesJust re-run the skill. It reads current brand files and generates a fresh HTML.

Alternatives

Compare before choosing

Computed 1007

event4u-app/agent-config

design-intelligence

Grounded design brief from the adopted corpus — style, WCAG-checked color tokens, typography, layout pattern, anti-patterns. Use on ui-design-brief or any which-style/palette/font/chart decision.

Computed 9827

MoizIbnYousaf/marketing-cli

higgsfield-generate

Use when the user wants to generate an image or video via Higgsfield AI. Covers 30+ models: Soul V2, Seedance 2.0, Kling 3.0, Veo 3.1, GPT Image 2, Nano Banana 2. Also covers Marketing Studio — branded ad video/image with avatars and products. Use whenever: "generate an image", "make a video", "animate this photo", "image-to-video", "img2vid", "edit this image with AI", "produce a clip", "create an ad", "make a UGC video", "marketing video", "brand video", "TV spot", "import product from URL", "

Computed 9727

MoizIbnYousaf/marketing-cli

creative

Generate visual asset briefs, ad copy variants, AI image prompts, video scripts, and storyboards. Full creative production system with 5 specialized modes: product photos, product video, social graphics, talking heads, and ad creative. Make sure to use this skill whenever the user mentions any visual or creative marketing need — ad creative, image prompts, video scripts, thumbnails, banners, social graphics, product photography, storyboards, or marketing visuals of any kind. Even if they just sa

Computed 9542,015

coreyhaines31/marketingskills

site-architecture

When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking. Also use when the user mentions "sitemap," "site map," "visual sitemap," "site structure," "page hierarchy," "information architecture," "IA," "navigation design," "URL structure," "breadcrumbs," "internal linking strategy," "website planning," "what pages do I need," "how should I organize my site," or "site navigation." Use this whenever someone is planning what page