# Cmo

> |

- **Type:** Skill
- **Install:** `agentstack add skill-moizibnyousaf-marketing-cli-cmo`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [MoizIbnYousaf](https://agentstack.voostack.com/s/moizibnyousaf)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [MoizIbnYousaf](https://github.com/MoizIbnYousaf)
- **Source:** https://github.com/MoizIbnYousaf/marketing-cli/tree/main/skills/cmo
- **Website:** https://www.marketing-cli.com/

## Install

```sh
agentstack add skill-moizibnyousaf-marketing-cli-cmo
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# /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 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 5-agent spawn protocol — 3 research agents (`mktg-brand-researcher`, `mktg-audience-researcher`, `mktg-competitive-scanner`) in parallel on first run, plus the 2 review agents (`mktg-content-reviewer` voice-consistency gate, `mktg-seo-analyst` keyword-adherence gate) on-demand after any content draft — see [rules/sub-agents.md](rules/sub-agents.md).
For the full external-tool + MCP + browser-profile ecosystem (firecrawl, ffmpeg, remotion, whisper-cli, yt-dlp, gh, playwright-cli, summarize, Exa MCP), and the API-vs-browser routing fork, see [rules/ecosystem.md](rules/ecosystem.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 ` 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 ` 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 58 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 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` | Need programmatic SEO templates | 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 |
| Optimize for AI search | `ai-seo` | Need visibility in AI answers | 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` | User gives a URL and wants the content, wants to crawl a whole site, or wants a single-page scrape. Not for open-ended research — use Exa MCP or `/last30days` for that. | 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 |
| 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 |
| Audit brand file quality | `document-review` | Check brand/ files for completeness, consistency, staleness | Foundation |
| Create a new marketing skill | `create-skill` | Want to extend the playbook with a new capability | Foundation |
| What should I do next? | `mktg plan next --json` | Need prioritized next action from project state | Execution Loop |
| See full task queue | `mktg plan --json` | Want the complete prioritized plan | Execution Loop |
| Publish content to platforms | `mktg publish --json` | Have content ready, need to push to mktg-native/Postiz/Typefully/Resend/file | Distribution |
| Publish to social (non-API) | browser profile | Need to post to Instagram/TikTok/Facebook/YouTube (browser automation) | Distribution |
| Quick reality check | `/last30days` | Need to verify a claim, check market sentiment, or see what's happening NOW | Intelligence |
| Full ecosystem snapshot | `/landscape-scan` | Need full ground truth before a content campaign | Intelligence |
| Monitor competitors | `mktg compete scan --json` | Want to detect competitor changes and route to skills | Intelligence |
| Track a new competitor | `mktg compete watch ` | Found a competitor, want ongoing monitoring | Intelligence |
| Compile brand context | `mktg context --json` | Running multiple skills in one session, save tokens | Utility |
| Fix broken setup | `mktg doctor --fix` | Something's wrong — auto-remediate missing files/skills | Utility |
| Record a learning | `mktg run  --learning '{...}'` | Skill produced an insight worth remembering for next time | Execution Loop |
| Onboard from URL | `mktg init --from ` | New project with existing website — scrape to populate brand | Foundation |

For marketing ideas and inspiration, see [references/ideas-library.md](references/ideas-library.md).
For analytics and tracking setup, see [references/analytics-guide.md](references/analytics-guide.md).

## Disambiguation

When a request is ambiguous, use this matrix:

| User says | Route to | Not this one | Why |
|-----------|----------|--------------|-----|
| "what should I do" | `brainstorm` | `cmo` (directly) | Brainstorm explores; /cmo executes a known path. |
| "demo video" | `marketing-demo` | `creative` | marketing-demo records product. creative generates ad visuals. |
| "write copy" | `direct-response-copy` | `seo-content` | Copy = conversion. SEO = ranking. |
| "blog post" | `seo-content` | `newsletter` | Blog

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [MoizIbnYousaf](https://github.com/MoizIbnYousaf)
- **Source:** [MoizIbnYousaf/marketing-cli](https://github.com/MoizIbnYousaf/marketing-cli)
- **License:** MIT
- **Homepage:** https://www.marketing-cli.com/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** yes
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-moizibnyousaf-marketing-cli-cmo
- Seller: https://agentstack.voostack.com/s/moizibnyousaf
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
