📄 icarus-phase-8-silent-observer.md 8,121 bytes Apr 28, 2026 📋 Raw

🎯 Icarus Phase 8 — 'Silent Observer' (Ambient Coordination)

Status: Planned — Entry after HBM maturity (Phase 7)
Director: Matt
Theme: Zero-UI household coordination via ambient message monitoring


The Vision

The Holy Grail: Family coordination without apps, forms, or explicit commands. The conversation is the interface.

Implementation: Telegram Group Chat "Family Logistics"
- Members: Matt, Aundrea, Icarus (bot)
- Icarus reads every message (Privacy Mode disabled via BotFather)
- Silent extraction of coordination state
- Speaks up only on conflicts


Architecture: Two-Tier Router Pattern

The Compute Trap: Feeding every message ("How was your day?", memes, jokes) into an 8B model = 100% GPU, hallucinated events, wasted electricity.

The Solution:

┌─────────────────────────────────────────────────────────────┐
  INCOMING MESSAGE STREAM (Telegram Group Chat)             
└─────────────────────────────────────────────────────────────┘
                              
                              
┌─────────────────────────────────────────────────────────────┐
  TIER 1: The Tripwire (Python/Regex or Sub-1B Model)       
   Latency: <10ms                                           
   Resource: Near-zero (CPU only)                            
   Pattern match: dates, times, keywords                     
    "pick up", "tomorrow", "schedule", "cover", "June 4th"   
   Confidence threshold: 0.7                                 
└─────────────────────────────────────────────────────────────┘
                              
                    ┌─────────┴─────────┐
                                       
              NO MATCH              MATCH (0.7+)
         (95% of messages)            
              Drop silently            
                              ┌─────────────────────────────┐
                                TIER 2: The Heavy Lifter   
                                (8B LLM - llama3.1:8b)      
                                 Latency: 1-3s             
                                 Resource: Gaming PC GPU    
                                 Full Coordination State    
                                  extraction                
                                 Event Graph updates        
                              └─────────────────────────────┘
                                          
                                          
                              ┌─────────────────────────────┐
                                CONFLICT?                  
                                 Yes  Speak up in chat   
                                 No  Silent update       
                              └─────────────────────────────┘

Tier 1: Tripwire Implementation

Option A: Python + Regex

_TRIPWIRE_PATTERNS = [
    r'\b(pick up|drop off|cover|schedule)\b',
    r'\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]* \d{1,2}\b',
    r'\b(tomorrow|next week|Monday|Tuesday|Wednesday|Thursday|Friday)\b',
    r'\b(\d{1,2}:\d{2}|\d{1,2} (am|pm))\b',
    r'\b(Sully|Harper|kids?|children)\b',
]

def tripwire_check(message: str) -> float:
    score = 0.0
    for pattern in _TRIPWIRE_PATTERNS:
        if re.search(pattern, message, re.IGNORECASE):
            score += 0.15
    return min(score, 1.0)

Option B: Sub-1B Model (phi-1.5 or similar)
- Load: ~500MB VRAM
- Speed: 100+ tokens/sec on CPU
- Task: Binary classification (coordination_yes/no)

Tier 2: Heavy Lifter Prompt

You are the Silent Observer's Coordination Extractor.

CONTEXT:
- Message from family group chat
- Tripwire detected: potential coordination content
- Current date: {today}
- Family: Matt (father), Aundrea (mother), Sully (son, 1st grade), Harper (daughter)

MESSAGE:
{message}

TASK:
Extract structured coordination state if present.

OUTPUT FORMAT:
{
  "is_coordination": true | false,
  "coordination_type": "transport" | "care_coverage" | "schedule_change" | "other" | null,
  "dates": ["YYYY-MM-DD"],
  "assigned_to": ["matt" | "aundrea" | "unspecified"],
  "child": ["sully" | "harper" | "both" | null],
  "details": string | null,
  "needs_confirmation": boolean,
  "blocking": boolean,
  "confidence": 0.0-1.0
}

If not coordination, return {"is_coordination": false, "confidence": 0.0}

Conflict Detection & Speaking Up

Silent by default. Icarus only speaks when:

Trigger Icarus Response
Double-booking detected "🚨 Conflict: Matt assigned pickup Thursday 3pm, but Aundrea said same time. Who's covering?"
Unconfirmed blocking item "⏳ Awaiting: Aundrea asked about June 4th care 2 days ago. Schedule still pending?"
State change contradiction "⚠️ Harper's OT moved to Tuesday? Previous schedule said Thursday."
High-penalty forgetting risk "🎯 Reminder: Sully's field trip permission due tomorrow — no confirmation seen."

Sovereign Constraints

Constraint Implementation
Local-first Tripwire on Beelink (CPU), Heavy Lifter on Gaming PC
No cloud All processing via Tailscale to Gaming PC
Privacy No message storage beyond Event Graph extraction
Opt-out /pause command mutes Icarus for 1 hour

Platform Exploration: iMessage Skills

Future expansion beyond Telegram:

Platform Approach Status
iMessage macOS Bridge + AppleScript / Private API Research phase
SMS Android bridge or carrier forwarding Conceptual

iMessage technical options:
1. macOS Bridge: Mac running 24/7, AppleScript message monitoring
2. Private API: Reverse-engineered (risky, breaks with updates)
3. Focus Mode + Shortcuts: iOS automation forwarding to webhook

Recommendation: Telegram first (stable API), iMessage research parallel, SMS if family adoption requires.


Phase 8 Entry Requirements

Requirement Source Phase Validation
Event Graph mature Phase 6-7 90 days stable, conflict detection proven
Coordination type stable Phase 7 HBM type: "coordination" extraction validated
Tripwire accuracy Phase 8 prep >95% precision, <5% false positive rate
Family adoption Phase 7 Both Matt and Aundrea active in system

Success Criteria

Metric Target
Tripwire precision >95% (minimal false positives)
Tripwire recall >90% (catch real coordination)
Heavy Lifter confidence >0.85 for Event Graph writes
Conflict detection latency <5 minutes from message
User interruptions <2 per day (only true conflicts)
Family chat naturalness No "Icarus, schedule..." commands needed

File References

  • shared/project-docs/phase8-silent-observer-spec.md (this file)
  • shared/project-docs/phase7-hbm-spec.md — Coordination type foundation
  • shared/project-docs/icarus-phase-6-roadmap.md — Event Graph maturity

The conversation is the interface. The appliance listens, learns, and speaks only when necessary.