- Updated comments and documentation to reflect the new branding of the chat API and related components. - Renamed functions and variables to align with the Swift Assistent terminology. - Enhanced UI components with animations using Framer Motion for a smoother user experience. - Removed outdated architecture documentation related to the Medical Scribe system. This change is part of the transition to the Swift Assistent branding, ensuring consistency across the application.
11 KiB
Haalbaarheidsanalyse: Swift Cortex V2
Datum: 29-12-2025 Auteur: Claude Code (Opus 4.5) Status: Analyse compleet
Executive Summary
Conclusie: HAALBAAR met gefaseerde aanpak
De Swift Cortex V2 architectuur is goed haalbaar binnen de bestaande codebase. De huidige implementatie biedt een solide fundament met ~70% van de benodigde infrastructuur al aanwezig. De voorgestelde V2 architectuur sluit naadloos aan op bestaande patterns.
| Aspect | Score | Toelichting |
|---|---|---|
| Technische haalbaarheid | 🟢 Hoog | Bestaande architectuur is compatibel |
| Complexiteit | 🟡 Middel | Multi-intent en Safety Net zijn nieuwe concepten |
| Risico | 🟢 Laag | Incrementeel te bouwen, backward compatible |
| MVP Scope | 🟢 Realistisch | 6 user stories, goed afgebakend |
1. Vergelijking: Huidige Staat vs V2 Visie
1.1 Architectuur Mapping
| V2 Concept | Huidige Implementatie | Gap |
|---|---|---|
| Layer 1: Reflex Arc | ✅ intent-classifier.ts (60 patterns) |
Minimaal - voeg complexity detection toe |
| Layer 2: Orchestrator | ✅ intent-classifier-ai.ts (Haiku) |
Middel - upgrade prompt voor multi-intent |
| Layer 3: Safety Net | ❌ Niet aanwezig | Nieuw te bouwen |
| Context Injection | 🟡 Basis aanwezig (activePatient, shift) |
Uitbreiden met agendaToday, recentIntents |
| Multi-Intent Chains | ❌ Single intent model | Data model refactor nodig |
| Entity Extraction | ✅ entity-extractor.ts |
Minimaal - voeg patientResolution toe |
| Date/Time Parsing | ✅ date-time-parser.ts |
Geen gap |
1.2 Bestaande Bestanden (Assets)
lib/swift/
├── types.ts ✅ Basis types, uitbreiden met IntentChain
├── intent-classifier.ts ✅ Layer 1 basis, voeg signals detection toe
├── intent-classifier-ai.ts ✅ Layer 2 basis, upgrade prompt
├── entity-extractor.ts ✅ Compleet, kleine uitbreiding
├── date-time-parser.ts ✅ Compleet, geen wijzigingen
├── action-parser.ts ✅ Refactor voor chains
├── chat-api.ts ✅ Behouden
├── error-handler.ts ✅ Recent toegevoegd
└── [NIEUW] reflex-classifier.ts → Upgrade van intent-classifier
└── [NIEUW] orchestrator.ts → Upgrade van intent-classifier-ai
└── [NIEUW] safety-net.ts → Nieuw te bouwen
stores/
└── swift-store.ts ✅ Uitbreiden met chain state + suggestions
components/swift/
├── chat/ ✅ Bestaand, voeg ActionChainCard toe
├── artifacts/ ✅ Bestaand, geen wijzigingen
├── command-center/ ✅ Bestaand, voeg SuggestionToast toe
└── [NIEUW] suggestion-toast.tsx
└── [NIEUW] chat/action-chain-card.tsx
└── [NIEUW] chat/clarification-card.tsx
2. Gap Analyse per V2 Feature
2.1 Multi-Intent Support (US-MVP-01)
Huidige situatie:
// Huidige single-intent response
interface ClassificationResult {
intent: SwiftIntent;
confidence: number;
}
V2 vereist:
// Multi-intent chain
interface IntentChain {
actions: IntentAction[]; // Array i.p.v. single
status: 'pending' | 'executing' | 'completed';
}
Impact:
types.ts: Nieuwe interfaces toevoegen (~50 regels)orchestrator.ts: Nieuwe AI prompt met multi-intent instructies (~150 regels)swift-store.ts: Chain state toevoegen (~30 regels)action-chain-card.tsx: Nieuwe UI component (~150 regels)
Effort: M (Medium)
2.2 Context Awareness (US-MVP-02, US-MVP-03)
Huidige situatie:
// In chat API - basic context
context: {
activePatient?: { id, first_name, last_name },
shift?: ShiftType
}
V2 vereist:
interface SwiftContext {
activePatient: { id, name, recentNotes?, upcomingAppointments? };
currentView: string;
shift: ShiftType;
currentTime: Date;
agendaToday: Appointment[];
recentIntents: RecentIntent[];
}
Impact:
- Nieuwe
GET /api/swift/contextendpoint (~80 regels) - Context builder utility (~50 regels)
- Store uitbreiding voor context sync (~20 regels)
Effort: S (Small)
2.3 Hybrid Reflex/Cortex Switch (US-MVP-04, US-MVP-05)
Huidige situatie:
intent-classifier.tsheeft al confidence threshold (0.8)- AI fallback via
intent-classifier-ai.tswerkt al
V2 verschil:
- Expliciete "complexity signals" detectie (multi-intent woorden: "en", "daarna")
- Context-afhankelijke woorden detectie ("hij", "haar", "deze")
Impact:
- Upgrade
intent-classifier.ts→reflex-classifier.ts(~100 regels diff) - Voeg
MULTI_INTENT_SIGNALSenCONTEXT_SIGNALSregex arrays toe
Effort: S (Small) - Grootste deel al gebouwd
2.4 Safety Net / Proactive Suggestions (US-MVP-06)
Huidige situatie:
- Niet aanwezig
V2 vereist:
- Protocol Rules database
evaluateSafetyNet()functieSuggestionToastcomponent- Store state voor suggestions
Impact:
safety-net.ts: Nieuwe module (~200 regels)suggestion-toast.tsx: Nieuw component (~100 regels)- Store uitbreiding (~40 regels)
- Integratie in action execution flow
Effort: L (Large) - Volledig nieuw concept
3. Risico Analyse
3.1 Technische Risico's
| Risico | Impact | Kans | Mitigatie |
|---|---|---|---|
| AI Prompt instabiliteit | Multi-intent parsing faalt | Laag | Uitgebreide test dataset, fallback naar single |
| Performance degradatie | Latency >2s | Laag | Haiku is snel, cache context |
| State complexity | Race conditions | Middel | Zustand immer middleware, clear action flow |
| Backward compatibility | V1 features breken | Laag | Feature flags, adapter pattern |
3.2 Scope Risico's
| Risico | Impact | Mitigatie |
|---|---|---|
| Feature creep | MVP te groot | Strikte scope (6 stories) |
| Protocol complexity | Safety Net te ambitieus | Begin met 1 hardcoded regel |
| Over-engineering | Te veel abstractie | "Working software" first |
4. Implementatie Strategie
4.1 Aanbevolen Fasering
Fase 1: Foundation (Week 1)
├── SwiftContext type definitie
├── GET /api/swift/context endpoint
├── Reflex complexity detection upgrade
├── Feature flag: SWIFT_V2_ENABLED
└── Deliverable: Context beschikbaar, backward compatible
Fase 2: Multi-Intent (Week 2)
├── IntentChain types
├── Orchestrator AI prompt upgrade
├── ActionChainCard component
├── Store chain state
└── Deliverable: "Zeg af en maak notitie" werkt
Fase 3: Safety Net MVP (Week 3)
├── 1 hardcoded protocol regel (wondzorg)
├── SuggestionToast component
├── Trigger na dagnotitie
└── Deliverable: Proactieve suggestie demo
Fase 4: Polish (Week 4)
├── ClarificationCard component
├── Error handling
├── UI animaties
└── Deliverable: Demo-ready prototype
4.2 Backward Compatibility
De V2 architectuur kan naast V1 draaien:
// lib/swift/classifier-adapter.ts
export async function classifyIntent(input: string, context?: SwiftContext) {
if (!FEATURE_FLAGS.SWIFT_V2_ENABLED) {
return classifyV1(input); // Bestaande flow
}
const reflex = classifyWithReflex(input);
if (!reflex.shouldEscalateToAI) {
return buildLocalResult(input, reflex);
}
return classifyWithOrchestrator(input, context);
}
5. Effort Schatting
5.1 Per Component
| Component | Nieuw | Wijziging | Effort |
|---|---|---|---|
types.ts |
150 regels | - | S |
reflex-classifier.ts |
200 regels | upgrade | M |
orchestrator.ts |
250 regels | upgrade | M |
safety-net.ts |
200 regels | nieuw | M |
swift-store.ts |
- | +100 regels | S |
action-chain-card.tsx |
180 regels | nieuw | M |
suggestion-toast.tsx |
100 regels | nieuw | S |
clarification-card.tsx |
60 regels | nieuw | S |
/api/swift/context |
80 regels | nieuw | S |
/api/intent/classify |
150 regels | nieuw | M |
| Tests | 300 regels | nieuw | M |
Totaal: ~1770 nieuwe regels code
5.2 Tijdsinschatting
| Fase | Effort | Complexiteit |
|---|---|---|
| Fase 1: Foundation | 2-3 dagen | Laag |
| Fase 2: Multi-Intent | 3-4 dagen | Middel |
| Fase 3: Safety Net | 2-3 dagen | Middel |
| Fase 4: Polish | 2-3 dagen | Laag |
Totaal: 9-13 werkdagen voor MVP
6. Aanbevelingen
6.1 DO's
- Start met Foundation - Context injection is low-risk, high-value
- Gebruik feature flags - Mogelijkheid om V2 uit te schakelen
- Test sentences dataset - Bouw corpus van 50+ test zinnen voordat je multi-intent bouwt
- Behoud V1 patterns - De 60 bestaande regex patterns zijn waardevol
6.2 DON'T's
- Niet alle protocollen tegelijk - Begin met 1 Safety Net regel
- Geen over-engineering - De
ProtocolRuleinterface is voor later - Niet de store herschrijven - Extend, niet replace
- Geen rollout strategie nodig - Dit is een prototype
6.3 Quick Wins
- Context endpoint - Direct te bouwen, verbetert AI kwaliteit
- Complexity detection - 10 regels code, grote impact
- Processing indicator - Al aanwezig (
isStreaming), polish
7. Conclusie
Haalbaarheid: ✅ JA
De Swift Cortex V2 architectuur is volledig haalbaar binnen de bestaande codebase:
- 70% infrastructuur bestaat al - Classifier, entity extraction, store, chat API
- Incrementeel te bouwen - Elke fase levert werkende software
- Backward compatible - Geen breaking changes voor bestaande features
- Realistische scope - 6 user stories, ~1770 regels code
- Risico's beheersbaar - Feature flags, fallbacks, tests
Kritieke Succesfactoren
- Test dataset eerst - Bouw 50+ test zinnen voordat je multi-intent implementeert
- Feature flags - Zorg dat V2 uitschakelbaar is
- Iteratief bouwen - Elke fase moet demo-baar zijn
- Scope discipline - Niet alle protocollen, alleen wondzorg voor MVP
Volgende Stap
Start met Fase 1: Foundation - de SwiftContext API endpoint. Dit is:
- Low risk
- Onafhankelijk van andere features
- Direct waarde toevoegend aan bestaande AI classificatie
- In 1-2 dagen te bouwen
Bijlagen
A. Bestaande Code Referenties
| Bestand | Regels | Functie |
|---|---|---|
lib/swift/types.ts |
~180 | Type definities |
lib/swift/intent-classifier.ts |
~200 | Layer 1 classifier |
lib/swift/intent-classifier-ai.ts |
~100 | Layer 2 AI fallback |
lib/swift/entity-extractor.ts |
~250 | Entity extraction |
lib/swift/date-time-parser.ts |
~200 | Datum/tijd parsing |
lib/swift/action-parser.ts |
~150 | Action routing |
stores/swift-store.ts |
~200 | Zustand state |
B. V2 Documentatie Verwijzingen
architecture-swift-cortex-v2.md- Uitgebreid technisch planfo-swift-intent-system-v2.md- Functioneel ontwerpintent-architecture-v2-proposal.md- Architectuur voorstelmvp-userstories-intent-system.md- MVP scope
C. Versie Historie
| Versie | Datum | Auteur | Wijzigingen |
|---|---|---|---|
| 1.0 | 29-12-2025 | Claude Code | Initiële analyse |