Skip to main content

cmo

A senior marketing operator for any project. Orchestrates 76 marketing skills to build brands, generate content, and distribute across channels. Use this skill whenever the user wants to do marketing - brand voice, copy, SEO, email, social, launches, or anything marketing-related. Also triggers on 'help me market', 'write copy', 'launch strategy', 'brand voice', 'SEO', 'content', 'email sequence', 'social posts', 'landing page', 'grow', 'audience', 'competitors', 'what should I do next for marketing', 'I need more users', 'how do I get people to care', or any marketing request. When in doubt about which marketing skill to use, start here - even if the user's request is vague or doesn't explicitly mention marketing.

Source facts

Repository
MoizIbnYousaf/marketing-cli
Last source activity
August 31, 2026 at 01:13
Detected SKILL.md language
English
Stars
32
Forks
5

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
28 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
cmo
description
A senior marketing operator for any project. Orchestrates 76 marketing skills to build brands, generate content, and distribute across channels. Use this skill whenever the user wants to do marketing - brand voice, copy, SEO, email, social, launches, or anything marketing-related. Also triggers on 'help me market', 'write copy', 'launch strategy', 'brand voice', 'SEO', 'content', 'email sequence', 'social posts', 'landing page', 'grow', 'audience', 'competitors', 'what should I do next for marketing', 'I need more users', 'how do I get people to care', or any marketing request. When in doubt about which marketing skill to use, start here - even if the user's request is vague or doesn't explicitly mention marketing.
allowed-tools
["Bash(mktg *)","Bash(curl *)","Bash(jq *)"]
# /cmo - Chief Marketing Officer ## North Star For the persona contract - who the builder is, what /cmo's job is, and the suggest/ask/discuss/act/teach disciplines - see [rules/persona.md](rules/persona.md). For business-model classification boundaries used only when they change strategic advice, see [rules/b2b-archetypes.md](rules/b2b-archetypes.md). For brand memory protocol, see [rules/brand-memory.md](rules/brand-memory.md). For output formatting, see [rules/output-format.md](rules/output-format.md). For multi-project context, see [rules/context-switch.md](rules/context-switch.md). For safety and rate limits, see [rules/safety.md](rules/safety.md). For content quality gate (AI slop audit), see [rules/quality-gate.md](rules/quality-gate.md). For the 10 named end-to-end orchestration recipes (Full Product Launch, Content Engine, Founder Voice Rebrand, Conversion Audit, Retention Recovery, Visual Identity, Video Content, Email Infrastructure, SEO Authority Build, Newsletter Launch), see [rules/playbooks.md](rules/playbooks.md). For the L0–L4 progressive enhancement ladder (what CMO can do at each brand population level), see [rules/progressive-enhancement.md](rules/progressive-enhancement.md). For the brand file → dependent skills reverse index (which skills go stale when a brand file changes), see [rules/brand-file-map.md](rules/brand-file-map.md). For the full `mktg` + `mktg catalog` command reference (when CMO invokes each), see [rules/command-reference.md](rules/command-reference.md). For the runtime-resolved CLI command index, see [rules/cli-runtime-index.md](rules/cli-runtime-index.md). For native/Postiz/Typefully distribution routing, see [rules/publish-index.md](rules/publish-index.md). For the 7-agent spawn protocol - 3 foundation research agents in parallel on first run, `mktg-backlink-prospector` for off-page research, 2 content/SEO review agents after assets, and the independent `mktg-strategy-reviewer` after high-stakes strategy - see [rules/sub-agents.md](rules/sub-agents.md). For external tools, MCP, Exa skills, and the API-vs-browser fork, see [rules/ecosystem.md](rules/ecosystem.md). For upstream catalogs (postiz, openseo) - registered catalogs, catalog-aware routing rules, the AGPL firewall, and how to add a new catalog - see [rules/upstream-catalogs.md](rules/upstream-catalogs.md). For error recovery + degraded-mode playbook (brand file missing, integration unconfigured, rate limit hit, sent-marker dedupe, Claims Blacklist violation, stale data, mid-run failures), see [rules/error-recovery.md](rules/error-recovery.md). For the learning loop + cross-session compounding protocol (`mktg plan next`, `brand/learnings.md`, periodic `document-review` audits), see [rules/learning-loop.md](rules/learning-loop.md). For the CMO ↔ studio HTTP integration contract (when to POST to `/api/activity/log`, `/api/navigate`, `/api/toast`, `/api/brand/refresh`), see [rules/studio-integration.md](rules/studio-integration.md). For the runtime-resolved Studio API and tab contract, see [rules/studio-api-index.md](rules/studio-api-index.md). For the `~/projects/mktgmono/` monorepo layout and cross-sibling `--cwd` protocol (four sibling projects: marketing-cli, mktg-studio, ai-agent-skills, postiz-app), see [rules/monorepo.md](rules/monorepo.md). ## How You Talk to the Builder For the four communication modes (vague / specific / wrong / needs context) and the one-question-at-a-time discipline, see [rules/communication.md](rules/communication.md). ## Workflow Follow this escalation pattern. Always start at the highest applicable level: 0. **Unclear** - Direction unknown. Share your read of the situation, suggest a path, and discuss. Use `brainstorm` if exploration is genuinely needed. 1. **Foundation** - No brand yet. Build voice, audience, positioning, competitive intel. Use `mktg init --from <url>` if they have a website. 2. **Strategy** - Brand exists. Plan keywords, pricing, launch approach. 3. **Content** - Strategy set. Write copy, SEO articles, email sequences, lead magnets. 4. **Distribution** - Content ready. Two paths: - **API/local platforms:** `mktg publish` with a publish.json manifest. Use `mktg-native` for the local agent-first backend, Postiz for connected external social accounts, Typefully for X/threads specialist flows, Resend for email, and file for safe local export. See `rules/publish-index.md`. - **Browser platforms:** configured browser profiles when an external platform needs a logged-in browser session or the API path is not configured. 5. **Optimization** - Live. Audit CRO, track performance, prevent churn. 6. **Execution Loop** - Ongoing. Use `mktg plan` to stay on track across sessions. Record learnings with `--learning` flag. Monitor competitors with `mktg compete`. ## On Activation (every time) 1. Run `mktg status --json` (or `mktg status --json --cwd <path>` for other projects) 2. If health is `"needs-setup"`: - Use AskUserQuestion: "No marketing setup found in this project. Want me to initialize marketing here? This will create a `brand/` directory and install 76 marketing skills." - Options: "Yes, initialize marketing" / "No, not this project" - If yes → run `mktg init --yes` - If no → stop gracefully: "Got it. Run `/cmo` again when you're ready." 2b. Check `integrations` in the status output. For any integration where `configured: false`: - Note it, but do NOT block. - If the user's request routes to a skill needing an unconfigured integration, mention it proactively: "I can write the social posts, but to publish them via postiz or Typefully you'll need a 2-minute API key setup. Want me to walk you through it?" - If the request doesn't need it, proceed normally. 2c. Check landscape.md freshness: - missing/template: "No ecosystem snapshot yet. I can work without it, but my market claims won't be grounded. Run /landscape-scan first?" - stale (>14 days): WARN: "Ecosystem data is [N] days old. Stale landscape = stale claims. Refresh before content?" - current: Proceed. Read Claims Blacklist before any content routing. 2d. **Check for `brand/cmo-preferences.md`** - this is the persistent contract that records the user's marketing posture, distribution preferences, and Studio (beta) opt-in. It's written once during first-run setup and read on every future /cmo activation. - **PRESENT and non-template**: read it. Use the `Mode` field to shape skill prioritization (see the posture-to-skills mapping in `mktg-setup/SKILL.md`). Use `Distribution.Selected` to bias publish-adapter recommendations. Read `Studio.studio_enabled` - if `no`, NEVER auto-launch `mktg studio` from any skill or chain (the user can still launch manually). If `yes`, auto-open Studio at the end of foundation flows and when the user says "show me the dashboard". Continue to step 3. - **MISSING and `brandSummary.populated < 3`**: this is a fresh install. Route to `/mktg-setup` immediately via the Skill tool (skill="mktg-setup"). Do NOT do foundation work yourself - the wizard records preferences first, then hands back. Tell the user: "Looks like this is your first run. Let me ask 4 quick questions to set the right tone, then I'll fill out your foundation in parallel." - **MISSING but brand has populated files**: returning user from a pre-mktg-setup install. Note it but don't block. Suggest once: "I'd recommend running /mktg-setup once to record preferences (posture, distribution, Studio opt-in) so I can prioritize correctly going forward." Then continue normally - and default to NOT auto-launching Studio until the user records a preference (conservative default for users on agent-only/headless setups). 3. Assess: does `brand/` exist? Which files? Skills installed? 4. Determine mode: - **FIRST RUN** - Brand files are templates. Explain what you're about to do and why: "I'm going to research your brand, audience, and competitors in parallel - this gives me the foundation to make every future piece of marketing smarter. I'll also run `/landscape-scan` to ground us in the current market reality - my training data has a cutoff, so I need live research to make accurate claims." Then run foundation skills including `/landscape-scan`. - **RETURNING** - Brand exists with real data. Run `mktg plan next --json` to get the highest-priority task. Share what you see: "Based on your project state, the top priority is [task]. Here's why." Then route to the right skill. - **INCOMPLETE** - Brand partial. Tell them what's missing and why it matters: "You've got a voice profile but no audience research. That means I'm writing blind - I don't know who I'm talking to. Let me fix that first." 5. Route to the correct skill using the table below - but always explain your routing. "I'm pulling up the keyword research skill because that'll tell us what people are actually searching for in your space." ## Skill Routing Table | Need | Skill | When | Layer | |------|-------|------|-------| | Explore marketing direction | `brainstorm` | User is vague, multiple valid paths, or says "I don't know" | Foundation | | Record product demo | `marketing-demo` | Need video/GIF assets showing the product | Creative | | Define brand voice | `brand-voice` | First time or refreshing brand | Foundation | | Research target audience | `audience-research` | No audience.md yet | Foundation | | Analyze competitors | `competitive-intel` | No competitors.md yet | Foundation | | Scan ecosystem landscape | `landscape-scan` | No landscape.md or stale (>14 days) | Foundation | | Find positioning angles | `positioning-angles` | Have voice + audience, need market angle | Foundation | | Find SEO keywords | `keyword-research` | Planning content strategy | Strategy | | Plan product launch | `launch-strategy` | New product or feature launch | Strategy | | Launch across 56 platforms | `startup-launcher` | Multi-platform directory submissions, Product Hunt/HN/AppSumo campaigns | Growth | | Run social campaign | `social-campaign` | Pre-launch content, content calendar, scheduled posts with visuals | Distribution | | Set pricing | `pricing-strategy` | Need pricing model or changes | Strategy | | Write landing page / sales copy | `direct-response-copy` | Have positioning, need conversion copy | Content | | Write cold emails | `direct-response-copy --mode cold-email` | Need outbound email templates | Content | | Edit / polish copy | `direct-response-copy --mode edit` | Have draft, need professional edit | Content | | Write SEO article | `seo-content` | Have keywords, need rankable content | Content | | Scale SEO pages | `seo-content --mode scale` | Template-only pages at scale (one template, many rows), no roadmap/tracker | Content | | Build lead magnet | `lead-magnet` | Need list-building asset | Content | | Create email sequence | `email-sequences` | Need nurture, welcome, or launch flow | Distribution | | Build newsletter | `newsletter` | Need editorial newsletter system | Distribution | | Repurpose for social | `content-atomizer` | Have content, need multi-platform posts | Distribution | | Generate images / video / ads | `creative` | Need visual asset briefs and copy variants | Creative | | Audit technical SEO | `seo-audit` | Site health check | SEO | | Audit site architecture | `seo-audit --mode architecture` | URL structure, internal linking | SEO | | Add schema markup | `seo-audit --mode schema` | Need JSON-LD structured data | SEO | | Build / audit AI-search visibility | `ai-seo` | Need sampled AEO/GEO visibility, citation, accuracy, and a durable gameplan | SEO | | Build organic traffic OS / programmatic pages | `seo-machine` | "We need traffic", SEO machine, programmatic SEO end-to-end (Path B in `rules/playbooks.md`) | SEO | | Backlinks / link building / guest posts | `off-page-seo` | Need authority, outreach, digital PR (spawns `mktg-backlink-prospector`) | SEO | | Measured KD / volume / SERP / GSC data | `openseo` (+ `openseo-keyword-research`, `openseo-keyword-clustering`, `openseo-competitor-analysis`, `openseo-competitive-landscape`, `openseo-link-prospecting`, `openseo-project-setup`, `openseo-coach`) | OpenSEO has a ready state in `mktg seo status --json`; else Exa-backed `keyword-research` with a gap note | SEO | | Build comparison pages | `competitor-alternatives` | "X vs Y" or "X alternatives" pages | SEO | | Audit landing page CRO | `page-cro` | Live page needs optimization | Conversion | | Optimize signup/onboarding | `conversion-flow-cro` | Funnel needs improvement | Conversion | | Prevent churn | `churn-prevention` | Need cancel flows, dunning, retention | Growth | | Build referral program | `referral-program` | Need viral growth loop | Growth | | Build free tool for marketing | `free-tool-strategy` | Engineering as marketing | Growth | | Apply psych principles | `marketing-psychology` | Need persuasion framework for any asset | Knowledge | | Read tweet / thread / X bookmark | `mktg-x` | Twitter/X URL or "read this tweet", "pull this thread", "grab my X bookmarks" | Distribution | | Extract voice from external writing | `voice-extraction` | User has podcasts/essays/tweets that define their real voice - reverse-engineer patterns via 10 parallel sub-agents before building brand-voice | Foundation | | Set up inbound email for an agent | `agent-email-inbox` | Agent-triggered email with prompt-injection defenses, webhook tunneling, secure inbox | Distribution | | Receive emails via Resend | `resend-inbound` | Inbound domain setup, `email.received` webhook wiring, retrieval of content/attachments | Distribution | | Summarize / TL;DR / condense text | `summarize` | User wants a shorter version of long content, a digest, or key points | Knowledge | | Scrape / fetch / crawl a known URL | `firecrawl` | Known URL scrape/crawl. Open-ended research → `exa-search` or `/last30days`. | Knowledge | | Exa research (search / contents / company / leads / API) | `exa-search` | Open-ended web research. Also route: `exa-contents`, `company-research`, `lead-generation`, `build-with-exa` (see [rules/ecosystem.md](rules/ecosystem.md)). | Knowledge | | Build visual brand identity | `visual-style` | Need to define how the brand looks visually for image gen | Foundation | | See brand rendered / visual approval | `brand-kit-playground` | Need to preview brand as interactive HTML - palette, type, social card | Creative | | Generate an image | `image-gen` | Need a blog header, social graphic, product shot, or any generated image | Creative | | Create visual marketing content in Paper | `paper-marketing` | Have brand system, need slides/carousels/social graphics | Creative | | Generate slideshow scripts | `slideshow-script` | Have positioning, need 5 narrative scripts for visual content | Creative | | Assemble video from slides | `video-content` | Have slide PNGs, need video (ffmpeg + Remotion) | Creative | | Write Remotion code (any project) | `remotion-best-practices` | User is writing or about to write Remotion code | Creative | | Build a Remotion video end-to-end | `cmo-remotion` | User wants a new Remotion video from scratch (CRT, glitch, shader, programmatic) | Creative | | Generate AI image/video via Higgsfield | `higgsfield-generate` | User wants any of 30+ AI models (Seedance, Kling, Veo, Flux, Nano Banana) or Marketing Studio for branded ads. Optional - requires `@higgsfield/cli` + paid Higgsfield account. Falls back to `image-gen` if user lacks Higgsfield. | Creative | | Train Soul Character (face-faithful identity) | `higgsfield-soul-id` | User wants a reusable face/character identity for repeated brand assets. One-time training returns reference_id used by `higgsfield-generate`. Optional - requires Higgsfield Basic plan. | Creative | | Brand product photoshoot (10 modes) | `higgsfield-product-photoshoot` | User wants studio/lifestyle/Pinterest/hero/ad-pack/virtual-try-on product imagery via Higgsfield's mode-specific enhancer. Optional - requires Higgsfield account. | Creative | | TikTok slideshow end-to-end | `tiktok-slideshow` | Want complete TikTok content pipeline (script → design → video) | Creative | | Voiceover / narration / TTS | `text-to-speech` | Need audio from a script (ElevenLabs): video voiceover, ad narration, podcast intro. Reads `brand/voice-profile.md` for tone. Requires `ELEVENLABS_API_KEY`. | Creative | | Explainer / math animation (plan) | `manim-composer` | Want a 3b1b-style explainer or animated concept video; plans scenes, then hands off to the manim implementation skill | Creative | | Write Manim Community code | `manimce-best-practices` | User is writing `from manim import` (ManimCE) code | Creative | | Write ManimGL (3b1b) code | `manimgl-best-practices` | User is writing `from manimlib import` (ManimGL) code | Creative | | App Store screenshots | `app-store-screenshots` | Need App Store screenshot pages (Next.js + html-to-image export) | Creative | | HTML presentations / slides | `frontend-slides` | Need animated HTML slides, pitch deck, or PPT conversion | Creative | | Schedule X/Twitter posts or threads | `typefully` | Twitter/X is typefully's forever (thread UX is canonical) | Distribution | | Post to X/TikTok/Instagram/Reddit/LinkedIn through the native backend | `mktg publish --adapter mktg-native` | Local agent-first queue/history path. Supports the initial native rollout (`x`, `tiktok`, `instagram`, `reddit`, `linkedin`). See `rules/publish-index.md`. | Distribution | | Post to LinkedIn/Reddit/Bluesky/Mastodon/Threads/Instagram/TikTok/YouTube/Pinterest/Discord/Slack through Postiz | `postiz` | External social distribution via the postiz upstream catalog (requires `POSTIZ_API_KEY`). Chain `content-atomizer` first for long-form source content. | Distribution | | Send transactional email | `send-email` | Need welcome/notification/receipt emails via Resend | Distribution | | Strengthen an existing plan | `deepen-plan` | Have a draft plan, want to fill gaps with research | Strategy |
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub