Agent skill
signals
Morning intelligence briefing that surfaces the deals, patterns, and signals demanding attention right now.
Filed under Prospecting and list building.
From octavehq/lfgtm · 27 skills · 11 · pushed 2026-08-21
What it does when it runs
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.
Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/octavehq/lfgtm.git /tmp/lfgtm git -C /tmp/lfgtm sparse-checkout set "skills/signals" mkdir -p ~/.claude/skills/signals cp -R "/tmp/lfgtm/skills/signals/." ~/.claude/skills/signals/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
Or take the whole library
This repo ships a .claude-plugin manifest, so Claude Code can install all 27 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.
/plugin marketplace add octavehq/lfgtm /plugin
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from octavehq/lfgtm/blob/88c5cdb1899aec05dc17e9fabd61e6e376598cd6/skills/signals/SKILL.md, which is licensed MIT (repository). 1,390 words, 27 headings.
/octave:signals - Morning Intelligence Briefing
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.
Principles
Follow these standards during generation. Read each before producing output.
Content and language:
- Editorial rules — no AI-isms, banned vocabulary, honest analyst tone
- Information principles — lead with conclusions, evidence-backed claims, narrative arc
Presentation:
- Presentation principles — use for any visual output (HTML, dashboards, tables); text follows the editorial rules above
Octave data:
- Octave value — prioritize grounded workspace data over generic AI content
Usage
/octave:signals [--period <time-range>] [--focus <area>]
Options
--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
Examples
/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
Instructions
When the user runs /octave:signals:
Step 1: Gather All Signal Data
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({
filters: { eventTypes: ["CALL_TRANSCRIPT", "EMAIL_SENT", "EMAIL_REPLY_RECEIVED", "DEAL_WON", "DEAL_LOST", "OPPORTUNITY_CREATED"] },
startDate: "<period start>",
endDate: "<today>",
limit: 100
})
B. All Finding Types (signal extraction)
list_findings({
query: "objections, business problems, questions or confusion about the offering, competitor mentions and comparisons, value prop presentations, proof points, use cases, and pain points",
startDate: "<period start>",
endDate: "<today>",
limit: 200
})
C. Previous Period Findings (for trend comparison)
list_findings({
query: "objections, competitor mentions and comparisons, value prop presentations, and proof points",
startDate: "<two periods ago>",
endDate: "<period start>",
limit: 200
})
D. Library Context (for gap detection)
list_entities({ entityType: "persona" })
list_entities({ entityType: "segment" })
list_entities({ entityType: "use_case" })
list_entities({ entityType: "competitor" })
list_entities({ entityType: "objection" })
list_entities({ entityType: "proof_point" })
Step 2: Analyze and Prioritize Signals
Process the raw data into four signal categories. Prioritize by urgency — things that need action today come first.
Signal Priority Rules:
- CRITICAL — Champion went silent, competitor entered a deal, deal moved backward, new objection not in Motion ICP / Objection entity
- HIGH — Deal advanced (opportunity to accelerate), objection frequency spiking, stakeholder engagement dropped
- MEDIUM — New patterns emerging, content performance shifts, pipeline health changes
- INFO — Positive confirmations, stable trends, wins
Step 3: Present the Briefing
Use the --focus flag to show only the requested section, or show all four sections for the full briefing.
Full Briefing Output
See briefing-output-template.md for the full morning briefing output template.
Step 4: Handle Focus Mode
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.
Step 5: Drill Down
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.
Step 6: Act on Signals
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:
- Silent champion →
/octave:pipeline stalled <domain> - New competitor →
/octave:battlecard-doc --competitor "<name>" - Deal advanced →
/octave:pipeline close <domain> - New stakeholder needed →
/octave:pipeline multi-thread <domain> - Objection spike →
/octave:train --topic "<topic>" - Win pattern →
/octave:win-loss-report --status won
Signal Detection Logic
Deal Signals
| 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 |
Pattern Signals
| 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 |
Library Gap Signals
| 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 |
MCP Tools Used
Event & Finding Access
list_events- Activity stream with date/type filterslist_findings- Finding aggregates with grouping and trend dataget_event_detail- Drill into specific events
Library Context
list_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 context
Library Updates
update_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)
Error Handling
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.
Related Skills
/octave:insights- Deep dive into specific finding types/octave:pipeline- Deal-level coaching for flagged deals/octave:win-loss-report- Pattern analysis across deal outcomes/octave:battlecard-doc- Competitive intelligence for new competitors/octave:train- Turn trending objections into team coaching/octave:audit- Full library health check/octave:library- Create/update entities for detected gaps
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- intent-signals by kenny589 · 63
- community-signals by taizen-ai · 8
- competitor-signals by Frontal-so · 4
- buying-signals-6 by Frontal-so · 4
- clay-buying-signals-5 by Frontal-so · 4
Need help setting it up?
This page tells you what signals does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.