ad-copy-writer
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Weekly read on community health — Discord joins, active channels, top contributors, themes and unanswered questions, plus Crisp support conversations and YouTube comments when connected
Claude Code
$ npx -y skills add cognyai/claude-code-marketing-skills --skill community-pulse --agent claude-code
Codex
$ npx skills add cognyai/claude-code-marketing-skills --skill community-pulse -a codex -y
Cursor
$ npx skills add cognyai/claude-code-marketing-skills --skill community-pulse -a cursor -y
Gemini CLI
$ npx skills add cognyai/claude-code-marketing-skills --skill community-pulse -a gemini-cli -y
GitHub Copilot
$ npx skills add cognyai/claude-code-marketing-skills --skill community-pulse -a github-copilot -y
OpenCode
$ npx skills add cognyai/claude-code-marketing-skills --skill community-pulse -a opencode -y
Windsurf
$ npx skills add cognyai/claude-code-marketing-skills --skill community-pulse -a windsurf -y
name: community-pulse description: Weekly read on community health — Discord joins, active channels, top contributors, themes and unanswered questions, plus Crisp support conversations and YouTube comments when connected version: "1.1.2" requires: cogny-mcp author: Cogny AI platforms: [discord, crisp, youtube] user-invocable: true argument-hint: "" allowed-tools: # Discord MCP read tools (via Cogny MCP Proxy) - mcp__cogny__refresh_mcp_discovery - mcp__cogny__mcp__Discord__get_current_user - mcp__cogny__mcp__Discord__list_guilds - mcp__cogny__mcp__Discord__get_guild - mcp__cogny__mcp__Discord__list_guild_channels - mcp__cogny__mcp__Discord__get_channel - mcp__cogny__mcp__Discord__list_guild_members - mcp__cogny__mcp__Discord__get_channel_messages # Crisp support conversations (read-only) - mcp__cogny__mcp__Crisp__get_website_statistics - mcp__cogny__mcp__Crisp__list_conversations - mcp__cogny__mcp__Crisp__get_conversation - mcp__cogny__mcp__Crisp__get_conversation_messages # YouTube comments (read-only) - mcp__cogny__mcp__YouTube__get_channel - mcp__cogny__mcp__YouTube__list_channel_videos - mcp__cogny__mcp__YouTube__list_comment_threads - mcp__cogny__list_integrations # Cogny bookkeeping writes: create_ticket (Cloud) / create_finding (Solo). No integration write tools are pre-approved. - mcp__cogny__create_finding - mcp__cogny__create_ticket - WebFetch - Read - Write
Surface the signal in a busy Discord server. Who joined, which channels are hot, who's contributing, what's getting asked, and what's left hanging — in one digest you can act on in 15 minutes.
| Job | Primary | Also answers it | What differs | |-----|---------|-----------------|--------------| | Members, joins, channel activity, contributors | Discord | — | Only Discord has membership and channels | | Themes and unanswered questions | Discord (`get_channel_messages`) | Crisp (`list_conversations`, `get_conversation_messages`), YouTube (`list_comment_threads`) | Crisp is 1:1 support, so "unanswered" means `filter_state: "unresolved"`; YouTube marks `owner_replied` per thread | | Volume trend | Discord message counts | Crisp `get_website_statistics`, YouTube comment counts | Report each source in its own row; never add them up |
Discord is the primary source and drives steps 2-6. Crisp and YouTube are optional extra sources (step 7b). If Discord isn't connected but one of the others is, run steps 7, 7b, 8 and 9 for that source only and say so in the header.
`/community-pulse` — weekly digest of the connected Discord server (plus Crisp/YouTube if connected).
Pass a guild ID if the bot is in more than one server:
`/community-pulse 123456789012345678`
If no `mcp__cogny__*` tools exist (no `list_integrations`, no `cogny_status`), print this and stop:
Community Pulse needs your marketing data through Cogny's MCP gateway.
1. Sign up at https://cogny.com and connect Discord (plus Crisp or YouTube if you use them).
2. Add Cogny to .mcp.json in your project:
{"mcpServers": {"cogny": {"type": "http", "url": "https://app.cogny.com/mcp"}}}
3. Restart Claude Code; it opens a browser for the OAuth login on first use.
Nothing to run without Cogny.If Cogny is connected but Discord isn't, say "connect Discord in Cogny" (Crisp and YouTube alone still give a partial digest).
The Discord MCP needs **two privileged intents** enabled in the Discord Developer Portal → Bot tab → Privileged Gateway Intents:
the bot itself.
authors and timestamps but every `content` field comes back empty.
If the report comes back with a 1-element member list or empty message content, this is almost always why. The skill flags the gap loudly at the top of the output rather than silently producing misleading numbers.
The bot also needs **View Channel + Read Message History** in each channel you want analysed — these are channel-level permissions, not intents.
Call `mcp__cogny__list_integrations` to see which of Discord, Crisp and YouTube are connected. Its `health_status` misses revoked tokens, so make one cheap read per connected source: Discord `get_current_user` (also confirms the bot identity), Crisp `get_website_statistics`, YouTube `get_channel`. A 401, `Forbidden` or scope error = 🔴 "reconnect <integration> in Cogny": name it in the header and don't retry. For Discord that means the bot token stored in Cogny is bad: "reconnect Discord in Cogny".
If a tool you expect is missing, call `mcp__cogny__refresh_mcp_discovery` once (never loop). New tools only load after the client reconnects, so skip that source this run and mark it ⚠ "needs reconnect".
Call `list_guilds`. If exactly one guild, use it. If multiple, prefer the guild ID passed as an argument. If none was passed and there's more than one, list them and ask the user to specify.
Once chosen, call `get_guild(guild_id, with_counts=True)` for the baseline:
Call `list_guild_channels(guild_id)`. Bucket channels into:
`support`, `showcase`, `hiring`, `general` (these usually hold the signal for community health)
entry with `id == guild_id` that denies `VIEW_CHANNEL` (bit 1024). Per-customer channels are usually private. Analyse them for
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…
Build a portable brand-kit.json for the user's product — colors, typography, voice — that other skills (video, ad creative,…
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…