Systems Lab

Agent skill

signals

Morning intelligence briefing that surfaces the deals, patterns, and signals demanding attention right now.

activeSelf-containedInstructions only1,390 words

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-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about signals

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
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.

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:

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:

  1. CRITICAL — Champion went silent, competitor entered a deal, deal moved backward, new objection not in Motion ICP / Objection entity
  2. HIGH — Deal advanced (opportunity to accelerate), objection frequency spiking, stakeholder engagement dropped
  3. MEDIUM — New patterns emerging, content performance shifts, pipeline health changes
  4. 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

SignalDetectionPriority
Champion silentNo reply from primary contact in >2x their avg response timeCRITICAL
New competitorCompetitor extraction type appears for a deal where it wasn't beforeCRITICAL
Deal moved backwardDeal stage change event where new stage is earlier than previousCRITICAL
Deal advancedDeal stage change event moving forwardHIGH
Stalled dealActive deal with no events in 14+ daysHIGH
New dealFirst event for a company domainMEDIUM
Deal wonDEAL_WON eventINFO
Deal lostDEAL_LOST eventINFO

Pattern Signals

SignalDetectionPriority
Objection spike>2x increase in extraction count vs previous periodHIGH
New objectionObjection theme appears that wasn't in previous periodHIGH
Competitor trendingCompetitor mentions increased >50% vs previous periodHIGH
Hot proof pointProof point cited in >3 conversations this periodMEDIUM
Cold proof pointProof point with 0 citations for 30+ daysMEDIUM

Library Gap Signals

SignalDetectionPriority
Unaddressed objectionObjection finding with no matching Motion ICP narrative contentHIGH
Unknown competitorCompetitor mention with no competitor entity in libraryHIGH
Missing personaPerson qualified to a persona type not in libraryMEDIUM
Stale Motion ICPMotion ICP cell with 0 event associations in 30+ daysMEDIUM

MCP Tools Used

Event & Finding Access

  • list_events - Activity stream with date/type filters
  • list_findings - Finding aggregates with grouping and trend data
  • get_event_detail - Drill into specific events

Library Context

  • list_entities - Full library inventory for gap detection
  • list_motions - List Motions in the workspace
  • list_motion_playbooks - List Motion Playbooks under a Motion
  • list_motion_icps - List Motion ICP cells under a Motion
  • find_motion_icp - Fetch Motion ICP narrative + Learning Loop learnings
  • search_knowledge_base - Match findings to library content
  • get_entity - Get entity details for context

Library Updates

  • update_entity - Apply detected gap fixes
  • create_entity - Create new entities for detected gaps
  • update_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:

  1. No calls/emails have been synced recently
  2. The period is too narrow — try --period 2w or --period month
  3. 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.

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.