Appearance
Timeline and Dependencies
This document maps dependencies between epics and tasks across all Application Architecture projects. Use this to identify the critical path, parallel work opportunities, and blocking relationships.
Epic-to-Epic Dependencies
Critical Path (must be built in order)
UI Framework (Layout, Routing, Components)
│
├──► GraphQL Client Infrastructure
│ │
│ ├──► Members List and Detail
│ ├──► Trips List and Detail
│ ├──► Tasks List
│ └──► Destinations List
│
├──► IndexedDB Persistence
│ │
│ └──► Chat History and Persistence
│
└──► Design System (Tailwind, shadcn/ui)
│
└──► AI Chat Core
│
├──► NLP Pipeline
├──► Search Execution
├──► Context Attachment
└──► Preset Routines
│
└──► Booking Hand-off
│
└──► Salesforce UI Bundle DeploymentDependency Matrix
| Epic | Depends On | Blocked By | Enables |
|---|---|---|---|
| UI Framework | |||
| — | — | All pages | |
| Component Library | — | — | All pages |
| Design System | — | — | All pages |
| CRM Data Access | |||
| GraphQL Client Infrastructure | UI Framework | Salesforce schema | All list/detail pages |
| Members List and Detail | GraphQL Client | — | Context Attachment |
| Trips List and Detail | GraphQL Client | — | Context Attachment, Hand-off |
| Tasks List | GraphQL Client | — | — |
| Destinations List | GraphQL Client | — | — |
| Mutations | GraphQL Client | — | Trip create/update |
| AI Chat | |||
| NLP Pipeline | UI Framework | — | Search Execution |
| Search Execution | NLP Pipeline, Orchestrator | — | Result display |
| Chat History and Persistence | IndexedDB, UI Framework | — | Session restoration |
| Context Attachment | GraphQL Client, AI Chat | — | Context-enriched searches |
| Preset Routines | AI Chat | — | Quick-start workflows |
| Omnichannel Inbox | |||
| Channel Integrations | UI Framework, Channel Router | — | Message normalization |
| Channel Normalization | Channel Integrations | — | Unified message view |
| Dialer Component | CRM Data Access | — | Phone calls |
| Real-Time Updates | Channel Integrations | — | Live badge counts |
| Booking Hand-off | |||
| Hand-off Flow | AI Chat, CRM Data Access, Integration Layer | — | Quote/Booking creation |
| Hand-off Validation | Hand-off Flow | — | Error handling |
| Deployment | |||
| Salesforce UI Bundle Deployment | All features | — | Staging |
| Environment Management | Salesforce UI Bundle | — | Production |
| Future Operations Console | All above | — | Q1 2027 |
Task-Level Dependencies Within Epics
Layout and Navigation
| Task | Depends On | Notes |
|---|---|---|
| Build collapsible dark sidebar | — | Start here |
| Implement React Router with static routes | Sidebar | |
| Build responsive sidebar collapse | Sidebar | |
| Add AI Button with lava blob CSS | Sidebar | Can parallel with routes |
Component Library
| Task | Depends On | Notes |
|---|---|---|
| Set up shadcn/ui (New York variant) | — | Start here |
| Implement 25 reusable components | shadcn/ui setup | Alert, avatar, badge, breadcrumb, button, calendar, card, checkbox, collapsible, datepicker, dialog, dropdown-menu, field, input, label, pagination, popover, select, separator, skeleton, sonner, spinner, table, tabs |
| Build component co-location structure | Components | pages/, components/, hooks/, libs/, styles/ |
Design System
| Task | Depends On | Notes |
|---|---|---|
| Implement Tailwind CSS 4 with oklch | — | Start here |
| Build consistent styling across components | Tailwind setup | |
| Implement dark/light mode support | Styling |
GraphQL Client Infrastructure
| Task | Depends On | Notes |
|---|---|---|
| Build graphqlClient.ts wrapper | UI Framework | |
| Implement schema introspection | GraphQL client | |
| Build cursor-based pagination | GraphQL client | |
| Implement stack-based back-navigation | Pagination |
Members List and Detail
| Task | Depends On | Notes |
|---|---|---|
| Build Members list with 4-axis filtering | GraphQL Client | Type, Tier, Level, Status |
| Build Member Detail page | GraphQL Client | Trip history and preferences |
| Implement click-through routing | List, Detail |
Trips List and Detail
| Task | Depends On | Notes |
|---|---|---|
| Build Trips list with stage/date filters | GraphQL Client | |
| Build Trip Detail page (editable) | GraphQL Client | |
| Implement "New Trip" modal | GraphQL Client, Mutations | |
| Implement trip create/update mutations | Mutations |
Tasks List
| Task | Depends On | Notes |
|---|---|---|
| Build Tasks list with status/priority filters | GraphQL Client | |
| Implement "All Tasks" / "My Tasks" toggle | List |
Destinations List
| Task | Depends On | Notes |
|---|---|---|
| Build Destinations list with country/region filter | GraphQL Client | |
| Build Destination Detail page | GraphQL Client |
NLP Pipeline
| Task | Depends On | Notes |
|---|---|---|
| Implement keyword-based intent detection | — | Start here |
| Build LLM fallback for keyword failures | Intent detection | |
| Implement regex-based parameter extraction | Intent detection | Location, dates, party size, cuisine |
| Build data source selector | UI Framework | Resy Direct, Resy Parse, Yelp, OpenTable, Tock, Toast Tab, TheFork |
Search Execution
| Task | Depends On | Notes |
|---|---|---|
| Implement POST /api/v1/search integration | NLP Pipeline, Orchestrator | |
| Build result display as cards | Search integration | Source badges, time-slot availability, pricing |
| Implement hand-off button for each result | Result display |
Chat History and Persistence
| Task | Depends On | Notes |
|---|---|---|
| Build IndexedDB session storage | IndexedDB | |
| Implement auto-save with 2-second debounce | IndexedDB | |
| Build RECENT/EARLIER grouping in sidebar | Chat history | |
| Implement session restoration on browser reopen | IndexedDB |
Context Attachment
| Task | Depends On | Notes |
|---|---|---|
| Build ContextSearchPopover | GraphQL Client | Real-time Salesforce record search |
| Implement member/trip context attachment | ContextSearchPopover | |
| Build context injection into Orchestrator requests | Context attachment |
Preset Routines
| Task | Depends On | Notes |
|---|---|---|
| Implement 6 preset routines | AI Chat | Search Dining, Book Flight, Draft Itinerary, Find Hotels, Research Destination, Compose Email |
| Build animated AI button with sparkle effects | UI Framework |
Omnichannel Inbox
| Task | Depends On | Notes |
|---|---|---|
| Build Email integration (Microsoft Graph API) | UI Framework | Thread view, HTML rendering |
| Build WhatsApp integration (Meta Direct API) | UI Framework | Chat bubbles, media support, WebSocket |
| Build Microsoft Teams integration (Graph API) | UI Framework | Channel and DM support, WebSocket |
| Build RingCentral integration (SDK) | UI Framework | Phone, SMS, dialer, WebSocket |
| Implement common message schema | All integrations | |
| Build channel-specific rendering | Schema | |
| Build three-panel layout | UI Framework |
Dialer Component
| Task | Depends On | Notes |
|---|---|---|
| Build phone dialer with call history | RingCentral integration | |
| Implement call simulation (idle, dialing, connected, ended) | Dialer | |
| Build mute and speaker controls | Dialer | |
| Implement post-call note prompt | Dialer | |
| Build contact lookup from Salesforce | GraphQL Client |
Booking Hand-off
| Task | Depends On | Notes |
|---|---|---|
| Implement POST /api/v1/handoff | AI Chat, Integration Layer | |
| Build Integration Layer authentication (JWT Bearer) | Integration Layer | |
| Implement Quote__c and Booking__c record creation | Hand-off flow | |
| Build confirmation display to advisor | Hand-off flow | |
| Implement input validation | Hand-off flow | trip_id, member_id, result payload |
| Build error handling for failed hand-offs | Validation | |
| Implement idempotency for hand-off requests | Hand-off flow |
Salesforce UI Bundle Deployment
| Task | Depends On | Notes |
|---|---|---|
| Build Vite 7 build pipeline | All features | |
| Implement code splitting for route-based lazy loading | Build pipeline | |
| Build SFDX project metadata generation | Build pipeline | |
| Deploy to Salesforce sandbox (staging) | Metadata generation | |
| Deploy to Salesforce org (production) | Staging |
Parallel Work Opportunities
Wave 1 (can start immediately)
- UI Framework (layout, routing, sidebar)
- Component Library (shadcn/ui setup)
- Design System (Tailwind CSS 4)
Wave 2 (after UI Framework)
- GraphQL Client Infrastructure
- IndexedDB Persistence
- NLP Pipeline (intent detection, parameter extraction)
Wave 3 (after Wave 2)
- Members List and Detail
- Trips List and Detail
- Tasks List
- Destinations List
- Chat History and Persistence
- Search Execution
Wave 4 (after Wave 3)
- Context Attachment (needs GraphQL + AI Chat)
- Preset Routines
- Omnichannel Inbox (channel integrations)
Wave 5 (after Wave 4)
- Dialer Component
- Booking Hand-off
Wave 6 (after all features)
- Salesforce UI Bundle Deployment
- Environment Management
- Production Deployment
Critical Path Summary
The minimum viable path to a working Advisor Console:
1. UI Framework (layout, routing, sidebar)
2. Component Library (shadcn/ui)
3. GraphQL Client Infrastructure
4. Members List and Detail (or Trips)
5. IndexedDB Persistence
6. AI Chat Core (NLP pipeline, search execution)
7. Chat History and Persistence
8. Salesforce UI Bundle DeploymentEstimated critical path: ~8-10 weeks if fully staffed and unblocked.
Risk Areas
| Risk | Impact | Mitigation |
|---|---|---|
| Salesforce UI Bundle restrictions (IndexedDB, WebSocket) | High | Test early, have fallback hosting plan |
| Orchestrator backend not ready | High | Build mock Orchestrator for frontend development |
| Integration Layer not ready | High | Build mock hand-off endpoint |
| Channel Router not ready | High | Build mock inbox data |
| 1,300-line AIChat.tsx | Medium | Decompose into smaller components |
| Chat history client-side only | Medium | Plan cross-device sync for future |
| Fireworks.ai dependency | Medium | Have fallback LLM provider |
| External backend dependencies | Medium | Build comprehensive mock layer |