New documents: - prd-cortex-v2.md: Product Requirements Document with MVP scope, user flows, success criteria, and roadmap - to-cortex-v2.md: Technical Design with three-layer architecture, API design, error handling, and logging Renamed files (swift → cortex): - architecture-swift-cortex-v2.md → architecture-cortex-v2.md - fo-swift-intent-system-v2.md → fo-cortex-intent-system-v2.md - haalbaarheidsanalyse-swift-cortex-v2.md → haalbaarheidsanalyse-cortex-v2.md - review-swift-cortex-v2.md → review-cortex-v2.md Updated content: - All swift references replaced with cortex - FO: confidence threshold 0.9 → 0.7 (industry standard) - TO v1.1: Added error handling, input sanitization, improved suïcidaliteit regex, model version note - Legacy docs: Added note about swift → cortex rename 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
13 KiB
Product Requirements Document (PRD) – Cortex V2
Projectnaam: Cortex Intent System V2 Versie: v1.0 Datum: 30-12-2025 Auteur: Colin Lit (Antigravity AI)
1. Doelstelling
Waarom bouwen we dit?
Het huidige Cortex systeem (V1) is reactief: de gebruiker geeft een commando, het systeem voert uit. Hoewel dit snel werkt (<100ms), mist het de intelligentie die zorgprofessionals nodig hebben. V2 transformeert Cortex van een "spraakgestuurd toetsenbord" naar een AI Collega.
Beoogd resultaat:
Een werkend prototype dat de kernwaarde van "Agency" demonstreert: het systeem begrijpt meerdere intenties in één zin, is context-aware (snapt wie "hij" is en wat "morgen" betekent), en geeft proactieve suggesties op basis van medische logica.
Type release: MVP / Public Prototype ("Build in Public")
Kernprincipe:
"We stoppen met optimaliseren voor milliseconden en starten met optimaliseren voor intelligentie."
2. Doelgroep
Primaire gebruikers
| Rol | Behoeften | Pijnpunten V1 |
|---|---|---|
| Verpleegkundige | Snelheid, handen-vrij werken, administratieve lastenverlichting | "Ik moet drie losse commando's geven voor één situatie" |
| Psycholoog | Nuance, cliënt-context, emotionele lading | "Het systeem snapt niet dat 'uitzichtloos' een alarmsignaal is" |
| Psychiater/Regiebehandelaar | Veiligheid, medicatie-checks, overzicht | "Ik wil dat het systeem meedenkt over labwaardes en interacties" |
Stakeholders
- Product Owner: Waarde aantonen, haalbaarheid bewaken
- Developers: Technische implementatie, AI-integratie
- UX Designer: "Invisible Interface" - minder frictie, meer begrip
Gebruikersquote (uit UX simulatie)
Regiebehandelaar: "'Ontlasten' betekent dat ik mijn intentie uitspreek, niet mijn administratie. Mijn intentie is 'Zorg voor Jan regelen'. De administratie (agenda, brief, notitie) is jullie probleem."
3. Kernfunctionaliteiten (MVP-scope)
3.1 The Three-Layer Cortex Model
| Layer | Functie | Latency | Voorbeeld |
|---|---|---|---|
| Layer 1: Reflex Arc | Lokale regex voor simpele commando's | <20ms | "Agenda vandaag", "Zoek Jan" |
| Layer 2: Intent Orchestrator | AI-classificatie voor complexe/multi-intent zinnen | ~400ms | "Zeg Jan af en maak notitie: grieperig" |
| Layer 3: Nudge Engine | Proactieve suggesties na acties | async | "Wondcontrole inplannen over 3 dagen?" |
3.2 MVP Features
-
Hybrid Architecture
- Naadloze switch tussen Reflex (lokaal) en Orchestrator (AI)
- Confidence threshold: >= 0.7 voor lokale afhandeling
- Ambiguity detection: escaleer bij top-2 score delta < 0.1
-
Multi-Intent Support
- Herkenning van signaalwoorden: "en", "daarna", "ook", "eerst"
- Opsplitsen in Action Chain met sequentiële uitvoering
- UI: Stacked Cards met progressie-indicatie
-
Context Awareness
- Pronoun resolution: "hij/zij" → actieve patiënt
- Relatieve tijd: "morgen", "volgende week" → concrete datum
- Context injection: ActivePatient, CurrentView, AgendaToday, RecentIntents
-
UI Feedback
- Processing indicator bij AI-acties
- ActionChainCard voor meerdere acties
- ClarificationCard bij ambigue input
-
Basic Nudge (Proof of Concept)
- Hardcoded protocol: Wondzorg → Wondcontrole suggestie
- NudgeToast met accept/dismiss en countdown timer
3.3 Ondersteunde Intents
| Intent | Beschrijving | Layer |
|---|---|---|
dagnotitie |
Notitie/rapportage maken | Reflex + Orchestrator |
zoeken |
Patiënt zoeken | Reflex |
agenda_query |
Agenda bekijken | Reflex |
overdracht |
Dienst overdracht | Reflex |
create_appointment |
Afspraak maken | Orchestrator |
cancel_appointment |
Afspraak annuleren | Orchestrator |
reschedule_appointment |
Afspraak verzetten | Orchestrator |
4. Gebruikersflows (MVP-flows)
Flow 1: Multi-Intent Commando
Gebruiker: "Zeg Jan af voor vandaag en maak notitie: hij heeft griep"
│
▼
┌─────────────────────────────────────────────────────┐
│ Layer 1 (Reflex): Detecteert "en" → Escaleer │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Layer 2 (Orchestrator): Parse naar 2 acties │
│ 1. cancel_appointment (Jan, vandaag) │
│ 2. dagnotitie (Jan, "hij heeft griep") │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ UI: ActionChainCard │
│ ┌─────────────────────────────────────┐ │
│ │ ✅ 1. Afspraak Jan geannuleerd │ │
│ ├─────────────────────────────────────┤ │
│ │ ⏳ 2. Notitie: "hij heeft griep" │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
Flow 2: Context-Aware Pronoun Resolution
Context: Patiënt "Marie de Vries" is geopend in dossier
Gebruiker: "Maak notitie voor haar: medicatie ingenomen"
│
▼
┌─────────────────────────────────────────────────────┐
│ Layer 2: Resolves "haar" → Marie de Vries │
│ patientResolution: "pronoun" │
└─────────────────────────────────────────────────────┘
│
▼
Notitie aangemaakt voor Marie de Vries
Flow 3: Proactieve Suggestie (Nudge)
Gebruiker: "Notitie: wond verzorgd, ziet er goed uit"
│
▼
┌─────────────────────────────────────────────────────┐
│ Notitie opgeslagen ✅ │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Layer 3 (Nudge): Protocol "wondzorg-controle" match │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ NudgeToast (bottom-right) │
│ 💡 "Wondcontrole inplannen over 3 dagen?" │
│ [Ja, doe maar] [Nee, bedankt] │
└─────────────────────────────────────────────────────┘
Flow 4: Simpel Commando (Reflex)
Gebruiker: "Agenda vandaag"
│
▼
┌─────────────────────────────────────────────────────┐
│ Layer 1 (Reflex): Match "agenda" pattern │
│ Confidence: 1.0 → Direct uitvoeren │
│ Latency: <20ms │
└─────────────────────────────────────────────────────┘
│
▼
Agenda artifact opent direct (geen spinner)
5. Niet in Scope
De volgende features vallen bewust buiten de MVP:
| Feature | Reden | Post-MVP? |
|---|---|---|
| Complete medische protocollen | Te complex voor prototype | Ja, rule-engine |
| Rollback/Undo | Vereist transactie-systeem | Ja |
| Offline mode | Prototype veronderstelt internet | Nee (low priority) |
| Advanced error handling | Retry-mechanismes, circuit breakers | Ja |
| Analytics & learning | Telemetry opslag, model training | Ja |
| Productie-beveiliging | NEN7510 compliance, audit logs | Ja (kritiek voor productie) |
| Externe integraties | Teams, ECD-koppelingen | Ja |
| Adaptive confidence | User-specific thresholds | Nice-to-have |
| Sentiment analysis | Emotionele lading detectie | Nice-to-have |
6. Succescriteria
Functionele criteria
| Criterium | Target | Meetmethode |
|---|---|---|
| Multi-intent herkenning | "X en Y" zinnen correct gesplitst | Test dataset (50+ zinnen) |
| Pronoun resolution | "hij/zij/hem/haar" correct resolved | Test met actieve patiënt context |
| Reflex hit rate | >70% lokaal afgehandeld | Logging metrics |
| AI latency p95 | <800ms | Performance monitoring |
| Nudge trigger | Wondzorg → suggestie getoond | Manual test |
UX criteria
| Criterium | Target |
|---|---|
| Geen "Ik begrijp het niet" | Altijd een poging tot begrip, eventueel met clarification |
| Processing feedback | Spinner bij AI-acties, geen "bevroren" scherm |
| Demo duur | Volledige flow demonstreerbaar in ≤5 minuten |
Technische criteria
| Criterium | Target |
|---|---|
| Reflex latency | <20ms |
| AI fallback werkt | Bij Anthropic 503 → graceful degradation naar Reflex |
| Geen PII in logs | Input gesanitized voor productie logging |
7. Risico's & Mitigatie
| Risico | Impact | Kans | Mitigatie |
|---|---|---|---|
| AI output inconsistent | Hoog | Middel | Strikte JSON schema, temperature=0, fallback to unknown |
| Multi-intent parsing faalt | Hoog | Laag | Uitgebreide test dataset, fallback naar single intent |
| Scope creep | Middel | Hoog | Strikte MVP scope, 6 user stories max |
| Privacy breach (logs) | Hoog | Laag | Input sanitization, geen PII in production logs |
| Anthropic API down | Middel | Laag | Graceful degradation naar Reflex-only mode |
| Performance degradatie | Middel | Laag | Caching, monitoring, threshold tuning |
| False positive Nudge | Laag | Middel | Specifieke regex, word boundaries, test edge cases |
8. Roadmap / Vervolg (Post-MVP)
Fase 1: MVP (Nu)
- Hybrid architecture (Reflex + Orchestrator)
- Multi-intent support
- Context awareness
- Basic Nudge (wondzorg)
Fase 2: Enhanced Nudge (Post-MVP)
- Meerdere protocol rules (medicatie, crisis)
- Admin UI voor rule management
- NLP/AI voor complexere matching
Fase 3: Productie-ready
- NEN7510 compliance
- Audit logging
- Advanced error handling (retry, circuit breaker)
- Rollback support
Fase 4: Intelligence
- Adaptive confidence (user-specific thresholds)
- Sentiment analysis
- Learning from corrections
- Predictive suggestions
Fase 5: Integraties
- ECD-koppelingen (PinkRoccade, Nedap)
- Teams/Slack integratie
- Voice-first mobile app
9. Bijlagen & Referenties
Gerelateerde documenten
| Document | Locatie | Beschrijving |
|---|---|---|
| FO Cortex V2 | docs/intent/fo-cortex-intent-system-v2.md |
Functioneel ontwerp |
| TO Cortex V2 | docs/intent/to-cortex-v2.md |
Technisch ontwerp |
| Architectuur V2 | docs/intent/architecture-cortex-v2.md |
Uitgebreid architectuurplan |
| Haalbaarheidsanalyse | docs/intent/haalbaarheidsanalyse-cortex-v2.md |
Gap analyse en effort schatting |
| MVP User Stories | docs/intent/mvp-userstories-intent-system.md |
User stories en acceptatiecriteria |
| UX Evaluatie | docs/intent/ux-evaluation-intent-scalability.md |
UX perspectief op architectuur |
| UX Simulatie | docs/intent/ux-simulation-intent-next-level.md |
Brainstorm "Next Level" features |
Tech stack
- Frontend: Next.js 15, React, TailwindCSS, shadcn/ui
- State: Zustand
- Backend: Next.js API Routes
- Database: Supabase (PostgreSQL)
- AI: Claude 3.5 Haiku (Anthropic)
Versie historie
| Versie | Datum | Auteur | Wijzigingen |
|---|---|---|---|
| 1.0 | 30-12-2025 | Colin Lit | Initieel document |