| name | pmm |
| description | Product marketing content generator for case studies, blog posts, datasheets, and FAQs. Use when user says "case study", "blog post", "datasheet", "FAQ", or asks for marketing collateral. For visual document output, prefer /octave:deck, /octave:one-pager, /octave:brief, /octave:proposal, or /octave:microsite. |
/octave:pmm - Product Marketing Assistant
Interactive PMM assistant for creating sales collateral, landing pages, case studies, one-pagers, decks, and other marketing content—all infused with your brand voice and library messaging.
Usage
/octave:pmm [content-type]
Content Types
/octave:pmm # Interactive mode - asks what you're creating
/octave:pmm one-pager # Product one-pager
/octave:pmm case-study # Customer case study
/octave:pmm landing-page # Landing page copy
/octave:pmm deck # Sales deck outline
/octave:pmm blog # Blog post / thought leadership
/octave:pmm datasheet # Technical datasheet
/octave:pmm faq # FAQ document
Instructions
When the user runs /octave:pmm:
Step 1: Determine Content Type
If no type specified, ask:
What would you like to create?
SALES ENABLEMENT
1. One-Pager - Single page product/solution overview
2. Sales Deck - Presentation outline and talking points
MARKETING CONTENT
3. Landing Page - Web page copy (hero, benefits, CTA)
4. Case Study - Customer success story
5. Blog Post - Thought leadership content
6. Datasheet - Technical specifications
OTHER
7. FAQ - Frequently asked questions
8. Something else - Describe what you need
TIP: For competitive battlecards, use /octave:battlecard
TIP: For objection handling guides, use /octave:enablement objections
Your choice:
Step 2: Gather Requirements
Based on content type, ask targeted questions:
For One-Pager:
Let's create your one-pager. A few questions:
1. Which product/solution is this for?
[List products from library or "new/custom"]
2. Target audience?
[List personas from library or "general"]
3. Primary use case to emphasize?
[List use cases or "general overview"]
4. Key CTA (call-to-action)?
- Schedule a demo
- Start free trial
- Contact sales
- Custom: ___
5. Any specific proof points to include?
[List available proof points]
For Case Study:
Let's create your case study. A few questions:
1. Which customer/reference?
[List references from library or "new customer"]
2. Primary persona who would read this?
[List personas]
3. Key metrics to highlight?
- ROI / cost savings
- Time savings
- Performance improvements
- Custom metrics: ___
4. Desired length?
- Short (1 page, quick read)
- Standard (2-3 pages, detailed)
- Long-form (full story with quotes)
For Landing Page:
Let's create your landing page copy. A few questions:
1. What's the page for?
- Product overview
- Use case / solution
- Campaign / promotion
- Event / webinar
- Free trial signup
2. Target persona?
[List personas]
3. Primary CTA?
- Demo request
- Free trial
- Contact us
- Download resource
- Register for event
4. Tone?
- Professional / enterprise
- Friendly / conversational
- Bold / challenger
- Use default brand voice
For Blog Post:
Let's create your blog post. A few questions:
1. Topic or theme?
[Open text or suggest based on library]
2. Content angle?
- Thought leadership (industry trends)
- How-to / educational
- Customer story
- Product announcement
- Comparison / versus
3. Target persona?
[List personas]
4. Desired length?
- Short (500-800 words)
- Medium (1000-1500 words)
- Long-form (2000+ words)
5. SEO keywords to target? (optional)
Step 3: Gather Library Context
Use MCP tools to gather library context:
# Always get brand voice
list_all_entities(entityType: "brand_voice")
# Get product info
get_entity({ oId: "<product_oId>" })
# Get persona details
get_entity({ oId: "<persona_oId>" })
# Get reference details (for case studies)
get_entity({ oId: "<reference_oId>" })
# Search for relevant proof points
search_knowledge_base({ query: "<topic>", entityTypes: ["proof_point"] })
# Get relevant use cases
search_knowledge_base({ query: "<topic>", entityTypes: ["use_case"] })
# Search for messaging
search_knowledge_base({ query: "<persona> pain points value" })
Step 4: Generate Content
Use generate_content with structured instructions:
generate_content({
instructions: "<detailed content brief>",
person: { ... }, // if persona-targeted
company: { ... }, // if account-specific
customContext: "<library context gathered>"
})
Present the generated content with clear sections:
See one-pager-output.md for the One-Pager output template.
See case-study-output.md for the Case Study output template.
Step 5: Iterate and Refine
After presenting content, offer refinement options:
What would you like to do?
1. Adjust tone or style
2. Add/remove/expand sections
3. Re-generate using a saved agent
4. Create version for different persona
5. Make it shorter / longer
6. Add more proof points
7. Strengthen the CTA
8. Done - export final version
Your choice:
For each revision request, regenerate the specific section or full content as needed.
Step 6: Export Options
Export Options
==============
1. Copy as Markdown (for docs, Notion, etc.)
2. Copy as plain text
3. Copy as HTML
4. Save to file
Which format?
Brand Voice Integration
Always check for brand voices and apply:
list_all_entities(entityType: "brand_voice")
If multiple voices exist, ask:
Which brand voice should I use?
1. [Voice 1 name] - [description]
2. [Voice 2 name] - [description]
3. No specific voice (neutral professional)
Apply selected voice guidelines to all generated content.
Generation Mode Note
This skill uses Octave's generate_content and generate_email tools by default. Two alternatives:
- Saved agents: Check for matching agents with
list_agents when relevant. See /octave:explore-agents.
- Claude-direct: Skip
generate_* calls, gather Octave context, Claude writes directly. Offer when user wants more control.
For the full interactive mode selector, use /octave:generate.
MCP Tools Used
Library Context
list_all_entities (entityType: "brand_voice") - Get available brand voices
list_all_entities - List products, personas, etc.
get_entity - Get full entity details
search_knowledge_base - Find relevant messaging, proof points
Content Generation
generate_content - Primary content generation tool
generate_email - For email-style content within collateral
Content Type Quick Reference
| Type | Key Inputs | Primary Library Sources |
|---|
| One-Pager | Product, persona, use case | Product, persona pain points, proof points |
| Case Study | Reference customer | Reference (metrics, quotes), use case |
| Landing Page | Product/campaign, persona, CTA | Product, persona, value props |
| Blog Post | Topic, angle, persona | Use cases, proof points, messaging |
| Datasheet | Product | Product (features, specs, capabilities) |
| FAQ | Product/topic | Common objections, use cases |
| Sales Deck | Offering, persona, Motion | Motion ICP narrative (Strategic narrative, Benefits and impacts), offering |
Error Handling
Missing Product:
No products found in your library.
To create effective collateral, I need product information.
Run /octave:library create product to add your product first.
Missing Brand Voice:
No brand voice defined. I'll use a neutral professional tone.
For consistent messaging, consider creating a brand voice:
This is done in the Octave web app under Settings > Brand Voices.
Related Skills
/octave:brainstorm - Generate content ideas before creating
/octave:generate - Quick one-off content (emails, LinkedIn)
/octave:library - Add/update entities used in content
/octave:analyzer - Analyze existing content for improvements
/octave:battlecard - Competitive battlecards with real deal evidence
/octave:enablement - Sales enablement materials (objection guides, cheat sheets)
/octave:positioning - Complete visual positioning system — message framework, anchors, strategy, persona messaging
/octave:messaging - Build messaging frameworks before creating collateral
/octave:campaign - Multi-channel campaign content