Communication Layer Specification & Platform Blueprint

Document ID: DOC-2026-021 Owner: VP Product Date: 2026-02-18 Status: Draft Product: Legionis (legionis.ai) V2V Phase: Phase 3 — Strategic Commitments Related: PRD V3.0, Execution Plan V3.2, Interaction Patterns V2.0, Architecture Stack V1.4 Origin: PLT session (VP Product, Director PM, BizOps) — Communication Layer architecture + Platform Blueprint


1. Executive Summary

This document specifies two foundational elements of the Legionis platform:

  • The Communication Layer — a new platform primitive that governs all agent-to-user and agent-to-agent interaction, replacing the implicit "operator-in-the-middle" pattern with intelligent, invisible orchestration.
  • The Platform Blueprint — the canonical architectural diagram of Legionis as a platform, showing all layers, external connections, and USP mapping.
  • The Communication Layer is the architectural realization of USP #4 (Collaborative Agent Architecture). It transforms Legionis from a collection of individually-addressable agents into a self-organizing workforce.


    2. The Problem: Operator-in-the-Middle

    What Happens Today (Claude Code / Product Org OS)

    When a user interacts with the Product Org OS through Claude Code, the experience has two structural problems:

    Problem 1: The Visible Orchestrator. There is always a "Claude" voice that mediates between the user and agents. It says things like "I'm calling the PM agent to handle this" or "Let me route this to competitive intelligence." After the agent responds, Claude summarizes or presents the output. The user never feels like they're talking TO agents — they're always talking THROUGH an intermediary.

    Problem 2: Explicit Routing Required. Users must know which agent to address (@pm, @vp-product, @plt) or which skill to invoke (/prd, /decision-record). There is no mode where the user simply describes what they need and the right agents step forward autonomously.

    Why This Matters

    These problems prevent the "AI workforce" promise from landing. A real workforce doesn't require you to memorize org charts. You describe what you need, the right people show up, and they coordinate among themselves. The Communication Layer makes this real.


    3. What the Communication Layer Is

    The Communication Layer is a platform primitive — a distinct architectural layer that sits between the Workforce Layer (agents) and the user interface. It governs:

  • How user requests reach agents (request routing)
  • How agents talk to each other (inter-agent communication)
  • How agent responses reach the user (presentation governance)
  • When agents should proactively engage (cascade and initiative)
  • How conflicts between agents are handled (conflict resolution)
  • It is NOT:

    Relationship to Existing Architecture

    ComponentRoleRelationship to Communication Layer
    Gateway Engine (Week 7)Parses @product, @plt, etc.Becomes a sub-component of the Communication Layer
    Auto-routing (Week 5)Keyword-based intent matchingBecomes the first routing strategy within the Communication Layer
    Delegation Patterns (Week 6)[CONSULTATION], [DELEGATION], [REVIEW], [DEBATE]Become cooperation primitives that the Communication Layer can trigger
    spawnAgent tool (Week 6)Nested generateText() callsBecomes the execution mechanism the Communication Layer uses to invoke agents
    Meeting Mode UI (Week 7)Multi-agent response displayBecomes the presentation component for Communication Layer multi-agent responses

    The Communication Layer formalizes and unifies what Weeks 5-7 build as separate features into a coherent architectural layer.


    4. Five Core Behaviors

    Behavior 1: Intelligent Request Routing

    What it does: Analyzes any user input and determines which agent(s) should respond, without requiring the user to specify.

    Three routing modes:

    ModeUser ExperienceWhen Active
    ExplicitUser types @pm write user stories — PM respondsUser includes @ or / notation
    AssistedUser types "write user stories" — system shows "Routing to PM" briefly, PM respondsCooperation profile set to "Assisted"
    InvisibleUser types "write user stories" — PM responds directly, no routing indicationCooperation profile set to "Invisible" (default)

    Routing decision process (progressive refinement):

    1. Explicit mention? (@agent or /skill)
       → Route directly to that agent/skill

  • Conversation context? (an agent already "in the room")
  • → Continue with current agent UNLESS topic clearly shifts domains

  • Domain keyword match?
  • → Match against routing table (weighted keywords per agent)

  • Context layer signal?
  • → Check workspace context for active bets, decisions, feedback on the topic → Weight routing toward agents whose domain intersects with existing context

  • Team configuration?
  • → Filter routing candidates to agents the user has provisioned → If no match in provisioned teams, suggest team addition

  • Complexity assessment?
  • → Single-domain → route to one agent → Multi-domain → invoke gateway logic (SINGLE/PRIMARY+/MULTI) → Portfolio-level → invoke PLT

  • Ambiguous?
  • → In Invisible mode: make best judgment, route, allow user to redirect → In Assisted mode: show top 2-3 options, let user pick

    Contextual routing intelligence: The routing engine considers:

    Behavior 2: Agent-to-Agent Tipping (Cascade)

    What it does: When an agent's output changes something that affects other agents' domains, the Communication Layer detects this and notifies or triggers follow-up work.

    Cascade triggers:

    Agent ActionAffected AgentsCascade Type
    PM updates PRD scopePMM (positioning), BizOps (business case), UX Lead (design)Notification: "PRD scope changed — may affect positioning/business case"
    VP Product creates new strategic betPM (roadmap), BizOps (financial model), PMM (GTM)Notification: "New bet created — check roadmap and GTM alignment"
    CI reports competitive threatVP Product (strategy), PMM (positioning), PM (feature priority)Notification: "Competitive intel updated — review strategic impact"
    BizOps updates pricing modelPMM (positioning/messaging), PM (feature packaging)Notification: "Pricing changed — messaging may need updating"

    Cascade levels:

    LevelBehaviorWhen to Use
    Notify (default)Surface implication to user as a suggestion: "This change may affect PMM's positioning. Want me to ask PMM to review?"Safe, non-disruptive, always appropriate
    Auto-reviewAutomatically spawn affected agent in [REVIEW] mode against the changed artifactWhen cooperation profile is set to high, and the change is clearly in another agent's domain
    Auto-updateAutomatically spawn affected agent to update their own deliverablesAdvanced — only with explicit user opt-in per cascade rule

    Initial implementation (MVP): Notify level only. The system detects cascade triggers and surfaces them as suggestions. User decides whether to act.

    Post-MVP enhancement: Auto-review and auto-update levels, configurable per cascade rule in the cooperation profile.

    Behavior 3: Invisible Presentation

    What it does: Ensures the user never sees an "operator" voice. Agents speak directly. No mediation, no summarization, no "here's what the agent said."

    Rules:

  • Single-agent response: The agent's response IS the response. No preamble like "I'm routing this to PM" or "The PM agent found..." The message appears with the agent's emoji and name as the author.
  • Multi-agent response: Meeting Mode format. Each agent speaks in their section. Alignment/tension/synthesis follows. No operator voice synthesizes or introduces.
  • Routing transparency (Assisted mode only): A small, non-intrusive indicator shows which agent(s) were selected: a subtle chip or badge above the response, not a conversational statement. Example: [Routed to: 📝 Product Manager] as metadata, not as the agent "saying" it.
  • Error handling: If routing fails or no agent matches, the system says "I couldn't determine the best team member for this. Could you clarify?" — spoken as the platform, not as an operator discussing agents.
  • Prohibited patterns (the Communication Layer must suppress these):

    Never SayInstead
    "I'm calling the PM agent"PM simply responds
    "Let me route this to..."Agent responds directly
    "The agent recommends..."Agent speaks in first person
    "Here's what the team thinks:"Each agent speaks individually
    "I'll summarize the agents' responses:"Synthesis section speaks for itself

    Behavior 4: Cooperation Profiles

    What it does: Provides configurable presets that control how agents collaborate, how aggressively the system cascades, and how visible the routing is.

    Five configurable dimensions:

    DimensionLowMediumHigh
    Cooperation LevelAgents work in isolation; only respond when directly addressedAgents consult others when they detect cross-domain implicationsAgents proactively tip each other, offer to review related artifacts
    Cascade SensitivityNo cascade notificationsNotify on major scope changesNotify on any change that could affect another domain
    Conflict EscalationDisagreements resolved silently by the senior agentTension surfaced in responses, user decidesStructured debate triggered automatically for genuine tradeoffs
    Routing AutonomyExplicit only — user must @ mention or / invokeAssisted — system suggests, user confirmsInvisible — system routes autonomously
    Agent InitiativeAgents only respond to direct requestsAgents suggest follow-ups at end of responsesAgents proactively surface relevant observations from context

    Preset profiles:

    ProfileCooperationCascadeConflictRoutingInitiativeBest For
    Collaborative (default)HighMediumMediumInvisibleMediumUsers who want a self-organizing workforce
    DirectedLowOffLowExplicitLowPower users who want precise control
    BalancedMediumLowMediumAssistedLowNew users learning the system
    Full AutonomyHighHighHighInvisibleHighAdvanced users who trust the system completely

    Storage: Cooperation profile stored as JSON in the workspaces table (cooperation_profile column). Editable in Settings > AI Configuration.

    UI: A "Cooperation Style" section in AI Configuration settings, showing the presets as selectable cards, with an "Advanced" disclosure that reveals the five individual dimension sliders.

    Behavior 5: Conversation Context Continuity

    What it does: Maintains awareness of which agents are "in the room" within a conversation, enabling natural multi-turn interactions without re-routing.

    Rules:

  • Sticky agent: Once an agent is routed to a conversation, that agent continues to respond to follow-up messages unless the topic clearly shifts to another domain.
  • Domain shift detection: If the user says something that clearly belongs to a different domain (e.g., talking to PM about features, then asking "what would the marketing campaign look like?"), the Communication Layer brings in the relevant agent naturally.
  • Accumulating room: Over a long conversation, multiple agents may have participated. The Communication Layer tracks the "room" — all agents who have spoken. When a new question is ambiguous, preference is given to agents already in the room.
  • Explicit override: User can always @mention a specific agent to override the sticky routing and bring someone new in.
  • Room clearing: Starting a new conversation clears the room. Within a conversation, the user can say "let me talk to someone else about this" to signal a routing reset.

  • 5. Architecture: Where the Communication Layer Sits

                        ┌─────────────────────────────────────┐
                        │            USER INTERFACE            │
                        │  (Chat, Skill Palette, Agent Picker) │
                        └──────────────────┬──────────────────┘
                                           │
                                           ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │                      COMMUNICATION LAYER                            │
    │                                                                     │
    │  ┌──────────────┐  ┌──────────────┐  ┌──────────────────────────┐  │
    │  │   Request     │  │  Cooperation │  │   Presentation           │  │
    │  │   Router      │  │  Engine      │  │   Governor               │  │
    │  │              │  │              │  │                          │  │
    │  │  - Intent    │  │  - Cascade   │  │  - Operator suppression  │  │
    │  │    parsing   │  │    rules     │  │  - Meeting Mode trigger  │  │
    │  │  - Domain    │  │  - Tipping   │  │  - Agent attribution     │  │
    │  │    matching  │  │  - Conflict  │  │  - Error presentation    │  │
    │  │  - Context   │  │    mgmt     │  │                          │  │
    │  │    signals   │  │  - Profile   │  │                          │  │
    │  │  - Room      │  │    loading   │  │                          │  │
    │  │    tracking  │  │              │  │                          │  │
    │  └──────────────┘  └──────────────┘  └──────────────────────────┘  │
    │                                                                     │
    │  ┌──────────────────────────────────────────────────────────────┐   │
    │  │                    Gateway Engine                             │   │
    │  │  (@product, @plt, @design, @architecture, @marketing, etc.)  │   │
    │  │  SINGLE / PRIMARY+ / MULTI agent selection                   │   │
    │  └──────────────────────────────────────────────────────────────┘   │
    │                                                                     │
    │  ┌──────────────────────────────────────────────────────────────┐   │
    │  │                    Parallel Executor                          │   │
    │  │  Promise.allSettled, max 4 agents, 500ms stagger             │   │
    │  └──────────────────────────────────────────────────────────────┘   │
    └─────────────────────────────────────────────────────────────────────┘
                                           │
                        ┌──────────────────┼──────────────────┐
                        ▼                  ▼                  ▼
              ┌─────────────┐   ┌──────────────┐   ┌──────────────┐
              │  WORKFORCE   │   │   CONTEXT    │   │   COMPUTE    │
              │   LAYER      │   │    LAYER     │   │    LAYER     │
              │             │   │              │   │              │
              │ 81 agents   │   │ Decisions    │   │ BYOT keys    │
              │ 11 teams    │   │ Bets         │   │ Managed pool │
              │ 80+ skills  │   │ Feedback     │   │ Quality      │
              │ 11 gateways │   │ Learnings    │   │   toggle     │
              │ Delegation  │   │ Documents    │   │ Metering     │
              │   patterns  │   │ Cross-refs   │   │ Provider     │
              │ Knowledge   │   │ Auto-inject  │   │   factory    │
              │   packs     │   │              │   │              │
              └─────────────┘   └──────────────┘   └──────────────┘
    

    The Communication Layer USES the other three layers:


    6. Implementation Mapping to Execution Plan

    The Communication Layer does not require a new development phase. It formalizes and extends what's already planned:

    Execution Plan TaskCommunication Layer ComponentEnhancement Needed
    Week 5: Auto-routing (5.2)Request Router (keyword matching)Add context signals, room tracking, routing mode config
    Week 6: spawnAgent (6.1)Parallel Executor substrateAlready sufficient
    Week 6: Delegation patterns (6.1)Cooperation Engine primitivesAdd cascade trigger detection
    Week 7: Gateway Engine (7.1)Gateway Engine (absorbed)Already sufficient
    Week 7: Meeting Mode UI (7.2)Presentation Governor (multi-agent)Add operator suppression for single-agent
    Week 7: Parallel Executor (7.1)Parallel Executor (absorbed)Already sufficient

    New components to build:

    ComponentScopeSuggested Timing
    Request Router (contextual)Upgrade keyword matching to context-aware routingWeek 5 (extend existing auto-routing)
    Presentation GovernorSuppress operator voice in single-agent responsesWeek 5 (modify chat route response assembly)
    Cooperation Profile schemaDB column + settings UI + preset systemWeek 5 (add to settings alongside quality toggle)
    Room TrackerConversation-level agent tracking stateWeek 5 (add to conversation metadata)
    Cascade DetectorEvent-based detection of cross-domain implicationsPost-MVP (Week 9+)
    Agent-to-Agent TippingNotification system for cascade eventsPost-MVP (Week 9+)

    MVP scope (Weeks 5-7): Request Router, Presentation Governor, Cooperation Profile (presets only), Room Tracker.

    Post-MVP scope (Weeks 9+): Cascade Detector, Agent-to-Agent Tipping, Advanced cooperation profile tuning, auto-review/auto-update cascade levels.


    7. The Platform Blueprint

    7.1 Layer Model

    Legionis is a four-layer platform connected to three external resource categories.

    ═══════════════════════════════════════════════════════════════════════════════
                                  LEGIONIS PLATFORM BLUEPRINT
    ═══════════════════════════════════════════════════════════════════════════════

    ╔═══════════════════════════════════════════════════════════════════════════╗ ║ USERS ║ ║ Web UI | Voice Input | Cmd+K Palette | @ / / ║ ╚═══════════════════════════════╤═══════════════════════════════════════════╝ │ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ LAYER 4: WORKFORCE ┃ ┃ ┃ ┃ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┃ ┃ │ Product │ │Marketing │ │ Finance │ │ Legal │ │Operations│ ┃ ┃ │ 13 agents│ │16 agents │ │ 9 agents │ │ 8 agents │ │ 8 agents │ ┃ ┃ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ ┃ ┃ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┃ ┃ │ Design │ │ Arch │ │Executive │ │Corp Dev │ │IT Govern │ ┃ ┃ │ 7 agents │ │ 7 agents │ │ 2 agents │ │ 5 agents │ │ 6 agents │ ┃ ┃ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ ┃ ┃ ┃ ┃ 80+ Skills | 11 Gateways | 34 Knowledge Packs | 4 Patterns ┃ ┃ (Consultation | Delegation | Review | Debate) ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ │ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ LAYER 3: COMMUNICATION ┃ ┃ ┃ ┃ Request Router ──── Cooperation Engine ──── Presentation Governor ┃ ┃ │ │ │ ┃ ┃ Intent Parsing Cascade Rules Operator Suppression ┃ ┃ Domain Matching Agent-to-Agent Meeting Mode Trigger ┃ ┃ Context Signals Conflict Mgmt Agent Attribution ┃ ┃ Room Tracking Profile Loading Error Presentation ┃ ┃ │ │ │ ┃ ┃ ┌─────────────────────────────────────────────────────────────────┐ ┃ ┃ │ Gateway Engine | Parallel Executor | Routing Table │ ┃ ┃ └─────────────────────────────────────────────────────────────────┘ ┃ ┃ ┃ ┃ Cooperation Profiles: Collaborative | Directed | Balanced | Auto ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ │ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ LAYER 2: CONTEXT (Organizational Memory) ┃ ┃ ┃ ┃ Decisions ── Bets ── Feedback ── Learnings ── Documents ┃ ┃ │ │ ┃ ┃ Cross-Reference Graph Auto-Context Injection ┃ ┃ Topic / Product / Phase Index Session Continuity ┃ ┃ Interaction Logging Portfolio State ┃ ┃ ┃ ┃ Storage: User's Cloud Drive (stable file IDs, portable markdown) ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ │ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ LAYER 1: COMPUTE ┃ ┃ ┃ ┃ BYOT Key Manager ──── Managed Token Pool ──── Quality/Efficiency ┃ ┃ │ │ │ ┃ ┃ Per-request key 30% markup 3-tier toggle ┃ ┃ Envelope encryption Spend tracking (Quality/Balanced/ ┃ ┃ Provider factory Usage metering Efficiency) ┃ ┃ Model resolution Billing integration Per-agent override ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ │ ┌───────────────────────┼───────────────────────┐ │ │ │ ╔═══════╧═══════╗ ╔════════╧════════╗ ╔════════╧════════╗ ║ LLM COMPUTE ║ ║ CLOUD STORAGE ║ ║ CLOUD SERVICES ║ ║ (Tokens) ║ ║ (Context/Files) ║ ║ (Awareness) ║ ║ ║ ║ ║ ║ ║ ║ Anthropic ║ ║ Google Drive ║ ║ Jira ║ ║ OpenAI ║ ║ OneDrive* ║ ║ Slack ║ ║ Google AI ║ ║ Dropbox ║ ║ GitHub ║ ║ ║ ║ ║ ║ Salesforce* ║ ║ ( planned) ║ ║ ( planned) ║ ║ HubSpot* ║ ╚═══════════════╝ ╚═════════════════╝ ║ (* planned) ║ ╚═════════════════╝

    7.2 USP-to-Layer Mapping

    #USPPrimary LayerHow the Layer Delivers It
    1Cloud Storage ConnectivityExternal: Cloud Storage + Context LayerCloud APIs provide stable file IDs. Context Layer stores organizational memory as portable markdown files in the user's Drive.
    2Bring Your Own Tokens (BYOT)Compute LayerPer-request key routing. Envelope encryption. Provider factory resolves model + key per request. Zero markup path.
    3Modular Agent ProvisioningWorkforce Layer11 teams as purchasable modules. Start with one, expand. Each team brings agents + skills + knowledge packs + gateway.
    4Collaborative Agent ArchitectureCommunication Layer + Workforce LayerCommunication Layer governs cooperation profiles, routing, cascade, conflict. Workforce Layer provides delegation patterns (Consultation/Delegation/Review/Debate).
    5Organizational MemoryContext Layer + Cloud StorageDecisions, bets, feedback, learnings stored as cross-referenced markdown. Auto-injected into agent context. Compounds over time.
    6Full Data OwnershipArchitectural Principle (all layers)Tokens stay with providers (Compute). Files stay in user's Drive (Context + Cloud Storage). Nothing stored on Legionis servers except subscription metadata.

    7.3 Revenue Model by Layer

    LayerRevenue MechanismType
    ComputeManaged Tokens (30% markup over provider costs)Usage-based
    WorkforceTeam module subscriptions ($5-25/user/month)Subscription
    ContextRetention driver (switching cost compounds over time)Indirect (churn reduction)
    CommunicationExpansion driver (more teams = more cross-team collaboration value)Indirect (upsell catalyst)
    External: Cloud ServicesIntegration marketplace (future)Platform fee (future)

    7.4 Competitive Defensibility by Layer

    LayerDefensibilityWhy Hard to Copy
    ComputeLow (commoditized by design)BYOT means zero lock-in. This is intentional — trust builds the moat, not compute.
    WorkforceMedium81 agents with deep domain SKILL.md files, knowledge packs, and collaboration rules. Can be approximated but the depth takes months.
    CommunicationHighCooperation profiles, cascade detection, invisible routing, contextual room tracking. No competitor has this as infrastructure.
    ContextVery HighOrganizational memory compounds. After 3+ months, the context layer becomes irreplaceable. Portable (markdown) but deeply integrated.


    8. Communication Layer Data Model

    8.1 Cooperation Profile Schema

    // Stored in workspaces.cooperation_profile (JSONB)
    interface CooperationProfile {
      preset: 'collaborative' | 'directed' | 'balanced' | 'full_autonomy' | 'custom';
      dimensions: {
        cooperationLevel: 'low' | 'medium' | 'high';     // Agent-to-agent collaboration eagerness
        cascadeSensitivity: 'off' | 'low' | 'medium' | 'high';  // When to notify about cross-domain impact
        conflictEscalation: 'low' | 'medium' | 'high';   // How disagreements are surfaced
        routingAutonomy: 'explicit' | 'assisted' | 'invisible';  // How requests reach agents
        agentInitiative: 'low' | 'medium' | 'high';      // How proactively agents suggest follow-ups
      };
    }
    

    8.2 Room State (Conversation-Level)

    // Stored in conversations.metadata (JSONB) as 'room' key
    interface ConversationRoom {
      activeAgents: string[];        // Agent keys currently "in the room"
      primaryAgent: string | null;   // The agent currently "holding the floor"
      lastRoutingDecision: {
        agentKey: string;
        reason: string;              // Why this agent was selected
        mode: 'explicit' | 'assisted' | 'invisible';
        timestamp: string;
      };
      domainHistory: string[];       // Domains touched in this conversation
    }
    

    8.3 Cascade Event (Future)

    // For post-MVP cascade detection
    interface CascadeEvent {
      sourceAgent: string;           // Agent whose output triggered the cascade
      sourceAction: string;          // What they did (e.g., "updated PRD scope")
      affectedAgents: string[];      // Agents whose domains are impacted
      severity: 'info' | 'review' | 'update';
      message: string;               // Human-readable description
      autoAction: 'notify' | 'review' | 'update';  // Governed by cooperation profile
      status: 'pending' | 'acknowledged' | 'acted_on' | 'dismissed';
    }
    


    9. Invisible Routing: How It Works End-to-End

    Here is the full flow for a message in Invisible routing mode:

    User types: "How should we price the enterprise tier?"
                        │
                        ▼
      ┌─────────────────────────────────────┐
      │  COMMUNICATION LAYER: Request Router │
      │                                     │
      │  1. Explicit mention? No            │
      │  2. Agent in room? Check...         │
      │     - Conversation is new, room     │
      │       is empty                      │
      │  3. Domain keywords:                │
      │     "price" + "enterprise"          │
      │     Matches: BizOps (0.85),         │
      │              VP Product (0.60)      │
      │  4. Context signals:                │
      │     - DR-2026-001 exists (pricing)  │
      │     - SB-2026-001 (enterprise bet)  │
      │     Boosts: BizOps (0.90)           │
      │  5. Team config: User has Product   │
      │     team (BizOps included)          │
      │  6. Complexity: Single-domain       │
      │                                     │
      │  DECISION: Route to BizOps          │
      └──────────────┬──────────────────────┘
                     │
                     ▼
      ┌─────────────────────────────────────┐
      │  Assemble BizOps system prompt      │
      │  (L1 Core + L2 Persona + L3 Domain) │
      │  + Auto-Context: DR-2026-001 +      │
      │    SB-2026-001 injected             │
      └──────────────┬──────────────────────┘
                     │
                     ▼
      ┌─────────────────────────────────────┐
      │  Execute via Compute Layer          │
      │  (User's BYOT key, model per        │
      │   quality preference)               │
      └──────────────┬──────────────────────┘
                     │
                     ▼
      ┌─────────────────────────────────────┐
      │  Presentation Governor              │
      │                                     │
      │  - Format: Single agent response    │
      │  - Attribution: "🧮 BizOps:"       │
      │  - NO operator preamble             │
      │  - Update room: BizOps now active   │
      └──────────────┬──────────────────────┘
                     │
                     ▼
      User sees BizOps responding directly:
      "🧮 BizOps: Looking at enterprise
       pricing, I see two patterns worth
       considering..."
    


    10. Relationship to Existing Documents

    DocumentRelationship
    Execution Plan V3.2Communication Layer formalizes Weeks 5-7 features into a unified architecture. Recommend updating Week 5 task list to reference this spec for routing and presentation requirements.
    PRD V3.0Section 3.8 (Agent Orchestration) should reference the Communication Layer as the governing system. USP #4 description should evolve to reference the Communication Layer by name.
    Interaction Patterns V2.0Chat interaction flows should reference the routing modes (explicit/assisted/invisible) and room tracking behavior from this spec.
    Architecture Stack V1.4The layer model in this spec should be reflected in the Architecture Stack as the canonical platform architecture.


    11. Open Questions

    #QuestionOwnerImpact
    1Should cooperation profiles be per-workspace or per-user? Per-workspace means a team shares settings; per-user means individual preferences.VP ProductProfile schema
    2How does invisible routing handle genuinely ambiguous requests that could go to 3+ agents with similar confidence?Director PMRouting algorithm
    3Should cascade notifications appear in the chat thread or in a separate notification panel?UX LeadUI design
    4What is the performance budget for contextual routing (reading context layer + making routing decision)?ArchitectureLatency SLA
    5Should the "room" persist across conversation sessions, or always start fresh?Director PMConversation continuity


    12. Success Criteria

    MetricTargetTimeline
    Invisible routing accuracy>80% correct first-attempt routingLaunch + 1 month
    Operator voice elimination0 occurrences of "I'm routing..." in agent responsesLaunch
    Cooperation profile adoption>60% of workspaces on non-default profile within 3 monthsLaunch + 3 months
    Cascade notification utility>50% of cascade notifications acted uponPost-MVP + 3 months
    User perception"Feels like talking to a team" in user interviewsLaunch + 2 months


    13. Version History

    VersionDateAuthorChanges
    1.02026-02-18PLT (VP Product, Director PM, BizOps)Initial specification: Communication Layer + Platform Blueprint