plugins/octave/skills/deal-coach/SKILL.md
Methodology practice and coaching assets built around Resonate → Elevate → Compel — role-play, coaching microsites, coaching decks, and quizzes grounded in your Octave library. Use when user says 'deal coach role play', 'coaching quiz', 'coaching deck', 'coaching microsite', 'practice the methodology', 'sales methodology training', or asks to practice or be coached on a deal. Do NOT use for live-deal strategy and next steps — use /octave:pipeline instead.
npx skillsauth add octavehq/lfgtm deal-coachInstall 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.
An interactive coaching skill built around the Resonate → Elevate → Compel sales methodology. Choose your output mode — role play, coaching microsite, coaching deck, or interactive quiz — and get coaching grounded in deal context AND your actual GTM messaging.
Three Stages: | Stage | Focus | |-------|-------| | Resonate | Understand and resonate with the buyer | | Elevate | Confirm the fit and elevate the opportunity | | Compel | Deliver the value and compel the buyer to action |
Three Coaching Outputs per Stage: | Field | Type | Purpose | |-------|------|---------| | Buyer Mindset | String | Where the buyer's head is — psychology, fears, motivations | | Value Propositions | Array | Which value props to deploy and why they fit this stage | | Talking Points | Array | Specific things to say, grounded in deal context |
This skill reads five coaching reference files at runtime:
references/frameworks.md — Resonate / Elevate / Compel: Buyer Mindset + Value Props + Talking Pointsreferences/coaching-agents.md — 3 coaching agent personas + 2 cross-stage + scoring rubricsreferences/stage-mapping.md — Buyer's Journey → coaching stage mapping + inference rulesreferences/html-templates.md — HTML section/slide templates per output modereferences/messaging-narratives.md — How coaching grounds in GTM contextIf reference files are not found, fall back to general coaching methodology and note the limitation.
How this differs from /octave:pipeline:
/octave:pipeline gives live-deal strategy — diagnosis and next steps to move a specific deal forward/octave:deal-coach produces practice and coaching materials organized around the three coaching stagesHow this differs from /octave:train:
/octave:train is generic sales training (objection handling, personas, product knowledge)/octave:deal-coach is methodology-specific — every output is structured around Resonate/Elevate/Compel, scored against coaching rubrics, and coached by stage-specific agentsHow this differs from /octave:meeting-prep:
/octave:meeting-prep produces a strategic battle plan for an upcoming meeting/octave:deal-coach produces training and coaching materials organized around the three coaching stagesBefore generating HTML output, decide whose brand this coaching asset should match (usually the target company; sometimes your own company), then follow brand-kit-usage.md: check for a cached kit, offer to use it, offer to capture one if missing, and fall back to a style preset if declined. The brand kit is the strongest styling signal — prefer it over generic --style presets.
After generating, run the review pass by default — don't wait to be asked. In interactive mode, tell the user at intake that you'll review before finishing (recommended) and that they can opt out with --skip-review or "skip review". Follow review-pass.md for the preflight and visual pass. When generating, follow the output rules in presentation-principles.md — label every value, no tool names in the output, confirmed vs hypothesized, lean and deal-specific.
/octave:deal-coach
/octave:deal-coach [company domain or name]
/octave:deal-coach --mode [roleplay|microsite|deck|quiz]
/octave:deal-coach --stage [resonate|elevate|compel]
/octave:deal-coach [domain] --mode roleplay --stage elevate
/octave:deal-coach
/octave:deal-coach acme.com
/octave:deal-coach --mode roleplay
/octave:deal-coach acme.com --mode microsite --stage compel
/octave:deal-coach --mode quiz --stage resonate
/octave:deal-coach acme.com --mode deck --stage elevate
Follow these steps precisely. Do not skip or reorder them.
If the user specified --mode, use that. Otherwise, ask:
AskUserQuestion({
questions: [{
question: "What kind of coaching output do you want?",
header: "Output Mode",
options: [
{
label: "Role Play",
description: "Practice a coaching-backed conversation scored against Buyer Mindset, Value Props, and Talking Points. 8-12 exchanges, then a scorecard."
},
{
label: "Coaching Microsite",
description: "Self-contained HTML coaching page organized around Buyer Mindset / Value Propositions / Talking Points — with deal context, priority actions, and stage-grounded messaging."
},
{
label: "Coaching Deck",
description: "Slide presentation walking through the coaching framework for a specific deal, with stage-specific content and talk tracks."
},
{
label: "Interactive Quiz",
description: "Test coaching methodology knowledge with deal-grounded scenarios. Scoring breaks down by Resonate/Elevate/Compel."
}
],
multiSelect: false
}]
})
Store the selected mode for routing in Step 5.
Determine if coaching should be grounded in a specific deal or run in generic/practice mode.
If the user already provided a domain, name, or email, skip to 2b.
AskUserQuestion({
questions: [{
question: "Should this be grounded in a specific deal, or do you want generic practice?",
header: "Deal Context",
options: [
{
label: "Specific Deal",
description: "Ground coaching in a real account — uses CRM data, findings, events, and the matched Motion ICP narrative to make coaching deal-specific."
},
{
label: "Generic Practice",
description: "Practice the methodology with library-level data only (personas, Motion ICP narrative, proof points). No specific account context."
}
],
multiSelect: false
}]
})
If Generic Practice: Skip to Step 2c.
If Specific Deal: Ask for the company domain or contact email (e.g., acme.com or [email protected]).
Run these MCP tool calls to build a complete picture. Run independent calls in parallel:
Company & CRM Context (parallel):
enrich_company({ companyDomain: "<domain>" })
find_crm_records({ companyDomain: "<domain>" })
find_crm_activities({ companyDomain: "<domain>" })
generate_crm_context({ companyDomain: "<domain>" })
Library Context (parallel):
search_knowledge_base({ query: "<company name> OR <industry>" })
list_findings({
query: "objections pain points competitor mentions next steps",
eventFilters: { companyDomains: ["<domain>"] }
})
list_events({
filters: { companyDomains: ["<domain>"] }
})
list_entities({ entityType: "persona" })
list_entities({ entityType: "competitor" })
list_entities({ entityType: "proof_point" })
Motion ICP (after enrichment / persona / segment inference):
list_motions()
list_motion_icps({ motionOId: "<motion_oId>" })
find_motion_icp({ motionIcpOId: "<matched_motion_icp_oId>", includeLearnings: true })
If a Custom Motion Playbook (Thematic / Milestone / Account / Competitive) applies, also fetch its narrative:
list_motion_playbooks({ motionOId: "<motion_oId>" })
get_motion_playbook({ motionPlaybookOId: "<custom_motion_playbook_oId>" })
If any tool call fails, note the gap and continue. Coach with available data and flag missing context.
For generic mode, gather library-level data only:
list_entities({ entityType: "persona" })
list_entities({ entityType: "competitor" })
list_entities({ entityType: "proof_point" })
Then load the Default Motion Playbook narrative for the most relevant Motion:
list_motions()
list_motion_icps({ motionOId: "<motion_oId>" })
find_motion_icp({ motionIcpOId: "<representative_motion_icp_oId>", includeLearnings: true })
Read the references needed for the inferred or selected stage:
Read: references/frameworks.md
Read: references/stage-mapping.md
Read: references/coaching-agents.md
Read: references/messaging-narratives.md
If generating HTML output (microsite or deck), also read:
Read: references/html-templates.md
If the user specified --stage, use that and skip to Step 3b.
Use the weighted inference algorithm from references/stage-mapping.md:
| Signal | Weight | Source |
|--------|--------|--------|
| CRM deal stage | 40% | find_crm_records → map to Resonate/Elevate/Compel |
| Conversation findings | 30% | list_findings — pain points (→Resonate), competitor mentions (→Elevate), ROI/budget (→Compel) |
| Deal activity patterns | 20% | list_events — discovery call (→Resonate), demo (→Elevate), proposal (→Compel) |
| Time in stage | 10% | Days in current stage vs. expectation |
For generic practice mode: Skip inference. Let the user choose a stage:
AskUserQuestion({
questions: [{
question: "Which coaching stage do you want to practice?",
header: "Stage",
options: [
{ label: "Resonate", description: "Understand and resonate with the buyer — discovery principles, building trust through understanding" },
{ label: "Elevate", description: "Confirm the fit and elevate the opportunity — disrupt status quo, differentiate on value, build credibility" },
{ label: "Compel", description: "Deliver the value and compel the buyer to action — business case, Why Now, champion enablement" }
],
multiSelect: false
}]
})
Confidence calibration: CRM absence is a data hygiene issue, not a deal health signal. If CRM data is missing but activity signals are strong, redistribute the CRM weight across other signals.
Present the inference:
STAGE INFERENCE
===============
Stage: [Resonate / Elevate / Compel]
Confidence: [High / Medium / Low]
Buyer's Journey Phase: [Phase Name]
EVIDENCE
--------
CRM Stage (40%): "[Stage Name]" → maps to [Stage] [or "No CRM record — data gap, not deal gap"]
Findings (30%): [Key signals]
Activities (20%): [Key activities]
Time (10%): [Assessment]
Then confirm with the user: proceed with the inferred stage, override and pick a different one, or see all three stages with descriptions before choosing (same list as generic mode above).
If time-in-stage signals indicate a stalled deal (>2x expected time), flag it — but don't re-implement deal rescue here:
STALL DETECTION
===============
This deal appears stalled at [Journey Phase].
Time in stage: [X] days (expected: [Y] days)
Root Cause Hypothesis: [Stage] gap
- [Explanation of why this stage gap is likely the root cause]
- [Specific evidence from findings/activities]
For a re-engagement strategy and next steps on this deal, run:
/octave:pipeline stalled [domain]
For coaching, I'll focus on [Root Cause Stage], not the nominal CRM stage.
Route coaching to the root cause stage's coaching agent, not the nominal stage. Deal-rescue strategy itself belongs to /octave:pipeline.
Based on the confirmed stage, activate the appropriate coaching agent from references/coaching-agents.md:
| Stage | Coaching Agent | Focus | |-------|---------------|-------| | Resonate | Resonance Coach | Discovery principles (wide, deep, high), trust building | | Elevate | Elevation Coach | Case for Change, Value Framing, differentiated value, proof points | | Compel | Compel Coach | Business case building, Why Now Case, champion enablement |
Cross-stage agents (available as supplements):
Load the agent's persona, coaching criteria, scoring rubric, and grounding instructions from the reference file. Use the grounding map from references/messaging-narratives.md to connect the agent's outputs to the seller's Octave library data.
Branch based on the output mode selected in Step 1. Each mode has its own reference file with the full flow — read it and follow it:
| Mode | Reference | What it covers | |------|-----------|----------------| | Role Play | mode-roleplay.md | Scenario setup, stage-specific buyer psychology, running the conversation, coaching scorecard (RP-1 → RP-4) | | Coaching Microsite | mode-microsite.md | Style selection, content outline, HTML generation with grounding rules and density limits (MS-1 → MS-3) | | Coaching Deck | mode-deck.md | Style selection, stage-specific slide outlines, HTML deck generation on the deck skill's architecture (DK-1 → DK-3) | | Interactive Quiz | mode-quiz.md | Quiz type and length, question construction, running the quiz, results (QZ-1 → QZ-4) |
Role Play and Quiz run on the shared engine in roleplay-mechanics.md — the mode files layer the Resonate/Elevate/Compel specifics on top.
After delivering any output, offer iterations:
For Role Play and Quiz: Next actions are included in RP-4 and QZ-4 in the mode references.
For Microsite and Deck: After opening the HTML file, present:
Coaching [microsite/deck] generated and opened in your browser.
File: [file path]
Company: [Company Name or "Generic Practice"]
Stage: [Resonate / Elevate / Compel] — [Stage subLabel]
Coaching Agent: [Agent Name]
Style: [Preset Name]
Want to:
1. Practice this stage with a role play
2. Add MEDDPICC deal gap analysis [if not already included]
3. Move to the next stage ([Next Stage]: [subLabel])
4. Try a different output mode for this stage
5. Regenerate with a different style
6. Done
If the user picks option 3 (next stage), return to Step 3b with the next stage pre-selected and flow through Steps 4-5 again.
All HTML outputs go to .octave-deal-coach/ in the project root:
.octave-deal-coach/
[company-kebab]-[stage]-[YYYY-MM-DD]/
[company-kebab]-[stage].html # Microsite
[company-kebab]-deck-[stage]-[YYYY-MM-DD]/
[company-kebab]-deck-[stage].html # Deck
This directory should be in .gitignore.
| Tool | Purpose |
|------|---------|
| enrich_company | Company profile, industry, tech stack, strategic context |
| find_crm_records | Deal stage, amount, close date, pipeline position |
| find_crm_activities | Recent interactions — calls, emails, meetings |
| generate_crm_context | AI-synthesized CRM narrative |
| Tool | Purpose |
|------|---------|
| list_motions | List all Motions in the workspace |
| list_motion_playbooks | List Motion Playbooks (Default + Custom) under a Motion |
| get_motion_playbook | Full details for a Motion Playbook |
| list_motion_icps | List Motion ICP cells (persona × segment intersections) for a Motion |
| find_motion_icp | Full Motion ICP cell narrative (Target ICP overview, Operating landscape, Strategic narrative, Pains and consequences, Benefits and impacts, Methodology, References) plus Learning Loop learnings |
| get_entity | Individual entity details (persona, competitor, proof point) |
| Tool | Purpose |
|------|---------|
| search_knowledge_base | Find matching guides and research |
| search_resources | Find relevant resources (docs, presentations) |
| list_entities | List personas, competitors, proof points, references |
| list_findings | Objections, pain points, competitor mentions from conversations |
| list_events | Deal history, stage changes, activity timeline |
| Tool | Purpose |
|------|---------|
| generate_content | Generate supporting content if needed |
No CRM data found: "I couldn't find CRM records for [domain]. I'll proceed with library-level data only. Stage inference will rely on findings and events. You can also manually select a stage."
No Motion ICP found: "No matching Motion ICP cell found. I'll use general coaching methodology without Motion-specific grounding. Talk tracks will reference the framework but won't include your specific Strategic narrative, Benefits and impacts, or Methodology content. Consider creating a Motion for this offering, or layering a Custom Motion Playbook (Thematic / Milestone / Account / Competitive) onto an existing Motion."
No findings/events: "No conversation findings or events found for [domain]. Stage inference will rely primarily on CRM stage. For more accurate coaching, ensure conversation data is synced to Octave."
Reference file not found: "Could not load [reference file]. Falling back to general coaching methodology. For full coaching, ensure reference files are in
skills/deal-coach/references/."
Stage inference low confidence: "I'm not confident about the coaching stage — multiple stages scored similarly. I'd recommend selecting manually. Here are all options: [present all three stages]."
MCP connection failed: "Could not connect to Octave. Check your connection with
/octave:workspace. This skill requires Octave MCP tools for deal context and library data."
HTML write failed: "Could not write the HTML file. Check that
.octave-deal-coach/is writable. Try:mkdir -p .octave-deal-coach"
/octave:pipeline — Live-deal strategy: stalled-deal rescue, multi-threading, competitive threats, closing/octave:train — Generic sales training (role play, quiz, guided learning) without the coaching methodology/octave:meeting-prep — Strategic meeting battle plan as HTML/octave:deck — General-purpose slide deck builder/octave:enablement — Sales enablement materials (cheat sheets, objection guides)/octave:battlecard — Competitive intelligence and battlecards/octave:research — Account and person researchdevelopment
Turn one or more Octave GTM Explorer / Beats reports into a branded, shareable digest with selectable insight scope, evidence depth, and output format. Use when the user asks for a report digest, weekly or monthly insight recap, executive intelligence brief, magazine-style insight story, report deck, or a recurring published summary of Octave insights.
content-media
Product and feature launch planning with full content kit generation across channels and audiences. Use when user says "launch plan", "product launch", "feature announcement", "GTM plan for launch", "launch content kit", or mentions launching something new.
development
A dense internal deal room a rep hands to a champion so they can run the buying-committee sell without you in the room. Quantified business case, stakeholder map with per-seat ammo, objection handling, and a path to yes, rendered as self-contained HTML. Use when user says "champion deal room", "arm my champion", "help my champion sell internally", "internal business case for [deal]", or wants a champion enablement doc. For a customer-facing top-of-funnel page use /octave:microsite; for the formal closing proposal use /octave:proposal.
data-ai
Analyze email threads, call transcripts, and conversations for resonance, adherence to messaging, and competitive differentiation. Use when user says "analyze this call", "how did the email land", "score this thread", "conversation analysis", or pastes conversation content to evaluate.