Skip to main content

What must exist before the conversational interface can ship?

DEPENDENCY MAP — MULTIMODAL AGENT INTERFACE
════════════════════════════════════════════════════════════

┌─────────────────┐
│ MULTIMODAL │
│ AGENT INTERFACE│
└────────┬────────┘

┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ AGENT │ │ IDENTITY │ │ VERCEL │
│ PLATFORM │ │ & ACCESS │ │ AI SDK │
│ (L2) │ │ (L2-L3) │ │ (unused) │
│ HARD │ │ HARD │ │ SOFT │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
│ ════════════════╪══════ │
│ │ │
┌────┴─────┐ ┌────┴─────┐ ┌────┴─────┐
│ Agent │ │ Auth + │ │ useChat │
│ identity │ │ RBAC + │ │ hook + │
│ + memory │ │ org │ │ streaming│
│ + comms │ │ isolation│ │ endpoint │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
└──────────────────┼──────────────────┘

┌─────────────┼─────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ CHAT UI │ │ MODALITY│ │ SESSION │
│ (T0) │ │ ROUTER │ │ MEMORY │
│ │ │ (T1) │ │ (T0) │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
└────────────┼────────────┘

┌─────────────┼─────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ FILE │ │ CRM │ │ VOICE │
│ UPLOAD │ │ QUERY │ │ INPUT │
│ (T2) │ │ (T3) │ │ (T4) │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
└────────────┼────────────┘


┌─────────────────┐
│ CONVERSATIONAL │
│ drmg-sales │
└─────────────────┘

─────── = Soft (can proceed with mocks)
═══════ = HARD (cannot proceed without)

════════════════════════════════════════════════════════════

Dependency Register

#DependencyTypeHard/SoftOwnerStatusMitigation
D1Agent Platform — identity + memoryInfrastructureHARDAgent Platform PRDL2Feature flag: ship chat without persistent memory, add later
D2Identity & Access — auth + RBACInfrastructureHARDIdentity PRDL2-L3Auth already works for existing app. Chat inherits same session.
D3Vercel AI SDK — useChat hookAPISOFTIn package.jsonInstalled, unusedWire directly. No external dependency.
D4Skill router — intent matchingAPISOFTAgency libWorking (text-only)Extend existing router, don't rebuild
D5WorkChart adapters — input normalisationDataSOFTNew codeNot startedMock adapter returns test data during T0
D6STT provider — Whisper/DeepgramExternalSOFTThird-partyAvailableT4 only. Text-first MVP has no voice dependency.
D7VLM provider — Claude/GPT-4V for PDFExternalSOFTThird-partyAvailableT2 only. Text chat works without vision.

Critical Path

Identity & Access (auth) ──► Agent Platform (memory) ──► Chat UI (T0) ──► Modality Router (T1) ──► File Upload (T2)

Minimum duration: 15 days (T0 + T1 + T2) CRM Query (T3)

Voice (T4)

Critical path length: 15 days (T0-T2). T3 and T4 can parallel-track after T1.

Key risk: Agent Platform memory at L2. If session memory requires Agent Platform L3, T0 must ship with conversation-scoped memory only (no cross-session persistence).

Parallelisation Opportunities

SEQUENTIAL (worst case)              PARALLEL (optimised)
──────────────────────── ────────────────────

T0 ── T1 ── T2 ── T3 ── T4 T0 ──► T1 ──► T2

Lead time: 22 days T3 ──┘

T4 ──┘

Lead time: 15 days

Headline

Two hard deps. Everything else parallels.

P-Q-D

ProblemQuestionDecision
Agent Platform + Identity block all conversational workCan we ship chat before Agent Platform hits L3?Yes — feature flag + conversation-scoped memory. Persistent memory added when Agent Platform ready.

Gate

  • All dependencies identified and classified (7 dependencies)
  • Hard vs soft classification complete (2 hard, 5 soft)
  • Critical path identified (15 days: T0→T1→T2)
  • Risk matrix populated (Agent Platform memory = key risk)
  • Parallelisation opportunities documented (22 days → 15 days)
  • Every blocker has an owner and escalation path

Context