# Marketing

> Create marketing assets and execute launch strategy. Generates landing copy, social banners, SEO meta, blog posts, and video scripts. Use when this capability is needed.

- Skill: `tomevault-io/marketing` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/marketing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/marketing/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/marketing

---


# marketing

## Purpose

Create marketing assets and execute launch strategy. Marketing generates landing page copy, social media banners, SEO metadata, blog posts, and video scripts. Analyzes the project to create authentic, data-driven marketing content.

## Called By (inbound)

- `launch` (L1): Phase 4 MARKET — marketing phase of launch pipeline
- User: `/topia marketing` direct invocation

## Calls (outbound)

- `recon` (L2): scan codebase for features, README, value props
- `trend-scout` (L3): market trends, competitor positioning
- `research` (L3): competitor analysis, SEO keyword data
- `asset-creator` (L3): generate OG images, social cards, banners
- `video-creator` (L3): create demo/explainer video plan
- `slides` (L3): generate presentation decks for launches and demos
- `doc-processor` (L3): export marketing deliverables as PDF/DOCX (press kits, one-pagers, sponsor decks)
- `browser-pilot` (L3): capture screenshots for marketing assets
- L4 extension packs: domain-specific content when context matches (e.g., `@Topia/content` for blog posts, `@Topia/analytics` for campaign measurement)

## Execution Steps

### Step 1 — Understand the product

Call `topia:recon` to scan the codebase. Ask scout to extract:
- Feature list (what the product actually does)
- README summary
- Target audience signals (from code, comments, config)
- Tech stack (relevant for developer marketing)

Read any existing `marketing/`, `docs/`, or `landing/` directories if present.

### Step 2 — Research market

Call `topia:trend-scout` with the product category to identify:
- Top 3 competitors and their positioning
- Current market trends relevant to this product
- Differentiators to emphasize

Call `topia:research` for:
- SEO keyword opportunities (volume vs. competition)
- Competitor messaging patterns to avoid or counter

### Step 2.5 — Establish Brand Voice

Before generating any copy, define the brand voice contract. This prevents inconsistent tone across marketing assets.

**Brand Voice Matrix** — answer these for the product:

| Dimension | Spectrum | This product |
|-----------|----------|--------------|
| Formality | Casual ←→ Formal | [position] |
| Humor | Serious ←→ Playful | [position] |
| Authority | Peer ←→ Expert | [position] |
| Warmth | Clinical ←→ Friendly | [position] |
| Urgency | Patient ←→ Urgent | [position] |

**Voice rules** (generate 3-5):
- "We say [X], never [Y]" — e.g., "We say 'start free', never 'sign up now'"
- "Our tone is [X] because our users are [Y]"
- "Avoid [specific words/phrases] because [reason]"

**Vocabulary list** (5-10 terms):
- Preferred terms: [words this brand uses]
- Forbidden terms: [words to avoid and why]
- Jargon policy: [use/avoid/explain technical terms]

Save voice contract to `marketing/brand-voice.md`. All subsequent copy MUST follow this voice.

If `marketing/brand-voice.md` already exists → Read it and apply. Do NOT regenerate without user request.

### Step 3 — Generate copy

Using product understanding, market research, and **brand voice contract**, produce:

**Anti-AI Copy Rules** (apply to ALL generated copy):
- NEVER open with "In today's...", "Are you struggling with...", "Have you ever wondered..."
- NEVER use: "game-changer", "revolutionary", "seamlessly", "leverage", "unlock the power of", "dive deep into", "delve", "robust", "streamline", "cutting-edge"
- MUST use one of 5 hook types for headlines: Provocative Question, Specific Scenario, Surprising Statistic, Bold Statement, or Counterintuitive Claim
- MUST include specific numbers, names, or outcomes — not vague claims ("many users love it")
- If the copy sounds like it was written by a generic AI → rewrite until it has personality

**Hero section**
- Headline (under 10 words, outcome-focused, uses one of the 5 hook types above)
- Subheadline (1-2 sentences expanding the promise)
- Primary CTA button text

**Value propositions** (3 items)
- Icon/emoji, title, 1-sentence description each

**Feature list** (pulled from Step 1 scout output)
- Name + benefit phrasing for each feature

**Social proof section** (placeholder copy if no real testimonials)

**Secondary CTA** (bottom of page)

### Step 3.5 — Competitive Response Playbook

When `trend-scout` identifies active competitors or market threats, generate pre-planned counter-strategies. This turns reactive scrambling into prepared responses.

**Four Threat Scenarios:**

| Scenario | Trigger Signal | Response Window |
|----------|---------------|-----------------|
| **Price War** | Competitor drops price >20% | 24-48 hours |
| **New Market Entry** | New competitor launches in your space | 1-2 weeks |
| **Viral Competitor** | Competitor content goes viral (10x normal engagement) | 24-72 hours |
| **Fast Follower** | Competitor copies your feature within 30 days of launch | 1 week |

**For each relevant scenario, document:**

```markdown
## Counter-Strategy: [Scenario Name]

### Trigger
- Signal: [what to watch for]
- Detection: [how to monitor — social listening, price tracking, etc.]
- Response window: [how fast to react]

### Counter-Move
- **Immediate (Day 1)**: [first response — usually messaging/positioning]
- **Short-term (Week 1)**: [tactical moves — promos, content, outreach]
- **Medium-term (Month 1)**: [strategic adjustments — product, pricing, positioning]

### Resources Required
- Team: [who needs to be involved]
- Budget: [estimated cost]
- Assets: [what to prepare in advance]

### Success Metric
- [How to know the counter-strategy worked]

### Pre-Built Assets
- [ ] Response messaging template
- [ ] Social post drafts
- [ ] Email to existing customers
- [ ] FAQ for sales/support team
```

**Rules:**
- Only generate playbooks for scenarios relevant to this market (skip if no direct competitors)
- Pre-build assets NOW — when the trigger fires, you execute, not create
- Response window is real — if you can't respond in time, the playbook failed
- Test the detection mechanism — if you can't see the trigger, you can't respond

**Skip this step if:**
- Product is in a blue ocean (no direct competitors yet)
- User explicitly requests marketing assets only, no strategy

Save to `marketing/counter-playbook.md`.

### Step 4 — Social posts

Produce ready-to-post content:

**Twitter/X thread** (5-7 tweets)
- Tweet 1: hook (the big claim)
- Tweets 2-5: one feature or benefit per tweet with specifics
- Tweet 6: social proof or stat
- Tweet 7: CTA with link

**LinkedIn post** (150-300 words)
- Professional tone, problem-solution-proof structure

**Product Hunt tagline** (under 60 characters)

### Step 5 — SEO metadata

Produce for the landing page:

```html
<title>[Meta title — under 60 chars, primary keyword first]</title>
<meta name="description" content="[150-160 chars, includes CTA]">
<meta property="og:title" content="[OG title]">
<meta property="og:description" content="[OG description]">
<meta property="og:image" content="[OG image path]">
<link rel="canonical" href="[canonical URL]">
```

Target keywords list (5-10 terms with rationale).

### Step 5.5 — SEO Audit (if existing site)

If the project already has a deployed site or existing pages, run a technical SEO audit before generating new metadata.

**Automated checks** (use Grep + Read on codebase):

1. **Meta tags completeness**: Every page has `<title>`, `<meta description>`, `og:title`, `og:description`, `og:image`. Flag pages missing any.
2. **Heading hierarchy**: Every page has exactly one `<h1>`. No skipped levels (h1→h3 without h2). Use Grep for `<h1`, `<h2`, `<h3` patterns.
3. **Image alt text**: Search for `<img` without `alt=` attribute. Every image needs descriptive alt text (not "image", not empty).
4. **Canonical URLs**: Check for `<link rel="canonical"`. Missing canonical = duplicate content risk.
5. **Structured data**: Check for `application/ld+json` or microdata. Recommend adding if missing (Product, Organization, Article schemas).
6. **Performance signals**: Check for `next/image` or lazy loading on images. Flag `<img>` without `loading="lazy"` below fold.
7. **Sitemap**: Check for `sitemap.xml` or sitemap generation in build config. Flag if missing.
8. **Robots**: Check for `robots.txt`. Verify it doesn't accidentally block important pages.

**9. Schema Markup**: Check for `application/ld+json` blocks. Recommend adding relevant types:

| Content Type | Schema Type | Key Properties |
|-------------|-------------|---------------|
| Product page | `Product` | name, description, offers, review, aggregateRating |
| Article/Blog | `Article` | headline, author, datePublished, dateModified, image |
| FAQ section | `FAQPage` | mainEntity[].name, mainEntity[].acceptedAnswer |
| How-to guide | `HowTo` | name, step[].name, step[].text, totalTime |
| Organization | `Organization` | name, url, logo, sameAs[] |
| Breadcrumbs | `BreadcrumbList` | itemListElement[].name, itemListElement[].item |
| Software | `SoftwareApplication` | name, operatingSystem, applicationCategory, offers |
| Review | `Review` | itemReviewed, reviewRating, author, reviewBody |
| Comparison | `ItemList` | itemListElement[] with individual Product/Review schemas |
| Local biz | `LocalBusiness` | name, address, telephone, openingHoursSpecification |

Use `@graph` pattern to combine multiple schema types on a single page:
```json
{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", ... },
    { "@type": "WebPage", ... },
    { "@type": "BreadcrumbList", ... }
  ]
}
```

**10. Programmatic SEO awareness**: If the site has repeatable content patterns (product listings, city pages, comparison pages), note the opportunity for template-driven SEO pages. Common playbooks:
- **Templates**: `best [tool] for [persona]` pages across personas
- **Comparisons**: `[product A] vs [product B]` for all competitor pairs
- **Locations**: `[service] in [city]` for local reach
- **Integrations**: `[product] + [integration]` for every supported integration

Flag programmatic SEO opportunities in the audit report for follow-up.

**Output**: SEO Audit Report with pass/fail per check. Save to `marketing/seo-audit.md`.

Fix critical SEO issues (missing titles, broken heading hierarchy) in the implementation plan. Non-critical issues go to `marketing/seo-backlog.md`.

### Step 6 — Visual assets

Call `topia:asset-creator` to generate:
- OG image (1200x630px) — product name, tagline, brand colors
- Twitter card image (1200x628px)
- Product Hunt thumbnail (240x240px)

Call `topia:video-creator` to produce:
- 60-second demo video script (screen recording plan)
- Shot list with timestamps

Call `topia:slides` to generate presentation decks for launch demos, sprint reviews, or investor pitches.

If `topia:browser-pilot` is available, capture screenshots of the running app to use as real product imagery.

### Step 7 — Present for approval

Output all assets as structured markdown sections. Present to user for review before saving files.

After user approves, use `Write` to save:
- `marketing/brand-voice.md` — voice contract from Step 2.5
- `marketing/landing-copy.md` — all copy from Step 3
- `marketing/counter-playbook.md` — competitive response strategies from Step 3.5 (if competitors exist)
- `marketing/social-posts.md` — all posts from Step 4
- `marketing/seo-meta.json` — SEO data from Step 5
- `marketing/seo-audit.md` — SEO audit results from Step 5.5 (if existing site)
- `marketing/video-script.md` — video plan from Step 6

## Constraints

1. MUST base all claims on actual product capabilities — no aspirational features
2. MUST verify deploy is live before generating marketing materials
3. MUST NOT fabricate testimonials, stats, or benchmarks
4. MUST include accurate technical details — wrong tech specs destroy credibility

## Output Format

```
## Marketing Assets
- **Landing Copy**: [generated — headline, subheadline, value props, features, CTAs]
- **Social Posts**: Twitter thread (N tweets), LinkedIn post, PH tagline
- **SEO Metadata**: title, description, OG tags, N target keywords
- **Visuals**: OG image, Twitter card, PH thumbnail
- **Video**: 60s demo script with shot list

### Generated Files
- marketing/landing-copy.md
- marketing/social-posts.md
- marketing/seo-meta.json
- marketing/video-script.md
```

## Sharp Edges

Known failure modes for this skill. Check these before declaring done.

| Failure Mode | Severity | Mitigation |
|---|---|---|
| Fabricating statistics, benchmarks, or testimonials | CRITICAL | Constraint 3: no fabrication — if no real stats exist, use honest placeholder copy |
| Generating copy before deploy verified live | HIGH | Constraint 2: deploy must be confirmed live before marketing runs |
| Copy not based on actual codebase features (invented value props) | HIGH | scout must run in Step 1 — features extracted from actual code, not assumptions |
| Missing SEO keyword analysis (no research call) | MEDIUM | Step 2: research call for keyword data is mandatory for SEO section |
| Files saved without user approval | MEDIUM | Step 7: present ALL assets to user, wait for approval before writing files |
| Counter-playbook without detection mechanism | HIGH | Every scenario needs a monitoring method — "watch for price drops" is useless without specifying WHERE to watch and HOW to automate |
| Counter-playbook with unrealistic response windows | MEDIUM | If response window is 24h but pre-built assets don't exist, the playbook will fail — either extend window or create assets NOW |
| Generating counter-playbook for blue ocean products | LOW | Skip Step 3.5 if no direct competitors — counter-strategies need someone to counter |

## Done When

- scout completed and actual feature list extracted
- Brand voice contract established (or existing one loaded)
- Competitor/trend analysis done via trend-scout + research
- Competitive response playbook generated (if competitors exist) with pre-built asset checklist
- Hero copy, value props, social posts, and SEO metadata generated (following brand voice)
- SEO audit completed (if existing site) with pass/fail results
- Visual assets requested from asset-creator
- Video script requested from video-creator (if requested)
- User has approved all content
- Files saved to marketing/ directory
- Marketing Assets report emitted with file list

## Returns

| Artifact | Format | Location |
|----------|--------|----------|
| Brand voice contract | Markdown | `marketing/brand-voice.md` |
| Landing page copy | Markdown | `marketing/landing-copy.md` |
| Competitive response playbook | Markdown | `marketing/counter-playbook.md` |
| Social media posts | Markdown | `marketing/social-posts.md` |
| SEO metadata | JSON | `marketing/seo-meta.json` |
| SEO audit report | Markdown | `marketing/seo-audit.md` |
| Video demo script | Markdown | `marketing/video-script.md` |

## Cost Profile

~2000-5000 tokens input, ~1000-3000 tokens output. Sonnet for copywriting quality.

**Scope guardrail:** marketing generates assets based on actual product capabilities only — no aspirational copy, no fabricated stats.

---
> Source: [linenoize/topia](https://github.com/linenoize/topia) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-16 -->

