skills/brief/SKILL.md
Account dossier and call prep document rendered as a scannable HTML reference page for internal use. Use when user says "brief me on [company]", "account dossier", "call prep doc", "background on [person]", or asks for an internal reference document. Do NOT use for customer-facing documents — use /octave:one-pager or /octave:proposal instead.
npx skillsauth add octavehq/lfgtm briefInstall 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.
Build beautiful, self-contained HTML account briefs powered by your Octave GTM intelligence. Designed to sit on your second monitor during a call or to review before a meeting. Unlike plain-text research, briefs render as scannable, styled reference documents with sticky navigation, collapsible sections, and print-friendly layout — grounded in real enrichment data, Motion ICP narrative, proof points, and conversation intel.
This is an internal document for the sales team, not customer-facing collateral.
Key differentiators:
/octave:research — research outputs plain text; brief renders it as a styled, scannable HTML document/octave:one-pager — one-pager is customer-facing; brief is internal prep/octave:deck — deck is a slide presentation; brief is a scrollable reference documentBefore generating, decide whose brand this brief should match (usually the target company; sometimes your own company). Then:
<slug> and check for a cached brand kit at ~/.octave/brands/<slug>/manifest.json.tokens.css (:root + the embedded @font-face) and get-brand-components/assets/kit_base.css into the output <style>;brand-kit.md → Signature moves, and reuse the kit's real logo, images/, and icons.json;get-brand-components/scripts/render_kit.py (hero / split / logos / pricing / cta / footer blocks)./octave:get-brand-components <domain>, then proceed.The brand kit is the strongest styling signal — when one is available, prefer it over generic
--stylepresets. See theget-brand-componentsskill for the kit format, token contract, and renderer.
After generating the asset, offer an optional review (don't force it): "Want me to run a quick review pass over this — layout, brand, narrative, groundedness, and AI-slop?" If yes, follow get-brand-components/references/asset-review.md: render/screenshot the output, inspect it across the five dimensions (render the pixels and actually look — overflow and white-on-white only show in the render), report a short scorecard of specific located findings, then fix and re-verify. Skip silently if the user declines.
/octave:brief <target> [--for <occasion>] [--style <preset>]
/octave:brief acme.com # Full account dossier
/octave:brief [email protected] --for discovery # Discovery call prep
/octave:brief acme.com --for demo # Demo prep brief
/octave:brief acme.com --for qbr # QBR prep brief
/octave:brief [email protected] --for follow-up # Follow-up with prior call context
/octave:brief acme.com --for executive # Executive meeting prep
/octave:brief "meeting with VP Sales at Acme" # Context-based brief
/octave:brief acme.com --style paper-minimal # Specific style preset
| Occasion | Output Focus |
|----------|--------------|
| discovery | Company snapshot, ICP fit, discovery questions, Motion ICP narrative, qualification checklist |
| demo | Stakeholder cards, value props, proof points, competitive landmines, demo flow |
| follow-up | Recent signals from calls, deal timeline, open items, next steps |
| qbr | Deal timeline, recent signals, proof points, value delivered, renewal/expansion angles |
| executive | Concise company snapshot, key stakeholders, strategic value props, board-level talking points |
| deal-review | Full pipeline context, stage history, competitive landscape, risk assessment |
| general | Comprehensive account dossier with all sections (default) |
When the user runs /octave:brief:
Identify the target:
Detect or ask occasion:
If --for not specified, infer from context or ask:
What are you preparing for?
1. Discovery call — First conversation, qualifying the opportunity
2. Demo — Showing the product, proving value
3. Follow-up — Continuing a conversation, advancing the deal
4. QBR — Quarterly business review with existing customer
5. Executive meeting — High-level strategic conversation
6. Deal review — Internal review of opportunity status
7. General dossier — Comprehensive account reference
Your choice:
Each occasion changes which sections are emphasized and which are de-emphasized or omitted. See the section emphasis table in Step 4.
Based on the target and occasion, 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 brief. The best briefs layer multiple sources — company enrichment + person enrichment + Motion ICP narrative + proof points + conversation intel all combine to create a document grounded in real data. Don't stop at one tool when several would give you a stronger brief.
Not every tool applies to every brief. 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 occasion 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.
Follow-up briefs — ground them in what actually happened:
If this brief follows a previous interaction with the account (follow-up, QBR, deal review), pull findings and events to anchor the brief in real data rather than generic positioning:
list_findings({ query: "<company or contact>", startDate: "<relevant period>" }) — 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 sent — shows the journey so farget_event_detail({ eventOId }) — deep dive on specific events (e.g., the discovery call, the demo) to pull exact contextThis turns a generic "here's what we know" brief into "here's what happened and what to do about it" — much more useful walking into the next conversation.
Start 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 briefs — 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 |
| Find Motion | list_motions() | List all Motions to find the relevant offering + motion type |
| Persona × segment matrix | list_motion_icps({ motionOId }) | See the persona × segment cells available under a Motion |
| Motion ICP narrative | find_motion_icp({ motionIcpOId, includeLearnings: true }) | Pull the full Target ICP overview, Strategic narrative, Pains and consequences, Benefits and impacts, Methodology, References, and Learning Loop learnings for the target persona × segment |
| 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 Stakeholders section |
| Enrich contacts | enrich_person({ person: { ... } }) | Deep dive on each key contact found |
| All Motions | list_motions() | Quick scan to find the right Motion (offering + motion type) |
| Motion ICP matrix | list_motion_icps({ motionOId }) | See the persona × segment matrix under a Motion |
| Motion ICP narrative | find_motion_icp({ motionIcpOId, includeLearnings: true }) | Full Target ICP overview, Strategic narrative, Pains and consequences, Benefits and impacts, Methodology, References, plus Learning Loop learnings for the target cell |
| Custom Motion Playbook details | get_motion_playbook({ motionPlaybookOId }) | When a Custom Motion Playbook (Thematic / Milestone / Account / Competitive) layers on the relevant Motion |
| 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:
BRIEF OUTLINE: [Company/Person] — [Occasion]
=============================================
Target: [Company name / Person name at Company]
Occasion: [Discovery / Demo / Follow-up / QBR / Executive / General]
Style: [Will be selected in Step 3]
---
SECTIONS TO INCLUDE
-------------------
1. Header — "Account Brief: [Company]" + date + occasion badge
2. Company Snapshot — industry, size, HQ, funding, tech stack, signals
3. ICP Fit — fit score, matched segment, key fit reasons
4. Key Stakeholders — [N] contacts with persona matches
5. Recommended Playbook — [Playbook name], strategic angle
6. Talking Points — [occasion-specific: questions / demo flow / next steps]
7. Value Props — [N] value props tailored to this account
8. Competitive Landscape — [Competitor names if detected]
9. Proof Points — [N] relevant case studies and metrics
10. Recent Signals — [N] findings from conversations
11. Deal Timeline — [if existing deal]
12. Quick Reference — cheat sheet with key facts
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
• Competitive: [If applicable]
---
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 occasion / emphasis
Wait for user approval before proceeding.
The brief uses the same CSS variable / style preset system as /octave:deck. Full preset definitions are in the deck skill's style-presets.md.
Briefs default to readability-optimized presets. If --style was not provided, ask:
Pick a style for your brief:
1. midnight-pro — Dark navy, white text, blue accents (default for briefs)
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 midnight-pro):
| Occasion | Recommended Default |
|----------|-------------------|
| Discovery | midnight-pro |
| Demo | midnight-pro |
| Follow-up | paper-minimal |
| QBR | executive-dark |
| Executive | executive-dark |
| Deal review | paper-minimal |
| 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 brief is a scrollable reference document — not a slide deck. Natural page scroll, sticky sidebar navigation, collapsible sections, and a print-friendly layout.
.octave-briefs/
└── <kebab-case-name>-<YYYY-MM-DD>/
└── <name>.html
Example: /octave:brief acme.com --for discovery -> .octave-briefs/acme-discovery-2026-02-11/acme-discovery.html
The .octave-briefs/ directory should be in .gitignore.
Not all sections appear in every brief. The occasion determines emphasis:
| Occasion | Emphasized Sections | De-emphasized / Omitted | |----------|-------------------|-------------------------| | Discovery | Company Snapshot, ICP Fit, Talking Points (questions), Playbook, Qualification | Deal Timeline, Competitive | | Demo | Stakeholders, Value Props, Proof Points, Competitive, Demo Flow | ICP Fit detail | | Follow-up | Recent Signals, Deal Timeline, Talking Points (next steps), Open Items | Company Snapshot (condensed) | | QBR | Deal Timeline, Recent Signals, Proof Points, Value Delivered | ICP Fit, Playbook | | Executive | Company Snapshot (concise), Key Stakeholders, Value Props, Strategic Angles | Technical details, granular signals | | Deal Review | Deal Timeline, Competitive, Risk Assessment, Stakeholder Map, Next Steps | Company Snapshot (condensed) | | General | All sections at equal weight | None |
Section definitions:
See html-architecture.md for the full HTML scaffold, inline CSS, and key differences from deck HTML.
Briefs are reference documents, not presentations — they can hold more content per section than slides. But keep it scannable:
| Section | Content Limit | |---------|--------------| | Company Snapshot | 6-8 data fields in cards, 3-5 recent signals | | ICP Fit | Score bar + 5 fit reasons max | | Key Stakeholders | 4-6 stakeholder cards max | | Talking Points | 8-12 talking points grouped by category | | Value Props | 3-4 value props with evidence | | Competitive | Comparison table with 4-6 rows max | | Proof Points | 3-5 proof point cards | | Recent Signals | 5-8 most relevant findings | | Deal Timeline | 6-10 timeline events | | Quick Reference | 8-12 key facts / reminders |
If a section would exceed its limit, prioritize by relevance to the occasion and trim the rest.
After generating the HTML file:
BRIEF READY
============
Folder: .octave-briefs/<brief-name>-<date>/
File: .octave-briefs/<brief-name>-<date>/<brief-name>.html
Style: [Preset name or "Custom Brand"]
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
- PDF (recommended): bash "${CLAUDE_PLUGIN_ROOT:-.}"/scripts/export-pdf.sh .octave-briefs/<brief-name>-<date>/<brief-name>.html — or Cmd+P / Ctrl+P -> Save as PDF
---
Want me to:
1. Adjust or expand a section
2. Add/remove stakeholders
3. Go deeper on any topic (competitive, signals, value props)
4. Change the style
5. Export as PDF (print dialog)
6. Generate a customer-facing one-pager from this (/octave:one-pager)
7. Build a presentation from this (/octave:deck)
8. 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 entitylist_motions — List all Motions in the workspacelist_motion_playbooks — List Motion Playbooks (Default + Custom) under a Motionget_motion_playbook — Full details for a Motion Playbooklist_motion_icps — List Motion ICP cells (persona × segment intersections) for a Motionfind_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 learningssearch_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 contentOctave Connection Failed:
Could not connect to your Octave workspace.
The brief builder needs Octave data to generate useful content. Without it, most sections would be empty.
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 structure the brief
Person Not Found:
I couldn't find detailed information for [email/name].
I found their company ([Company]). Would you like me to:
- Proceed with company research + generic persona guidance
- Search for them on LinkedIn (provide URL)
- Create a brief based on their title and company alone
No Matching Motion ICP:
No Motion ICP cell matches this audience profile directly.
I'll use general positioning from the knowledge base. Consider creating a Motion for this offering, or layering a Custom Motion Playbook (Thematic / Milestone / Account / Competitive) onto an existing Motion to cover this segment.
No Findings Data:
No conversation signals found for [company/person].
This may be a new prospect with no prior interactions. I'll skip the Recent Signals and Deal Timeline sections and focus on enrichment data, Motion ICP narrative, and proof points instead.
No Proof Points:
No proof points found in your library.
The Proof Points section will be omitted. To strengthen future briefs, add case studies and customer references to your Octave library.
/octave:research — Text-based research and prep (brief is the visual, rendered version)/octave:one-pager — Customer-facing leave-behind document (brief is internal)/octave:deck — Full slide presentation (brief is a reference document)/octave:battlecard-doc — Competitive reference document (brief includes competitive context but is broader)/octave:pipeline — Deal-level coaching and pipeline strategy/octave:generate — Generate outreach content with brand voice control/octave:insights — Conversation intelligence deep divestools
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.