skills/battlecard/SKILL.md
Generate competitive battlecards, displacement campaigns, trap questions, and objection counters as text-based analysis grounded in library data and real deal evidence. Use when user says "battlecard for [competitor]", "how do we beat [competitor]", "competitive intel", "trap questions", "displacement campaign", or mentions competing against a rival. Do NOT use for visual HTML battlecard documents — use /octave:battlecard-doc instead.
npx skillsauth add octavehq/lfgtm battlecardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Dedicated competitive intelligence skill that generates living competitive artifacts — battlecards, displacement campaigns, trap questions, objection counters, and side-by-side comparisons — all grounded in your library's competitive data and real conversation evidence.
/octave:battlecard [mode] [--competitor <name>] [--persona <name>]
/octave:battlecard # Interactive - pick competitor and mode
/octave:battlecard battlecard --competitor "Acme" # Full competitive battlecard
/octave:battlecard displacement --competitor "Acme" # Displacement campaign
/octave:battlecard traps --competitor "Acme" # Trap questions to expose weaknesses
/octave:battlecard objections --competitor "Acme" # "They say X, we say Y" guide
/octave:battlecard compare --competitor "Acme" # Side-by-side comparison
/octave:battlecard landscape # Full competitive landscape overview
When the user runs /octave:battlecard:
If no competitor specified, list available competitors:
# Get all competitors
list_all_entities({ entityType: "competitor" })
Present:
Which competitor are you focused on?
COMPETITORS IN YOUR LIBRARY
1. [Competitor 1] - [Brief description]
2. [Competitor 2] - [Brief description]
3. [Competitor 3] - [Brief description]
OTHER
4. Research a new competitor (provide name/domain)
5. Full competitive landscape (all competitors)
Your choice:
If no mode specified, ask:
What do you need?
1. Full Battlecard - Comprehensive positioning guide for sales
2. Displacement Campaign - Outreach to steal their customers
3. Trap Questions - Discovery questions that expose their weaknesses
4. Objection Counters - "They say X, we say Y" paired responses
5. Side-by-Side Compare - Feature/capability comparison
6. Competitive Landscape - Overview of all competitors
Your choice:
# Get competitor entity
get_entity({ oId: "<competitor_oId>" })
# Find Custom Motion Playbooks for this competitor (narrative type COMPETITIVE)
list_motions()
list_motion_playbooks({ motionOId: "<motion_oId>" })
# Filter for narrativeType === "COMPETITIVE" and matching competitor
get_motion_playbook({ motionPlaybookOId: "<motion_playbook_oId>" })
# Also pull the Default Motion Playbook's Motion ICPs for general positioning
list_motion_icps({ motionOId: "<motion_oId>" })
find_motion_icp({ motionIcpOId: "<motion_icp_oId>", includeLearnings: true })
# Search for proof points (especially competitive wins)
search_knowledge_base({
query: "<competitor name> win switch migration",
entityTypes: ["proof_point", "reference"]
})
# Search conversation data for competitor mentions
list_findings({
query: "<competitor name> objections competitive mentions",
startDate: "<90 days ago>",
eventFilters: {
competitors: ["<competitor_oId>"]
}
})
# Get won deals where this competitor was present
list_events({
startDate: "<180 days ago>",
filters: {
eventTypes: ["DEAL_WON"],
competitors: ["<competitor_oId>"]
}
})
# Get lost deals to this competitor
list_events({
startDate: "<180 days ago>",
filters: {
eventTypes: ["DEAL_LOST"],
competitors: ["<competitor_oId>"]
}
})
# Get product details for comparison
list_all_entities({ entityType: "product" })
get_entity({ oId: "<product_oId>" })
See full-battlecard.md for the full battlecard template.
See displacement-campaign.md for the displacement campaign template (generate_email call + email sequence output format).
See trap-questions.md for the trap questions template.
See objection-counters.md for the objection counters template.
See side-by-side-compare.md for the side-by-side comparison template.
See competitive-landscape.md for the competitive landscape template.
What would you like to do next?
1. Deep dive on a specific area
2. Generate displacement outreach for a specific person
3. Create a persona-specific version
4. Re-generate any piece using a saved agent
5. Update competitor entity with new insights
6. Share with team (export)
7. Done
This skill uses Octave's generate_content and generate_email tools by default. Two alternatives:
list_agents when relevant. See /octave:explore-agents.generate_* calls, gather Octave context, Claude writes directly. Offer when user wants more control.For the full interactive mode selector, use /octave:generate.
list_all_entities (competitor) - List all competitorsget_entity - Get competitor detailssearch_knowledge_base - Find competitive positioning, proof pointslist_findings - Real conversation mentions and objectionslist_events - Deal win/loss data against competitorget_event_detail - Deep dive into specific competitive dealslist_motions - List Motions in the workspacelist_motion_playbooks - Surface Custom Motion Playbooks (narrative type COMPETITIVE) layered onto each Motionget_motion_playbook - Full details for a Custom Motion Playbook (competitive narrative)list_motion_icps - List Motion ICP cells (persona × segment) for a Motionfind_motion_icp - Motion ICP narrative + Learning Loop learningsget_entity (product) - Product capabilities for comparisongenerate_email - Displacement email campaignsgenerate_content - Trap questions, objection guides, comparisonsNo Competitors in Library:
No competitors found in your library.
Options:
- Add a competitor first:
/octave:library create competitor- Tell me the competitor name and I'll create a basic comparison
No Deal Data:
No win/loss data found against [Competitor].
I'll build the battlecard from library data and general positioning. As you log deals, the battlecard will get richer with real evidence.
Competitor Not in Library:
"[Name]" isn't in your library yet.
Options:
- Create the competitor entity first:
/octave:library create competitor "[name]"- I'll generate a basic comparison with available information
/octave:research - Research a specific account in a competitive deal/octave:campaign - Generate competitive campaign content/octave:insights - Surface competitive mentions from conversations/octave:wins-losses - Analyze win/loss patterns against competitors/octave:enablement - Package competitive intel for the teamtools
Capture a brand's visual design system from its website and build a reusable component kit. Walks key pages on a domain (screenshots + HTML via the Octave scrape tool), derives design tokens (colors, type, spacing, radius, shadow), and produces a minimal component library (buttons, cards, headers, stats, tables, badges, hero, footer) as a self-contained HTML reference plus CSS tokens. Use when the user says "get brand components", "capture the brand", "build a component kit for <domain>", "make outputs look like <company>", or wants other skills to generate on-brand HTML for a target company.
tools
Define, run, and manage multi-step GTM workflows with human-in-the-loop execution. Use when user says "run a workflow", "show workflows", "create a workflow", "automate this process", or references workflow-based tasks.
development
Analyze won and lost deals for patterns, insights, and actionable learnings. Use when user says "win/loss analysis", "why did we lose", "deal patterns", "win themes", or asks about deal outcome trends. Do NOT use for visual HTML reports — use /octave:win-loss-report instead.
development
Generate visual win/loss analysis reports as self-contained HTML with CSS-based charts and data visualizations. Use when user says "win/loss report", "deal report", "visual analysis", or wants a formatted HTML version of deal outcome analysis. Do NOT use for text-based deal analysis — use /octave:wins-losses instead.