Product Marketing
Corey HainesCommunityCreated by Corey Haines
- Skill
- Workflow
- Business and productivity
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The product-marketing skill establishes a single source of truth for your brand's positioning, audience, and messaging. By creating and maintaining a structured .agents/product-marketing.md file, it prevents the need to repeat foundational information. The skill guides you through capturing essential details like product overview, target personas, competitive landscape, brand voice, and paid ad parameters. It includes a versioned changelog and a learnings log to track how your strategy evolves over time, ensuring that all subsequent marketing tasks are grounded in accurate, up-to-date context.
What it does
- Generates a comprehensive product marketing context document at .agents/product-marketing.md.
- Offers an auto-drafting feature that analyzes your codebase to jumpstart the documentation process.
- Maintains a versioned changelog to track updates to your positioning and messaging.
- Logs actionable learnings and test results to inform future marketing efforts.
- Provides a structured framework for defining personas, pain points, and competitive differentiation.
- Standardizes brand voice and tone guidelines for consistent communication across channels.
When to use it
- At the start of any new marketing project to establish foundational context.
- When you need to define or update your Ideal Customer Profile (ICP) and target audience.
- When you want to refine your brand voice or tone guidelines.
- When you need to document competitive positioning or handle sales objections.
- When you want to ensure all AI-generated marketing content aligns with your current business goals.
Advantages
- Eliminates repetitive input by centralizing foundational marketing data.
- Ensures consistency across different marketing tasks and campaigns.
- Creates a clear paper trail of strategic changes via the versioned changelog.
- Uses verbatim customer language to make marketing copy more resonant and authentic.
- Provides a dedicated space for tracking test results and actionable marketing insights.
Usage examples
- “Set up my product marketing context.”
- The agent will check for an existing file or offer to auto-draft one based on your repository, guiding you through the setup of your product overview, audience, and brand voice.
- “Update our positioning for the new enterprise tier.”
- The agent will open the existing context document, help you modify the relevant sections, and automatically append a new entry to the changelog to reflect the change.
- “Log a new learning from our recent ad campaign.”
- The agent will help you format the insight into the 'Learnings' table, ensuring it is properly categorized and ready for future reference by other marketing skills.
- “Who is our target audience?”
- The agent will read the current .agents/product-marketing.md file and provide a summary of the defined target companies, decision-makers, and primary use cases.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/coreyhaines31/product-marketing/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip product-marketing.zip -d .agents/skills
Documentation by Corey Haines
Product Marketing Context
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.
Workflow
Step 1: Check for Existing Context
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?"
Step 2: Gather Information
If auto-drafting:
Read the codebase: README, landing pages, marketing copy, about pages, meta descriptions, package.json, any existing docs
Draft all sections based on what you find
Present the draft and ask what needs correcting or is missing
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:
Briefly explain what you're capturing
Ask relevant questions
Confirm accuracy
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.
Sections to Capture
1. Product Overview
One-line description
What it does (2-3 sentences)
Product category (what "shelf" you sit on—how customers search for you)
Product type (SaaS, marketplace, e-commerce, service, etc.)
Business model and pricing
2. Target Audience
Target company type (industry, size, stage)
Target decision-makers (roles, departments)
Primary use case (the main problem you solve)
Jobs to be done (2-3 things customers "hire" you for)
Specific use cases or scenarios
3. Personas (B2B only)
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
4. Problems & Pain Points
Core challenge customers face before finding you
Why current solutions fall short
What it costs them (time, money, opportunities)
Emotional tension (stress, fear, doubt)
5. Competitive Landscape
Direct competitors: Same solution, same problem (e.g., Calendly vs SavvyCal)
Secondary competitors: Different solution, same problem (e.g., Calendly vs Superhuman scheduling)
Indirect competitors: Conflicting approach (e.g., Calendly vs personal assistant)
How each falls short for customers
6. Differentiation
Key differentiators (capabilities alternatives lack)
How you solve it differently
Why that's better (benefits)
Why customers choose you over alternatives
7. Objections & Anti-Personas
Top 3 objections heard in sales and how to address them
Who is NOT a good fit (anti-persona)
8. Switching Dynamics
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
9. Customer Language
How customers describe the problem (verbatim)
How they describe your solution (verbatim)
Words/phrases to use
Words/phrases to avoid
Glossary of product-specific terms
10. Brand Voice
3-5 voice attributes, each with what it means, what it doesn't mean, and a real line from existing copy
Tone by context: how the voice shifts for support, launches, errors, sales, and social
Brand words: terms you own, words you never use (with the reason)
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.
11. Proof Points
Key metrics or results to cite
Notable customers/logos
Testimonial snippets
Main value themes and supporting evidence
12. Goals
Primary business goal
Key conversion action (what you want people to do)
Current metrics (if known)
13. Paid Ads (optional, only if they run ads)
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)
14. Learnings
Start this empty. It fills up as work ships (see "Maintaining Learnings" below).
Step 3: Create the Document
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.Step 4: Confirm, Version, and Save
Show the completed document
Ask if anything needs adjustment
Set the version and changelog — this is the paper trail for a doc every other skill reads:
New document: set
Document version: v1and a single Changelog entry —- v1 ([today]) — Initial context.Updating an existing document: increment the version (v2 → v3 …), update
Last updatedto 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.A good entry names the sections touched and the reason, not "updated the doc." Examples:
- 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.
Use today's date in ISO form (YYYY-MM-DD) for the entry and
Last updated.Pure typo-only fix: don't bump the version or add a changelog entry — just save the correction. Every other change bumps the version and gets an entry. When the change is a real repositioning, say so plainly — downstream skills will now generate against the new context.
Save to
.agents/product-marketing.mdTell them: "Other marketing skills will now use this context automatically. The Changelog at the bottom tracks every revision — check it to see how your positioning has evolved. Run
/product-marketinganytime to update it."
Maintaining Learnings
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), orretired.
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).
Tips
Be specific: Ask "What's the #1 frustration that brings them to you?" not "What problem do they solve?"
Capture exact words: Customer language beats polished descriptions
Ask for examples: "Can you give me an example?" unlocks better answers
Validate as you go: Summarize each section and confirm before moving on
Skip what doesn't apply: Not every product needs all sections (e.g., Personas for B2C, Paid Ads if they don't run ads)
Files
- ATTRIBUTION.mdAdded by AutoGineer895 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md13.5 KiB
- evals/evals.json7.0 KiB
- references/brand-voice.md8.2 KiB
evals/evals.json
{
"skill_name": "product-marketing",
"evals": [
{
"id": 1,
"prompt": "I want to set up my product marketing context. We're a B2B SaaS company that sells a customer feedback platform to product teams.",
"expected_output": "Should check if .agents/product-marketing.md already exists. If not, should offer two options: (1) Auto-draft from codebase (recommended) or (2) Start from scratch. If user chooses start from scratch, should walk through sections conversationally one at a time. Should cover all applicable sections: Product Overview, Target Audience, Personas, Problems You Solve, Competitive Landscape, Differentiation, Objections, Switching Dynamics, Customer Language, Brand Voice, Proof Points, and Goals. Should create the file at .agents/product-marketing.md when complete.",
"assertions": [
"Checks for existing product-marketing.md",
"Offers two options: auto-draft or start from scratch",
"Covers applicable sections",
"Walks through sections conversationally one at a time",
"Creates file at .agents/product-marketing.md"
],
"files": []
},
{
"id": 2,
"prompt": "Update our product marketing context. We just added a new enterprise tier and our target audience has expanded to include VP of Engineering, not just Product Managers.",
"expected_output": "Should check for existing .agents/product-marketing.md and read it. Should identify which sections need updating based on the changes: Target Audience (add VP of Engineering), Personas (add new persona), Product Overview (new enterprise tier, including pricing updates within that section), Objections (enterprise-specific), and Competitive Landscape (enterprise competitors). Should update only the relevant sections, preserving existing content that hasn't changed.",
"assertions": [
"Reads existing product-marketing.md",
"Identifies sections that need updating",
"Updates Target Audience with VP of Engineering",
"Adds new persona for the expanded audience",
"Updates Product Overview for enterprise tier",
"Preserves unchanged sections"
],
"files": []
},
{
"id": 3,
"prompt": "create a product context doc for my app. it's a mobile app that helps people find hiking trails. we're just getting started.",
"expected_output": "Should trigger on casual phrasing. Should check for existing context doc. Should offer auto-draft or start-from-scratch options. Should adapt questions for an early-stage B2C mobile app (outdoor/fitness niche). Should note that some sections may be sparse for an early-stage product and that's okay — they can be filled in as the business matures. Should skip non-applicable sections (e.g., Personas section is B2B-focused) rather than forcing all 12. Should accept lighter answers for sections like Proof Points or Competitive Landscape if the company is new.",
"assertions": [
"Triggers on casual phrasing",
"Checks for existing context doc",
"Offers auto-draft or start-from-scratch options",
"Adapts questions for early-stage B2C mobile app",
"Notes some sections may be sparse early on",
"Skips non-applicable sections rather than forcing all 12",
"Creates file at .agents/product-marketing.md"
],
"files": []
},
{
"id": 4,
"prompt": "Can you auto-draft our product marketing context from our existing codebase and marketing materials?",
"expected_output": "Should activate the auto-draft workflow mode. Should scan the codebase for existing marketing context: README, landing page copy, pricing page, about page, meta descriptions, any existing documentation. Should draft the product-marketing.md from what it finds, filling in sections where information is available and flagging sections that need manual input. Should present the draft for review before saving.",
"assertions": [
"Activates auto-draft workflow mode",
"Scans codebase for existing marketing materials",
"Drafts context from found information",
"Flags sections needing manual input",
"Presents draft for review before saving"
],
"files": []
},
{
"id": 5,
"prompt": "Do we have a product marketing context set up? I want to make sure the other marketing skills have context about our product.",
"expected_output": "Should check for .agents/product-marketing.md (and the older .claude/product-marketing.md location). Should report whether it exists and summarize its contents if found. If it doesn't exist, should offer to create one and explain why it's valuable (other skills like copywriting, cro, seo-audit check for it first). Should explain how other skills use this context document.",
"assertions": [
"Checks both file locations",
"Reports whether context doc exists",
"Summarizes contents if found",
"Offers to create if missing",
"Explains how other skills use it"
],
"files": []
},
{
"id": 6,
"prompt": "Write homepage copy for our SaaS product.",
"expected_output": "Should recognize this is a copywriting task, not a product marketing context task. Should check for product-marketing.md (as other skills do), and if it doesn't exist, may suggest creating one first. But should defer to the copywriting skill for actually writing the homepage copy.",
"assertions": [
"Recognizes this as a copywriting task",
"May check for or suggest creating product-marketing.md",
"References or defers to copywriting skill for the actual copy",
"Does not attempt to write homepage copy using context creation patterns"
],
"files": []
},
{
"id": 7,
"prompt": "We just repositioned — we're no longer an 'email tool,' we're a 'deliverability platform,' and our ICP now includes RevOps teams. Update our product marketing context.",
"expected_output": "Should recognize an existing .agents/product-marketing.md, read it, note its current Document version and recent Changelog entries, and update only the affected sections (product overview/positioning, target audience/ICP). On save, should bump the Document version (e.g. v2 → v3), update the Last updated date, and PREPEND a new newest-first Changelog entry summarizing what changed and why in one line — e.g. 'Repositioned from email tool to deliverability platform; added RevOps to the ICP' — naming the sections touched and the reason, not just 'updated the doc.' Should not rewrite or reorder past changelog entries. Should tell the user the changelog tracks revisions and that downstream skills will now use the new context.",
"assertions": [
"Reads the existing doc and surfaces its current version + recent changelog",
"Updates only the affected sections (positioning + ICP)",
"Bumps the Document version and updates Last updated",
"Prepends a newest-first changelog entry naming what changed and why",
"Preserves prior changelog entries unchanged"
],
"files": []
}
]
}
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Corey Haines
- Publisher
- Corey Haines (Community)
- Source
- coreyhaines31/marketingskills · skills/product-marketing · commit 96798cf
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Corey Haines or Corey Haines.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download product-marketing.zip