# 🎯 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** ```python _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._