ad-copy-writer
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Build a portable brand-kit.json for the user's product — colors, typography, voice — that other skills (video, ad creative, landing page) can consume. Multiple discovery paths so it works whether the user has access to their site's source code or only a public URL or just a logo
Claude Code
$ npx -y skills add cognyai/claude-code-marketing-skills --skill brand-kit --agent claude-code
Codex
$ npx skills add cognyai/claude-code-marketing-skills --skill brand-kit -a codex -y
Cursor
$ npx skills add cognyai/claude-code-marketing-skills --skill brand-kit -a cursor -y
Gemini CLI
$ npx skills add cognyai/claude-code-marketing-skills --skill brand-kit -a gemini-cli -y
GitHub Copilot
$ npx skills add cognyai/claude-code-marketing-skills --skill brand-kit -a github-copilot -y
OpenCode
$ npx skills add cognyai/claude-code-marketing-skills --skill brand-kit -a opencode -y
Windsurf
$ npx skills add cognyai/claude-code-marketing-skills --skill brand-kit -a windsurf -y
name: brand-kit description: Build a portable brand-kit.json for the user's product — colors, typography, voice — that other skills (video, ad creative, landing page) can consume. Multiple discovery paths so it works whether the user has access to their site's source code or only a public URL or just a logo image. version: "1.1.1" author: Cogny AI platforms: [hyperframes, ffmpeg] user-invocable: true argument-hint: "<site URL | repo path | logo path | nothing for interview>" allowed-tools: - WebFetch - WebSearch - Bash - Read - Write - Edit # Cogny MCP context tree — may already contain a documented brand kit / voice / palette - mcp__cogny__refresh_mcp_discovery - mcp__cogny__get_context_tree_overview - mcp__cogny__browse_context_tree - mcp__cogny__read_context_node - mcp__cogny__search_context - mcp__cogny__list_integrations # Cloud only: uploaded brand assets (logos, product shots) and palette reading - mcp__cogny__mcp__cogny-image-gen__tool_list_brand_assets - mcp__cogny__mcp__cogny-image-gen__tool_analyze_media # Voice samples from the brand's own published posts (read-only) - mcp__cogny__mcp__LinkedIn_Organic__tool_list_organizations - mcp__cogny__mcp__LinkedIn_Organic__tool_get_organization_posts - mcp__cogny__mcp__X_Organic__tool_get_me - mcp__cogny__mcp__X_Organic__tool_get_user_posts
Build a `brand-kit.json` describing the user's product in a way other skills can consume — colors, type, voice, do/don't language, optional logo. Other Cogny skills (`/tiktok-launch-video`, `/reddit-launch-video`, `/linkedin-launch-video`, `/landing-page-review`, `/ad-copy-writer`) read this file when present.
The skill is built around the reality that **users don't always have access to their site's source code**. There are six paths to a kit, in priority order. Stop at the first one that yields enough.
`/brand-kit https://example.com` — extract from a live site `/brand-kit ~/git/our-site` — extract from a local repo (Tailwind / CSS vars) `/brand-kit ~/Desktop/logo.png` — extract palette from a logo or screenshot `/brand-kit ~/Desktop/homepage.png logo.png` — combine site screenshot + logo `/brand-kit` — interview the user
Paths 1–5 work with zero accounts (Path 3 needs ffmpeg, ImageMagick or Node, or falls back to reading the image by eye; see below). Cogny adds two shortcuts:
| Job | Primary | Also answers it | No account | |-----|---------|-----------------|------------| | Documented brand (voice, palette) | Context tree (`search_context`), Solo and Cloud | — | Paths 1-4 | | Logo / brand images already uploaded | `cogny-image-gen` `tool_list_brand_assets` (**Cloud only**) | — | User gives a file path | | Palette from an image URL | `cogny-image-gen` `tool_analyze_media` (**Cloud only**) | — | `extract-palette.sh` (Path 3) | | Voice samples beyond the homepage | LinkedIn_Organic `tool_get_organization_posts` | X_Organic `tool_get_user_posts` | Homepage + /about (Path 5) |
On Solo, `cogny-image-gen` isn't available: skip Path 0b and use Path 3.
A `brand-kit.json` written to (in priority order, whichever path makes sense for the user's setup):
1. `.agents/brand-kit.json` (if `.agents/` exists) 2. `.claude/brand-kit.json` (if `.claude/` exists) 3. `./brand-kit.json` (otherwise — current working directory)
Always print the path you wrote to so the user can move it.
{
"name": "cogny",
"site": "https://cogny.com",
"logo": {
"path": "./brand/logo-square.png",
"use_in_video": false
},
"colors": {
"background": "#1f1d1d",
"foreground": "#ede8e3",
"primary": "#b09acd",
"accent": "#c9badf",
"muted": "#9a9494",
"card": "#282525",
"fuchsia": "#d4848a",
"success": "#7ec8a4",
"amber": "#d4a857"
},
"type": {
"family": "'JetBrains Mono', 'Fira Code', ui-monospace, monospace",
"weight_display": 700,
"weight_body": 500,
"letter_spacing_display": "-0.02em"
},
"voice": {
"register": "technical, direct, anti-jargon, CLI-aesthetic",
"person": "first-person plural (we / your)",
"do": ["concrete numbers", "name the tradeoff", "name the tool"],
"dont": ["leverage", "unlock", "revolutionary", "next-gen"]
},
"source": "repo: ~/git/cogny/tailwind.config.ts + src/index.css",
"captured_at": "2026-04-25"
}Minimum viable kit: `colors.background`, `colors.foreground`, `colors.primary`, `type.family`, `voice.register`. Don't ship without all five.
---
If Cogny isn't connected, skip this and note what connecting adds (a brand voice and palette the team already documented, so nothing needs scraping).
**Use when**: the `cogny` MCP server is in `.mcp.json`. The user may have already documented their brand — voice, palette, tone — in their context tree, in which case scraping is redundant.
mcp__cogny__get_context_tree_overview # see what's documented mcp__cogny__search_context query="brand" # palette, voice, tone, design tokens mcp__cogny__search_context query="positioning" # voice + register often live here mcp__cogny__read_context_node node_id="…"
If the tree returns brand / palette / voice nodes, hydrate the kit from those values. Cross-check against Path 1 or 3 only if something looks stale or contradictory.
If the cogny MCP isn't connected, or the tree has nothing brand-related, fall through to Path 0b (Cloud) or Path 1.
If Cogny isn't connected, skip this and note what connecting adds (uploaded logos and product shots reused directly). **Use when**: `mcp__cogny__mcp__cogny-image-gen__tool_list_brand_assets` exists (Cloud workspaces). Solo workspaces don't have it; skip.
1. `tool_list_brand_assets` with `asset_type: "logo"` (also `product`, `lifestyle`). Each row has `id`, `name`, `descri
AI marketing skills for Claude Code, Cursor, Windsurf, and other AI coding tools. Audit SEO, analyze ads, research competitors, qualify leads — all from your terminal. Free skills need no account. Premium skills connect your real data for $9/mo.
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Enforce a pre-declared evidence bar on every ad — after it spends enough, pause it if it misses (e.g. CTR < 1% or cost per lead…
Find accounts where something just happened that creates demand — funding, hiring, new locations, launches, rising ad engagement…
Give every campaign an ID and carry it everywhere — allocate IDs, audit ad/email/UTM naming across Google, Meta, LinkedIn, Bing,…
Re-read every lost deal in your CRM (HubSpot, Pipedrive or Upsales; Salesforce via the CRM layer) with its calls, meetings and…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…