From octave
Generates strategic sales meeting battle plans as self-contained HTML with coaching frameworks, belief stacks, scripted talk tracks, discovery questions, stakeholder maps, landmine warnings, and timed phase-by-phase game plans for discovery, demos, executive calls, and QBRs.
npx claudepluginhub octavehq/lfgtm --plugin octaveThis skill uses the workspace's default tool permissions.
Build a coached, strategic meeting battle plan rendered as a self-contained HTML document. Unlike `/octave:brief` (a reference dossier), this skill produces a battle plan — combining Octave intelligence with coaching frameworks to generate belief stacks, scripted talk tracks, discovery questions, a stakeholder map, landmine warnings, and a phase-by-phase game plan timed to your meeting duration.
Generates scannable HTML account dossiers and call prep documents for internal sales use from company domains, person emails, or contexts, tailored to occasions like discovery, demo, or QBR.
Structures concise call briefs with objectives, agendas, stakeholder roles, key messages, risks, and follow-ups. Useful for customer meetings, manager inspections, team sharing.
Researches meeting attendees and companies using real-time Nimble CLI web data. Surfaces roles, recent activity, context, talking points, and cross-attendee relationships.
Share bugs, ideas, or general feedback.
Build a coached, strategic meeting battle plan rendered as a self-contained HTML document. Unlike /octave:brief (a reference dossier), this skill produces a battle plan — combining Octave intelligence with coaching frameworks to generate belief stacks, scripted talk tracks, discovery questions, a stakeholder map, landmine warnings, and a phase-by-phase game plan timed to your meeting duration.
The skill reads two coaching reference files at runtime:
references/strategic-coach.md — Enterprise strategic sales coaching (belief stacking, ecosystem positioning, Socratic discovery)references/positioning-coach.md — Product positioning coaching based on April Dunford's methodology (positioned sales pitch, competitive alternatives, feature-value-emotion ladder)If a user replaces these files with their own coaching frameworks, the skill adapts automatically.
Key differentiators:
/octave:brief — brief is a reference dossier; meeting-prep is a coached battle plan with talk tracks and a timed game plan/octave:research — research outputs plain text; meeting-prep renders a styled HTML document with coaching intelligence/octave:deck — deck is a slide presentation for the audience; meeting-prep is internal prep for the seller/octave:meeting-prep <target> [--type <meeting-type>] [--style <preset>]
/octave:meeting-prep acme.com # General meeting prep
/octave:meeting-prep jane@acme.com --type discovery # Discovery call battle plan
/octave:meeting-prep acme.com --type demo # Demo prep with talk tracks
/octave:meeting-prep acme.com --type executive # Executive meeting with board framing
/octave:meeting-prep jane@acme.com --type follow-up # Follow-up with prior call context
/octave:meeting-prep acme.com --type qbr --style executive-dark # QBR prep with specific style
/octave:meeting-prep "meeting with VP Sales at Acme" # Context-based prep
| Type | Primary Focus |
|---|---|
discovery | Discovery questions primary, belief framework, qualification |
demo | Positioned pitch tailored to demo flow, demo landmines |
follow-up | Updated pain from prior calls, deal advancement |
executive | Concise TL;DR, executive talk tracks, board-level framing |
qbr | Value delivered, renewal/expansion angles |
general | Balanced all sections (default) |
When the user runs /octave:meeting-prep:
1.1 Identify the target:
1.2 Detect or ask meeting type:
If --type not specified, infer from context or ask:
What type of meeting are you prepping for?
1. Discovery — First conversation, qualifying the opportunity
2. Demo — Showing the product, proving value
3. Follow-up — Continuing a conversation, advancing the deal
4. Executive — High-level strategic conversation
5. QBR — Quarterly business review with existing customer
6. General — Balanced battle plan (default)
Your choice:
1.3 Ask meeting duration:
The duration drives the game plan timeline — phases get proportional time allocations.
How long is this meeting?
1. 30 minutes
2. 45 minutes
3. 60 minutes
4. 90 minutes
Your choice:
1.4 Collect user context:
Ask if the user has any prior context to incorporate:
Do you have any prior context to fold in?
1. Call transcript or recording notes
2. Email thread or meeting notes
3. My own notes / talking points
4. No prior context — use Octave intel + coaching frameworks
Paste or describe (or press Enter to skip):
If the user provides a transcript, notes, or email thread, synthesize that context alongside Octave data. If they skip, proceed with Octave intel and coaching frameworks only.
1.5 Identify attendees:
Who's attending? (names, titles, emails — or "I don't know yet")
If attendees are unknown, build a general stakeholder map from Octave contacts.
1.6 Read coaching reference files:
Read the two coaching reference files from the skill directory:
references/strategic-coach.md — Extract: belief stacking, ecosystem positioning, enhancement framing, ideal customer fit, guardrail reframe, Socratic discoveryreferences/positioning-coach.md — Extract: positioned sales pitch (5 steps), feature→value→emotion, competitive alternatives, category framing, language mining, heads on pillows testIf the files are not found, fall back to general sales coaching best practices.
Based on the target and meeting type, use Octave MCP tools to build a complete intelligence picture. Tell the user what you're researching and why.
Call as many tools as needed to build a thorough battle plan. The best meeting preps layer multiple sources — company enrichment + person enrichment + playbook messaging + proof points + conversation intel + coaching frameworks all combine to create a document grounded in real data. Don't stop at one tool when several would give you a stronger prep.
Not every tool applies to every meeting. Use your judgment about which are relevant to this specific situation. The tables below show what's available — pick the combination that gives you the richest context for the meeting type and target.
List vs Search — when to use which:
| Tool | Purpose | Use when... |
|---|---|---|
list_all_entities({ entityType }) | Fetch all entities of a type (minimal fields) | You want a quick inventory — "show me all our competitors" |
list_entities({ entityType }) | Fetch entities with full data (paginated) | You need the actual content — "get full proof point details" |
get_entity({ oId }) | Deep dive on one specific entity | You found something relevant and need the complete picture |
search_knowledge_base({ query }) | Semantic search across library + resources | You have a concept or question — "how do we position for healthcare?" |
list_resources() / search_resources({ query }) | Uploaded docs, URLs, Google Drive files | You need reference material, uploaded assets, or source docs |
Rule of thumb: Use list_* when you know what type of thing you want. Use search_* when you know what topic you're looking for.
Findings and events — always attempt, gracefully skip:
ALWAYS try to pull findings and events if you have a company domain or contact emails. Use a 90-day window. If data exists, it populates the "Prior Intelligence" section. If not, silently omit — no error message.
list_findings({ query: "<company or contact>", startDate: "<90 days ago>" }) — surfaces what was actually said in calls: objections raised, features requested, pain points confirmed, competitor mentionslist_events({ filters: { accounts: ["<account_oId>"] } }) — deal stage changes, meetings held, emails sentget_event_detail({ eventOId }) — deep dive on specific past interactionsStart with person and company enrichment, then pull positioning context:
| What you need | Tool | When to use |
|---|---|---|
| Person deep-dive | enrich_person({ person: { email, firstName, lastName, companyDomain } }) | Always for person-targeted preps — gives background, role, priorities |
| Company profile | enrich_company({ companyDomain }) | Always — gives industry, size, tech stack, signals |
| ICP fit (person) | qualify_person({ person: { ... } }) | When you need persona match and fit assessment |
| ICP fit (company) | qualify_company({ companyDomain }) | When you need segment match and ICP scoring |
| Additional contacts | find_person({ searchMode: "people", companyDomain, fuzzyTitles }) | When you want to map the broader buying committee |
| Matching playbook | get_playbook({ oId, includeValueProps: true }) | After identifying relevant playbook — full strategy + value props |
| Playbook search | search_knowledge_base({ query: "<industry> <persona>", entityTypes: ["playbook"] }) | When you need the best-fit playbook by concept |
| Proof points | list_entities({ entityType: "proof_point" }) | Fetch all proof points with full data — metrics, quotes, logos |
| References | list_entities({ entityType: "reference" }) | Customer references with full details |
| Competitive context | search_knowledge_base({ query: "<signals>", entityTypes: ["competitor"] }) | When competitor is mentioned or likely in the deal |
| Recent intel | list_findings({ query: "<company or person>", startDate: "<90 days ago>" }) | Conversation-based insights from past interactions |
| Deal history | list_events({ filters: { accounts: ["<account_oId>"] } }) | Timeline of deal events |
| Synthesized prep | generate_call_prep({ companyDomain }) | Quick comprehensive brief to use as a starting point |
Start with company enrichment and contact discovery:
| What you need | Tool | When to use |
|---|---|---|
| Company profile | enrich_company({ companyDomain }) | Always — gives industry, size, tech stack, funding, signals |
| ICP fit scoring | qualify_company({ companyDomain }) | Always — segment match, fit score, fit reasons |
| Key contacts | find_person({ searchMode: "people", companyDomain, fuzzyTitles }) | Find stakeholders to populate the Stakeholder Map |
| Enrich contacts | enrich_person({ person: { ... } }) | Deep dive on each key contact found |
| All playbooks | list_all_entities({ entityType: "playbook" }) | Quick scan to find the right strategic approach |
| Playbook details | get_playbook({ oId, includeValueProps: true }) | Full content + value props for the matching playbook |
| Value props | list_value_props({ playbookOId }) | Fetch value props for the recommended playbook |
| All competitors | list_all_entities({ entityType: "competitor" }) | Quick scan of competitive landscape |
| Competitor details | get_entity({ oId }) | Deep dive on a specific relevant competitor |
| Proof points | list_entities({ entityType: "proof_point" }) | Full proof points for the evidence section |
| References | list_entities({ entityType: "reference" }) | Customer references for social proof |
| Topic search | search_knowledge_base({ query: "<industry> <use case>", entityTypes: ["proof_point", "reference"] }) | Find proof points relevant to their specific situation |
| Recent intel | list_findings({ query: "<company>", startDate: "<90 days ago>" }) | Conversation signals from calls and meetings |
| Deal events | list_events({ filters: { accounts: ["<account_oId>"] } }) | Full deal history and timeline |
| Event details | get_event_detail({ eventOId }) | Deep dive on specific past interactions |
| Uploaded resources | search_resources({ query: "<company or industry>" }) | Relevant uploaded docs and assets |
Output of this step: Present a content outline to the user for approval before generating:
BATTLE PLAN OUTLINE: [Company/Person] — [Meeting Type]
========================================================
Target: [Company name / Person name at Company]
Meeting Type: [Discovery / Demo / Follow-up / Executive / QBR / General]
Duration: [30 / 45 / 60 / 90] minutes
Attendees: [Names and roles, or "General stakeholder map"]
Style: [Will be selected in Step 3]
---
SECTIONS TO INCLUDE
-------------------
1. Header — Meeting details, date, duration, attendees
2. TL;DR — 2-3 sentence opportunity summary
3. Stakeholder Map — Buying roles: budget owner, champion, evaluator, gatekeeper
4. Their Pain — By stakeholder/theme, from context + enrichment
5. What They Need to Believe — Belief stack with proof status
6. Positioned Sales Pitch — 5-step scripted talk track
7. Discovery Questions — Segmented by stakeholder, meeting-type-aware
8. Landmines & Watch-Outs — Risk/mitigation pairs, competitive traps
9. Coach's Corner — Strategic + positioning coach perspectives
10. Meeting Game Plan — Timeline phased to [duration] minutes
11. Deal Intelligence — Budget, champion, decision maker, compelling event
12. The Line — One memorable sentence
Octave Sources Used:
- Company enrichment: [Company] — [key insights]
- Person enrichment: [Person] — [persona match]
- Playbook: [Playbook name] — [strategic angle]
- Proof points: [N] references pulled
- Findings: [N] recent signals (or "none found — skipped")
- Competitive: [If applicable]
- User context: [Transcript / notes / none]
---
Does this look good? I can:
1. Proceed to style selection and generation
2. Add or remove sections
3. Go deeper on any area
4. Change the meeting type or emphasis
Wait for user approval before proceeding.
The battle plan uses the same CSS variable / style preset system as /octave:deck. Full preset definitions are in the deck skill's style-presets.md.
Battle plans default to readability-optimized presets. If --style was not provided, ask:
Pick a style for your battle plan:
1. midnight-pro — Dark navy, white text, blue accents (default)
2. paper-minimal — Off-white, black type, editorial simplicity
3. executive-dark — Charcoal + gold, premium boardroom aesthetic
4. soft-light — Warm white + sage green, calm and approachable
5. swiss-modern — White + red accent, Bauhaus minimal
6. Use my brand — Extract from website or provide colors
7. Match my deck — Use the same style as an existing /octave:deck
Your choice (or press Enter for default):
| Meeting Type | Recommended Default |
|---|---|
| Discovery | midnight-pro |
| Demo | midnight-pro |
| Follow-up | midnight-pro |
| Executive | executive-dark |
| QBR | executive-dark |
| General | midnight-pro |
If the user selects "Use my brand," follow the brand discovery flow from the deck skill (website extraction via browser-use or WebFetch, manual fallback). If they select "Match my deck," ask for the deck file path and extract its CSS variables.
Build a single self-contained HTML file. The battle plan is a scrollable reference document — not a slide deck. Natural page scroll, sticky sidebar navigation, collapsible sections, and a print-friendly layout.
.octave-meeting-prep/
└── <kebab-case-name>-<YYYY-MM-DD>/
└── <name>.html
Example: /octave:meeting-prep acme.com --type discovery -> .octave-meeting-prep/acme-discovery-2026-02-27/acme-discovery.html
The .octave-meeting-prep/ directory should be in .gitignore.
Not all sections are equally weighted in every meeting type. The type determines emphasis:
| Meeting Type | Emphasized Sections | De-emphasized / Condensed |
|---|---|---|
| Discovery | Their Pain, What They Need to Believe, Discovery Questions, Coach's Corner | Positioned Sales Pitch (lighter), Deal Intelligence |
| Demo | Positioned Sales Pitch, Stakeholder Map, Landmines & Watch-Outs | Discovery Questions (lighter), Deal Intelligence |
| Follow-up | Their Pain (updated), Deal Intelligence, Meeting Game Plan, Landmines | Stakeholder Map (condensed) |
| Executive | TL;DR, Positioned Sales Pitch (concise), Coach's Corner, The Line | Discovery Questions (fewer, strategic), Landmines (condensed) |
| QBR | Deal Intelligence, Coach's Corner, Meeting Game Plan | What They Need to Believe (condensed), Discovery Questions (expansion-focused) |
| General | All sections at equal weight | None |
1. Header Meeting title, generation date, meeting type badge (pill label like "Discovery Battle Plan" or "Executive Prep"), duration badge, attendee list with roles.
2. TL;DR 2-3 sentence opportunity summary. What's the situation, what's at stake, what's the play. Scannable in 10 seconds.
3. Stakeholder Map Cards for each attendee or known contact, tagged with buying role:
Each card: name, title, LinkedIn URL (if known), inferred priorities, communication style notes, what they care about.
4. Their Pain Pain points organized by stakeholder or by theme, drawn from:
Each pain point: the pain (their words when possible), the business impact, your response.
5. What They Need to Believe
Apply the belief stacking framework from strategic-coach.md:
Visual: color-coded status (green = Proven, yellow = Mostly Proven, red = Needs Proof).
6. Positioned Sales Pitch
Apply the 5-step positioned sales pitch from positioning-coach.md, scripted for this specific meeting:
Each step includes a scripted talk track (actual words to say) plus a coaching note on delivery. Apply the feature→value→emotion ladder from the positioning framework for every product mention.
7. Discovery Questions Segmented by stakeholder (if attendees are known) or by category. Meeting-type-aware:
strategic-coach.md)8-12 questions max. Each with a brief coaching note on what the answer reveals.
8. Landmines & Watch-Outs Risk/mitigation pairs:
Visual: two-column layout — Risk | Mitigation.
9. Coach's Corner Two perspectives synthesized from the coaching frameworks:
Strategic Coach (from strategic-coach.md):
Positioning Coach (from positioning-coach.md):
10. Meeting Game Plan Phase-by-phase timeline matched to the meeting duration. Time allocations are proportional:
30-minute meeting:
| Phase | Time | Focus |
|---|---|---|
| Open & Rapport | 0-3 min | Set the frame, confirm agenda |
| Discovery / Pitch | 3-18 min | Core content (meeting-type-dependent) |
| Proof & Stories | 18-23 min | Evidence that lands |
| Next Steps | 23-28 min | Clear commitments |
| Buffer | 28-30 min | Questions, soft close |
45-minute meeting:
| Phase | Time | Focus |
|---|---|---|
| Open & Rapport | 0-5 min | Set the frame, confirm agenda |
| Discovery / Pitch | 5-25 min | Core content |
| Proof & Stories | 25-33 min | Evidence that lands |
| Discussion | 33-40 min | Questions, objection handling |
| Next Steps | 40-45 min | Clear commitments |
60-minute meeting:
| Phase | Time | Focus |
|---|---|---|
| Open & Rapport | 0-5 min | Set the frame, confirm agenda |
| Context Setting | 5-12 min | Status quo, their world |
| Discovery / Pitch | 12-35 min | Core content |
| Proof & Stories | 35-45 min | Evidence that lands |
| Discussion | 45-53 min | Questions, objection handling |
| Next Steps | 53-58 min | Clear commitments |
| Buffer | 58-60 min | Soft close |
90-minute meeting:
| Phase | Time | Focus |
|---|---|---|
| Open & Rapport | 0-7 min | Set the frame, confirm agenda |
| Context Setting | 7-18 min | Status quo, mutual discovery |
| Discovery / Pitch | 18-50 min | Core content (deeper, more interactive) |
| Proof & Stories | 50-62 min | Evidence + customer stories |
| Deep Discussion | 62-75 min | Objections, technical deep-dives |
| Action Planning | 75-85 min | Concrete next steps, timeline |
| Close | 85-90 min | Summary, commitments |
Each phase includes: what to say, what to listen for, and a transition line to the next phase.
11. Deal Intelligence Key deal context at a glance:
If no deal data exists (new prospect), present what's known and flag what to uncover in this meeting.
12. The Line One memorable sentence that captures the strategic essence of this meeting. This is the thing you'd write on a sticky note and put on your monitor before the call. It should distill the entire battle plan into a single actionable insight.
Examples:
See html-scaffold.md for the full HTML + CSS scaffold of the battle plan document.
Battle plans are reference documents — they should be thorough but scannable:
| Section | Content Limit |
|---|---|
| TL;DR | 2-3 sentences max |
| Stakeholder Map | 4-6 stakeholder cards max |
| Their Pain | 4-6 pain points max |
| What They Need to Believe | 5-6 beliefs max |
| Positioned Sales Pitch | 5 steps, each with 2-3 sentence talk track |
| Discovery Questions | 8-12 questions max |
| Landmines & Watch-Outs | 4-6 risk/mitigation pairs |
| Coach's Corner | 2 perspectives, 3-4 bullets each |
| Meeting Game Plan | 5-7 phases matching duration |
| Deal Intelligence | 6-8 data fields |
| The Line | 1 sentence |
If a section would exceed its limit, prioritize by relevance to the meeting type and trim the rest.
After generating the HTML file:
BATTLE PLAN READY
==================
Folder: .octave-meeting-prep/<name>-<date>/
File: .octave-meeting-prep/<name>-<date>/<name>.html
Style: [Preset name or "Custom Brand"]
Duration: [30 / 45 / 60 / 90] min game plan
Sections: [List of included sections]
Navigation:
- Scroll naturally to read through sections
- Click nav dots on the right edge to jump to sections
- Click section headers to collapse/expand
- Print-friendly: Cmd+P / Ctrl+P for clean PDF output
---
Want me to:
1. Adjust or expand a section
2. Add/remove stakeholders
3. Go deeper on any topic (beliefs, talk tracks, questions)
4. Change the style
5. Regenerate for a different meeting duration
6. Export as PDF (print dialog)
7. Generate a brief for this account (/octave:brief)
8. Build a presentation from this (/octave:deck)
9. Done
enrich_company — Full company intelligence profileenrich_person — Full person intelligence reportfind_person — Find contacts at a company by title/rolefind_company — Find companies matching criteriaqualify_company — ICP fit scoring for a companyqualify_person — ICP fit scoring for a personlist_all_entities — Quick scan of all entities of a type (minimal fields, no pagination)list_entities — Fetch entities with full data and pagination (proof points, references, etc.)get_entity — Deep dive on one specific entityget_playbook — Retrieve a playbook with full content and value propslist_value_props — Value propositions for a specific playbooksearch_knowledge_base — Semantic search across library entities and resourceslist_resources — Browse uploaded docs, URLs, and Google Drive filessearch_resources — Semantic search across uploaded resourceslist_findings — Recent conversation findings and insightslist_events — Deal events (stage changes, meetings, outcomes)get_event_detail — Full details for a specific eventgenerate_call_prep — Synthesized prep brief (useful as a starting point)generate_content — Generate positioning or messaging contentNo user context provided:
No prior context provided. I'll build the battle plan from Octave intelligence and coaching frameworks.
The prep will be strong on strategy and positioning. After the meeting, run this again with your notes for a grounded follow-up prep.
Coaching reference files not found:
Coaching reference files not found in
references/. Using general sales coaching best practices.To customize coaching frameworks, add
strategic-coach.mdandpositioning-coach.mdto theskills/meeting-prep/references/directory.
Octave Connection Failed:
Could not connect to your Octave workspace.
I'll build the battle plan from your provided context and coaching frameworks. The result will focus on talk tracks, discovery questions, and game plan without enrichment data.
To reconnect: check your MCP configuration or run
/octave:workspace status
Company Not Found:
I couldn't find detailed intelligence for [domain].
Options:
- Check the domain spelling and try again
- Try a different domain or company name
- Provide company details manually and I'll build the battle plan
No Findings Data:
No conversation signals found for [company/person] in the last 90 days.
Skipping the Prior Intelligence section. The battle plan will focus on enrichment data, coaching frameworks, and your provided context.
Attendees Not Specified:
No specific attendees provided. I'll build a general stakeholder map from Octave contacts and apply coaching frameworks broadly.
Tip: Adding attendee names and roles before the meeting makes the belief stack and talk tracks much sharper.
No Matching Playbook:
No playbook matches this audience profile directly.
I'll use general value props and positioning from the knowledge base, combined with coaching frameworks. Consider creating a playbook for this segment:
/octave:library create playbook
/octave:brief — Internal account dossier (reference doc without coaching frameworks)/octave:research — Deep-dive research on a company or person/octave:deck — Full slide presentation for the audience/octave:one-pager — Customer-facing leave-behind document/octave:battlecard — Competitive intelligence and displacement strategy/octave:pipeline — Deal-level coaching and pipeline strategy/octave:abm — Account-based planning with stakeholder mapping