From octave
Provides sales training via interactive role-play buyer simulations, GTM library quizzes, and guided learning. Use for practicing calls, objections, or knowledge tests.
npx claudepluginhub octavehq/lfgtm --plugin octaveThis skill uses the workspace's default tool permissions.
Practice and learn your GTM playbook through interactive role-play simulations and knowledge quizzes — all grounded in your real library data. Role-play against buyer personas with realistic objections, or quiz yourself on value props, competitive positioning, and discovery techniques.
Generates sales enablement materials including cheat sheets, objection guides, discovery question banks, competitive sheets, and onboarding kits from library data and conversation evidence.
Generates customized B2B sales playbooks including discovery frameworks, objection handling, competitive battle cards, demo scripts, and closing techniques. Useful for building sales enablement materials.
Generates B2B sales collateral: pitch decks, one-pagers, objection handlers, demo scripts, playbooks tailored to buyer personas, sales motions, and deal stages.
Share bugs, ideas, or general feedback.
Practice and learn your GTM playbook through interactive role-play simulations and knowledge quizzes — all grounded in your real library data. Role-play against buyer personas with realistic objections, or quiz yourself on value props, competitive positioning, and discovery techniques.
/octave:train [mode] [--persona <name>] [--competitor <name>] [--difficulty easy|medium|hard]
/octave:train # Interactive - pick a mode
/octave:train roleplay # Simulate a buyer conversation
/octave:train roleplay --persona "CTO" # Role-play with a specific persona
/octave:train roleplay --scenario discovery # Practice discovery calls
/octave:train quiz # Test your GTM knowledge
/octave:train quiz --topic objections # Quiz on objection handling
/octave:train quiz --competitor "Acme" # Competitive knowledge check
When the user runs /octave:train:
If no mode specified, ask:
AskUserQuestion({
questions: [{
question: "What do you want to practice?",
header: "Train mode",
options: [
{ label: "Role-Play", description: "Simulate a sales conversation — I'll play the buyer and give you feedback" },
{ label: "Quiz", description: "Test your knowledge of personas, objections, value props, and competitive positioning" },
{ label: "Guided Learning", description: "Walk me through a topic from your playbook — teach me like I'm a new hire" }
],
multiSelect: false
}]
})
Simulate realistic buyer conversations using persona data from the library.
Ask for scenario parameters (use AskUserQuestion for structured choices):
AskUserQuestion({
questions: [
{
question: "What scenario do you want to practice?",
header: "Scenario",
options: [
{ label: "Discovery call", description: "First conversation — qualify the opportunity and uncover pain" },
{ label: "Objection handling", description: "Practice responding to tough objections mid-deal" },
{ label: "Demo pitch", description: "Present your product's value to a skeptical buyer" },
{ label: "Competitive displacement", description: "Sell against a competitor the buyer currently uses" }
],
multiSelect: false
},
{
question: "How tough should I be?",
header: "Difficulty",
options: [
{ label: "Friendly", description: "Interested buyer, open to learning — good for building confidence" },
{ label: "Skeptical (Recommended)", description: "Realistic buyer who pushes back and needs convincing" },
{ label: "Hostile", description: "Tough buyer — time-pressed, has objections, hard to impress" }
],
multiSelect: false
}
]
})
If no persona specified, present available personas:
# Get personas from library
list_all_entities({ entityType: "persona" })
Ask:
AskUserQuestion({
questions: [{
question: "Which buyer persona should I play?",
header: "Persona",
options: [
{ label: "[Persona 1 name]", description: "[Title] — [key concern]" },
{ label: "[Persona 2 name]", description: "[Title] — [key concern]" },
{ label: "[Persona 3 name]", description: "[Title] — [key concern]" }
],
multiSelect: false
}]
})
# Get full persona details
get_entity({ oId: "<persona_oId>" })
# Get matching playbook with value props
search_knowledge_base({ query: "<persona name> <scenario>", entityTypes: ["playbook"] })
get_playbook({ oId: "<playbook_oId>", includeValueProps: true })
# Get real objections from conversations (to make role-play realistic)
list_findings({
query: "objections pushback concerns",
startDate: "<180 days ago>",
eventFilters: {
personas: ["<persona_oId>"]
}
})
# Get product details
list_all_entities({ entityType: "product" })
get_entity({ oId: "<product_oId>" })
# Get competitor details (for competitive scenarios)
get_entity({ oId: "<competitor_oId>" }) // if competitive scenario
# Get proof points (to evaluate if rep uses them)
search_knowledge_base({ query: "<persona> results metrics", entityTypes: ["proof_point", "reference"] })
Present the scenario context, then begin:
See roleplay-scene-template.md for the role-play scene template.
How to play the buyer:
Use the loaded persona data to respond realistically:
End the conversation after 8-12 exchanges with a natural conclusion:
After the role-play ends, provide detailed feedback:
See roleplay-scorecard-template.md for the role-play scorecard template.
Test knowledge of the user's own GTM library.
AskUserQuestion({
questions: [{
question: "What do you want to be quizzed on?",
header: "Quiz topic",
options: [
{ label: "Personas", description: "Pain points, priorities, buying triggers, and how to sell to each persona" },
{ label: "Objection handling", description: "Common objections and how to respond — from your playbook and real conversations" },
{ label: "Competitive positioning", description: "Differentiators, trap questions, and counters for each competitor" },
{ label: "Full GTM review", description: "Mix of everything — personas, products, value props, objections, competitors" }
],
multiSelect: false
}]
})
Also ask for quiz format:
AskUserQuestion({
questions: [{
question: "What format?",
header: "Format",
options: [
{ label: "Rapid fire (Recommended)", description: "Quick question-answer, 10 questions, scored at the end" },
{ label: "Scenario-based", description: "Situational questions — 'A prospect says X, what do you do?'" },
{ label: "Deep dive", description: "Fewer questions but explain your reasoning — I'll coach you on each answer" }
],
multiSelect: false
}]
})
# Load based on topic
# For Personas:
list_all_entities({ entityType: "persona" })
get_entity({ oId: "<persona_oId>" }) // for each persona
# For Objections:
list_findings({
query: "objections pushback concerns pricing",
startDate: "<180 days ago>"
})
get_playbook({ oId: "<playbook_oId>", includeValueProps: true })
# For Competitive:
list_all_entities({ entityType: "competitor" })
get_entity({ oId: "<competitor_oId>" }) // for each competitor
# For Full GTM:
list_all_entities({ entityType: "persona" })
list_all_entities({ entityType: "product" })
list_all_entities({ entityType: "competitor" })
search_knowledge_base({ query: "value propositions proof points" })
list_all_entities({ entityType: "use_case" })
See quiz-formats.md for the rapid fire, scenario-based, and deep dive quiz format templates with question types per topic.
See quiz-results-template.md for the quiz results template.
Walk through a topic from the library like a training session.
AskUserQuestion({
questions: [{
question: "What do you want to learn about?",
header: "Topic",
options: [
{ label: "A persona", description: "Deep walkthrough of how to sell to a specific buyer type" },
{ label: "A competitor", description: "Learn competitive positioning, differentiators, and counters" },
{ label: "A playbook", description: "Walk through a playbook's strategy, value props, and objection handling" },
{ label: "Your product", description: "Master your product's capabilities, use cases, and proof points" }
],
multiSelect: false
}]
})
Fetch the relevant entity and present it as a structured training walkthrough:
# Load the entity
get_entity({ oId: "<entity_oId>" })
# Load related playbook
get_playbook({ oId: "<playbook_oId>", includeValueProps: true })
# Load real conversation examples
list_findings({
query: "<topic>",
startDate: "<180 days ago>"
})
# Load proof points
search_knowledge_base({ query: "<topic>", entityTypes: ["proof_point", "reference"] })
See guided-learning-template.md for the interactive guided learning lesson template.
list_all_entities - List personas, products, competitors, use casesget_entity - Full entity details (persona pain points, competitor weaknesses, etc.)get_playbook - Playbook with value props, discovery questions, objection handlinglist_value_props - Value propositions by personasearch_knowledge_base - Proof points, references, messaginglist_findings - Real objections, pain points, and signals from calls/emailslist_events - Deal outcomes (win/loss evidence for coaching)get_event_detail - Specific interaction details for training examplesgenerate_content - Generate scenario descriptions, coaching feedbackNo Personas in Library:
No personas found in your library.
Role-play and quizzes work best with persona data. Add personas first:
/octave:library create personaI can still run a general sales quiz using your product info.
No Conversation Data:
No conversation data available yet.
I'll use your library data for role-play and quizzes. As your team logs calls and emails, training will get richer with real-world objections and patterns.
No Competitors:
No competitors in your library.
Competitive quizzes and displacement role-plays need competitor data. Add competitors:
/octave:library create competitorI can still quiz you on personas, value props, and general objection handling.
Sparse Library:
Your library has limited data for a full training session.
Start with:
/octave:library create product- Add your product/octave:library create persona- Add buyer personas/octave:library create competitor- Add competitorsEven with just a product and one persona, I can run basic training.
/octave:enablement - Generate training materials (cheat sheets, objection guides, discovery banks)/octave:battlecard - Deep competitive intelligence for competitive training/octave:insights - Surface real field intelligence to inform training/octave:wins-losses - Win/loss patterns to learn from/octave:research - Research a real prospect before a live call/octave:generate - Generate real outreach after practicing