skills/signals/SKILL.md
Morning intelligence briefing that surfaces the deals, patterns, and signals demanding attention right now. Use when user says "what should I focus on", "morning briefing", "what happened", "signals", "what needs attention", "daily update", or asks what changed since they last checked. Flips from pull-based to push-based — the data tells you what to work on.
npx skillsauth add octavehq/lfgtm signalsInstall 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.
Your daily command center. Surfaces the deals that moved, objections trending up, competitors appearing, stakeholders going silent, and messaging themes gaining or losing traction — so you know exactly what to work on today.
/octave:signals [--period <time-range>] [--focus <area>]
--period <range> - Lookback window (today, 3d, week, 2w — default: week)--focus <area> - Zoom into one section (deals, patterns, pipeline, content)--segment <name> - Filter by segment--motion <name> - Filter by Motion/octave:signals # Full morning briefing (last 7 days)
/octave:signals --period today # What happened since yesterday
/octave:signals --period 2w # Broader two-week view
/octave:signals --focus deals # Just the deals that need attention
/octave:signals --focus patterns # Just emerging patterns
When the user runs /octave:signals:
Run these queries in parallel to gather the full picture. Use the period option to set date ranges (default: last 7 days).
A. Recent Events (activity stream)
list_events({
eventTypes: ["CALL_TRANSCRIPT", "EMAIL_SENT", "EMAIL_REPLY_RECEIVED", "DEAL_WON", "DEAL_LOST", "DEAL_STAGE_CHANGE"],
dateRange: { start: "<period start>", end: "<today>" },
limit: 100
})
B. All Finding Types (signal extraction)
list_findings({
extractionTypes: [
"CALL_EXTERNAL_OBJECTIONS",
"CALL_EXTERNAL_BUSINESS_PROBLEMS",
"CALL_EXTERNAL_QUESTIONS_OR_CONFUSION_ABOUT_OFFERING",
"CALL_EXTERNAL_COMPETITORS_TO_OUR_OFFERING",
"CALL_INTERNAL_VALUE_PROP_PRESENTATIONS",
"CALL_INTERNAL_PROOF_POINTS",
"CALL_INTERNAL_USE_CASES_BROUGHT_UP",
"EMAIL_OBJECTION",
"EMAIL_COMPETITOR_MENTION",
"EMAIL_VALUE_PROP",
"EMAIL_PAIN_POINT"
],
dateRange: { start: "<period start>", end: "<today>" },
groupBy: "extractionType",
limit: 200
})
C. Previous Period Findings (for trend comparison)
list_findings({
extractionTypes: [
"CALL_EXTERNAL_OBJECTIONS",
"CALL_EXTERNAL_COMPETITORS_TO_OUR_OFFERING",
"CALL_INTERNAL_VALUE_PROP_PRESENTATIONS",
"CALL_INTERNAL_PROOF_POINTS"
],
dateRange: { start: "<two periods ago>", end: "<period start>" },
groupBy: "extractionType",
limit: 200
})
D. Library Context (for gap detection)
list_all_entities({})
Process the raw data into four signal categories. Prioritize by urgency — things that need action today come first.
Signal Priority Rules:
Use the --focus flag to show only the requested section, or show all four sections for the full briefing.
See briefing-output-template.md for the full morning briefing output template.
When --focus is specified, show only that section with expanded detail:
--focus deals: Show the Deals section with additional context per deal — include last 3 interactions, all stakeholders, full finding history.
--focus patterns: Show the Patterns section with full finding breakdowns — include specific quotes, event links, week-over-week trend charts.
--focus pipeline: Show Pipeline Health with deal-level detail — list every deal that moved, every deal at risk, every new deal.
--focus content: Show Content Performance with usage rankings across all proof points, value props, and Motion ICPs.
When user asks to dive deeper into any signal:
get_event_detail({
eventOId: "<event_oId>"
})
Present full context for the signal — the event, the finding, the deal history, and recommended actions.
When user wants to act on a detected gap:
Library Gap → Create/Update:
# If objection not in a Motion ICP cell, update that cell's narrative
update_motion_playbook({
motionPlaybookOId: "<motion_playbook_oId>",
instructions: "Add objection handling for: [detected objection] to the relevant Motion ICP narrative section"
})
# If competitor not tracked
search_knowledge_base({
query: "<competitor name>",
entityTypes: ["competitor"]
})
# If not found, suggest:
# /octave:library create competitor "[name]"
Deal Signal → Route to Skill: Suggest the appropriate follow-up skill based on signal type:
/octave:pipeline stalled <domain>/octave:battlecard --competitor "<name>"/octave:pipeline close <domain>/octave:pipeline multi-thread <domain>/octave:enablement objections --topic "<topic>"/octave:wins-losses --status won| Signal | Detection | Priority | |--------|-----------|----------| | Champion silent | No reply from primary contact in >2x their avg response time | CRITICAL | | New competitor | Competitor extraction type appears for a deal where it wasn't before | CRITICAL | | Deal moved backward | Deal stage change event where new stage is earlier than previous | CRITICAL | | Deal advanced | Deal stage change event moving forward | HIGH | | Stalled deal | Active deal with no events in 14+ days | HIGH | | New deal | First event for a company domain | MEDIUM | | Deal won | DEAL_WON event | INFO | | Deal lost | DEAL_LOST event | INFO |
| Signal | Detection | Priority | |--------|-----------|----------| | Objection spike | >2x increase in extraction count vs previous period | HIGH | | New objection | Objection theme appears that wasn't in previous period | HIGH | | Competitor trending | Competitor mentions increased >50% vs previous period | HIGH | | Hot proof point | Proof point cited in >3 conversations this period | MEDIUM | | Cold proof point | Proof point with 0 citations for 30+ days | MEDIUM |
| Signal | Detection | Priority | |--------|-----------|----------| | Unaddressed objection | Objection finding with no matching Motion ICP narrative content | HIGH | | Unknown competitor | Competitor mention with no competitor entity in library | HIGH | | Missing persona | Person qualified to a persona type not in library | MEDIUM | | Stale Motion ICP | Motion ICP cell with 0 event associations in 30+ days | MEDIUM |
list_events - Activity stream with date/type filterslist_findings - Finding aggregates with grouping and trend dataget_event_detail - Drill into specific eventslist_all_entities - Full library inventory for gap detectionlist_motions - List Motions in the workspacelist_motion_playbooks - List Motion Playbooks under a Motionlist_motion_icps - List Motion ICP cells under a Motionfind_motion_icp - Fetch Motion ICP narrative + Learning Loop learningssearch_knowledge_base - Match findings to library contentget_entity - Get entity details for contextupdate_entity - Apply detected gap fixescreate_entity - Create new entities for detected gapsupdate_motion_playbook - Edit Motion Playbook narrative sections (e.g., add objection handling to a Motion ICP)No Events in Period:
No activity found in the last [period].
This could mean:
- No calls/emails have been synced recently
- The period is too narrow — try
--period 2wor--period month- CRM/email integration may need reconnecting
Check your integrations in Octave, or try a wider window.
No Findings Extracted:
Events found but no findings extracted yet.
Recent events may still be processing. Check back in a few minutes. In the meantime, here's what happened (raw activity): [Show event summary without finding analysis]
Insufficient Data for Trends:
Not enough historical data to detect trends.
I'll show you what's happening now, but trend analysis needs at least 2 weeks of data. Keep using Octave and trends will appear in future briefings.
/octave:insights - Deep dive into specific finding types/octave:pipeline - Deal-level coaching for flagged deals/octave:wins-losses - Pattern analysis across deal outcomes/octave:battlecard - Competitive intelligence for new competitors/octave:enablement - Turn trending objections into team materials/octave:audit - Full library health check/octave:library - Create/update entities for detected gapstools
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.