Creates and maintains a foundational product marketing context document at `.agents/product-marketing.md` that captures positioning, audience, brand voice, and competitive landscape. It serves as the single source of truth for all other marketing skills to ensure consistent messaging and avoid repeating foundational information.
Say it in your own words; the assistant finds this recipe by itself. Examples:
Use this skill when a user wants to define, update, or refine their product's core marketing context, such as target audience, value proposition, or brand tone. It is the ideal starting point for new marketing projects to establish a shared baseline before executing specific tasks like copywriting or campaign planning. It is also used when the user explicitly mentions setting up context, defining ICP, or wants to prevent repetitive explanations of their product details.
You help users create and maintain a product marketing context document. This captures foundational positioning and messaging information that other marketing skills reference, so users don't repeat themselves.
The document is stored at .agents/product-marketing.md.
First, check if .agents/product-marketing.md already exists. Also check .claude/product-marketing.md and the legacy filename product-marketing-context.md (in either .agents/ or .claude/) for older setups — if found anywhere other than .agents/product-marketing.md, offer to move it to the canonical location.
If it exists: - Read it and summarize what's captured — note its current Document version and the last few Changelog entries so the user sees where the doc stands and what's changed recently - Ask which sections they want to update - Only gather info for those sections - On any substantive save, bump the version and add a changelog entry (see Step 4). This doc is the shared context every other marketing skill reads, so a dated paper trail of what changed and why is worth keeping.
If it doesn't exist, offer two options:
Auto-draft from codebase (recommended): You'll study the repo—README, landing pages, marketing copy, package.json, etc.—and draft a V1 of the context document. The user then reviews, corrects, and fills gaps. This is faster than starting from scratch.
Start from scratch: Walk through each section conversationally, gathering info one section at a time.
Most users prefer option 1. After presenting the draft, ask: "What needs correcting? What's missing?"
If auto-drafting: 1. Read the codebase: README, landing pages, marketing copy, about pages, meta descriptions, package.json, any existing docs 2. Draft all sections based on what you find 3. Present the draft and ask what needs correcting or is missing 4. Iterate until the user is satisfied
If starting from scratch: Walk through each section below conversationally, one at a time. Don't dump all questions at once.
For each section: 1. Briefly explain what you're capturing 2. Ask relevant questions 3. Confirm accuracy 4. Move to the next
Push for verbatim customer language — exact phrases are more valuable than polished descriptions because they reflect how customers actually think and speak, which makes copy more resonant.
If multiple stakeholders are involved in buying, capture for each: - User, Champion, Decision Maker, Financial Buyer, Technical Influencer - What each cares about, their challenge, and the value you promise them
The JTBD Four Forces: - Push: What frustrations drive them away from current solution - Pull: What attracts them to you - Habit: What keeps them stuck with current approach - Anxiety: What worries them about switching
Build this from copy that already performed and from the founder's own writing, rather than from adjectives picked in a meeting. See references/brand-voice.md for the extraction steps, a worked profile, before/after examples, and per-person voice guides.
The ads skill reads this so the user doesn't re-explain the account every session. - Margin reality: the target CPA or ROAS that keeps the business profitable, and the hard floor (the ROAS below which, or CPA above which, to flag immediately) - Budget and pacing: monthly budget and acceptable daily variance - Conversion truth: which conversion actions count and what each is worth, known tracking weaknesses (lag, double counting, offline gaps), and what separates a good lead from a form fill - Campaign naming convention and what each campaign is for, one line each - What the agent may do (read, compare, flag, draft, recommend) and may not do without approval (change budgets or bids, pause or launch, edit tracking, publish ads)
Start this empty. It fills up as work ships (see "Maintaining Learnings" below).
After gathering information, create .agents/product-marketing.md with this structure:
# Product Marketing Context
**Document version:** v1
**Last updated:** [date]
## Product Overview
**One-liner:**
**What it does:**
**Product category:**
**Product type:**
**Business model:**
## Target Audience
**Target companies:**
**Decision-makers:**
**Primary use case:**
**Jobs to be done:**
-
**Use cases:**
-
## Personas
| Persona | Cares about | Challenge | Value we promise |
|---------|-------------|-----------|------------------|
| | | | |
## Problems & Pain Points
**Core problem:**
**Why alternatives fall short:**
-
**What it costs them:**
**Emotional tension:**
## Competitive Landscape
**Direct:** [Competitor] — falls short because...
**Secondary:** [Approach] — falls short because...
**Indirect:** [Alternative] — falls short because...
## Differentiation
**Key differentiators:**
-
**How we do it differently:**
**Why that's better:**
**Why customers choose us:**
## Objections
| Objection | Response |
|-----------|----------|
| | |
**Anti-persona:**
## Switching Dynamics
**Push:**
**Pull:**
**Habit:**
**Anxiety:**
## Customer Language
**How they describe the problem:**
- "[verbatim]"
**How they describe us:**
- "[verbatim]"
**Words to use:**
**Words to avoid:**
**Glossary:**
| Term | Meaning |
|------|---------|
| | |
## Brand Voice
| Attribute | Means | Doesn't mean | Example line |
|-----------|-------|--------------|--------------|
| | | | |
**Tone by context:**
- Support:
- Launch:
- Errors:
- Sales:
- Social:
**Terms we own:**
**Never use (and why):**
## Proof Points
**Metrics:**
**Customers:**
**Testimonials:**
> "[quote]" — [who]
**Value themes:**
| Theme | Proof |
|-------|-------|
| | |
## Goals
**Business goal:**
**Conversion action:**
**Current metrics:**
## Paid Ads (optional)
**Target CPA / ROAS:**
**Hard floor:**
**Monthly budget and daily variance:**
**Conversions that count:**
| Action | Means | Value | Feeds bidding? |
|--------|-------|-------|----------------|
| | | | |
**Known tracking weaknesses:**
**Good lead vs. form fill:**
**Campaigns:** [name] — [what it's for]
**Agent may:** read, compare, flag, draft, recommend
**Agent may not (without approval):** change budgets or bids, pause or launch, edit tracking, publish ads
## Learnings
*Decisions and tested lessons. Newest first. Keep it to about 20 active entries.*
| Date | Learning | Evidence | Applies to | Status |
|------|----------|----------|------------|--------|
| | | | | |
## Changelog
*Newest first. One line per revision: what changed and why.*
- v1 ([date]) — Initial context.
Document version: v1 and a single Changelog entry — - v1 ([today]) — Initial context.Last updated to today, and prepend a new Changelog entry at the top of the list (newest first) summarizing what changed and why in one line. Never rewrite or reorder past entries.- v3 (2026-07-16) — Repositioned from "email tool" to "deliverability platform"; added RevOps to the ICP.- v2 (2026-06-02) — Rewrote value prop and objections after 5 customer interviews; added competitor Acme.Last updated..agents/product-marketing.md/product-marketing anytime to update it."The Changelog records how the document changed. Learnings records what the team found out by shipping: which angles won, which offers flopped, which decisions were made and why. Drafting skills (copywriting, emails, ads, ad-creative, social) read it before writing so the next brief starts from what's already known.
Entry format: one row per learning.
- Learning: one sentence, specific enough to change a draft. "Price-anchored headlines beat outcome headlines on the pricing page" works. "Be clearer" doesn't.
- Evidence: the test, campaign, or source, with the number and sample size. "Variant B +18% trial starts, 2,400 visitors per arm, 3 weeks."
- Applies to: the channels, segments, or skills it affects.
- Status: active, watch (one data point, worth retesting), or retired.
What earns a place: - A test result that reached its planned sample, or the same pattern seen in two or more campaigns - A decision the user made with a reason (positioning, pricing, a channel cut) that future drafts must respect - A correction the user gave more than once ("never call it a platform")
What doesn't: single-run anecdotes (log those as watch or leave them out), task notes, and anything that belongs in another section. A new objection goes in Objections; a new customer phrase goes in Customer Language.
When to retire an entry: a later test contradicts it, the product or market changed underneath it (new pricing, new ICP), or it hasn't been relevant for two quarters. Change the status to retired and add a line saying why, rather than deleting it, so nobody re-tests a settled question. Move retired rows to the bottom, and archive them once the table passes about 20 active rows.
Who writes it: any skill that finishes a test, campaign, or postmortem may propose a row. Show the proposed row to the user and add it on approval, with a version bump and a Changelog line like any other substantive change. Loops that run on a schedule do this through their session-end step (see marketing-loops).
LICENSESKILL.mdevals/evals.jsonreferences/brand-voice.mdVendored from coreyhaines31/marketingskills, commit e85f3cbc2e4a, path skills/product-marketing, licence MIT. The upstream licence file ships inside the skill.