Coexo/Building Blocks/Signal Enrichment
Section 3Partial

Signal Enrichment

Dual-lens processing — raw signals become enriched nuggets ready for routing.

Vision

How a raw signal becomes a set of enriched nuggets — contextualized, understood, and ready for routing. Every signal passes through this pipeline before any decision is made about what to do with it.

Cooldown & Grouping For stream-based sources (WhatsApp, Telegram, Instagram), people often send multiple messages in rapid succession instead of one complete message. A cooldown timer groups these bursts into a single signal. Processing begins once the burst is complete — not after each individual message.

Preliminary Scan A lightweight first pass that identifies the signal's structure before deep processing begins. Who is involved? What topics are touched? How complex is this signal? For a simple email with one ask, the scan is trivial. For a 2-hour transcript with 5 speakers and 12 topics, this step maps the terrain so the lenses know where to look.

Person Lens The signal is examined through the lens of every person identified in the preliminary scan. For each person, two types of intelligence are extracted:

Behavioral nuggets operate at the signal level — they require the full conversation to detect patterns. How does this person communicate? Do they hedge, decide quickly, avoid topics, dominate discussions? Response timing, tone shifts, engagement levels, decision-making style. Behavioral intelligence accumulates over time and is most valuable when processed in batches against prior history. Once a pattern is captured, only deviations need attention.

Factual nuggets are decomposed — each is an independently actionable fact about the person. A new phone number. A job change. A family relationship mentioned in passing. A vacation date. Each factual nugget stands alone and can be routed independently.

Case Lens The signal is decomposed into content nuggets — atomic units of information that can each be handled independently. A single email might yield 3 nuggets. A 2-hour transcript might yield 30. Each nugget is one independently routable piece of intelligence: a fact relevant to ongoing work, an action that needs to happen, a new task that needs tracking, or a piece of context worth preserving.

For each nugget, context is assembled:

  • Case context — does this nugget connect to any open cases? Is there active work this relates to?
  • Conversation context — what came before this in the thread or conversation? What's the surrounding narrative?
  • Institutional memory — what has the system itself learned, concluded, or experienced that's relevant? Past decisions, explored topics, accumulated insights.

Content intelligence is evaluated per nugget against existing knowledge — does it connect to an open case? Does it introduce something new? Does it contradict something we believed? Time sensitivity is also assessed per nugget — explicit ("urgent", "ASAP", deadline mentioned) or implicit (a window closing, context suggesting pressure).

Output: Enriched Nuggets The result is a set of enriched nuggets — each carrying its content, source attribution, assembled context, and extracted intelligence — plus signal-level behavioral observations per person. All ready for routing.

A single message can be trivial in one lens and rich in the other. A casual "hey, how's it going?" might carry zero content nuggets but reveal a behavioral shift if the person usually writes formal emails.

Implementation

Cooldown & Grouping

Concept defined — burst grouping for stream-based sources. Not yet built.

Preliminary Scan

Concept defined — lightweight identification of speakers, topics, and signal complexity. Not yet built.

Person Lens (Behavioral + Factual Nuggets)

Concept defined — per-person behavioral extraction at signal level, factual nuggets decomposed. Not yet built.

Case Lens (Content Nuggets + Context Assembly)

Concept defined — decomposition into content nuggets with per-nugget context assembly. Not yet built.

Notes & Future Ideas

Signal boundaries beyond burst grouping: when is a conversation complete? (Silence-based cutting, similar to how continuous recording devices detect conversation boundaries.) Also: ownership detection — if the human picks up a conversation themselves (either independently or after the system surfaced it), the system should switch from "assist" to "observe" mode and process the completed conversation as a signal afterward.

Currently enrichment happens ad-hoc within individual skills, not as a dedicated pipeline.

Standalone skill. Input: normalized signal. Output: enriched nuggets (template TBD). No knowledge of routing outcomes.