Files
triqura-ecd/docs/swift/architectuur-visual-spec.json
colinislit af88ac9446 docs: add architecture and intake intent documentation
- Add architecture overview, implementation plan, and intent overview
- Add intake intent process specs (gap analyse, bouwplan, testplan)
- Add swift architecture specs and visualization prompts
- Remove obsolete aispeedrun-manifesto template

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 19:26:14 +01:00

628 lines
16 KiB
JSON

{
"meta": {
"title": "Intent-Driven EPD - Architectuur Visual",
"version": "1.0",
"created": "2025-01-05",
"purpose": "Conceptuele architectuurplaat voor LinkedIn post en presentaties",
"target_audience": ["C-level", "Zorgprofessionals", "ICT-managers"],
"language": "Nederlands",
"tagline": "Het systeem begrijpt wat je wilt, niet alleen wat je typt"
},
"format": {
"dimensions": {
"width": 1200,
"height": 1500,
"unit": "px"
},
"aspect_ratio": "4:5",
"export_formats": ["PNG", "SVG", "PDF"],
"linkedin_optimized": true
},
"brand": {
"colors": {
"primary": {
"teal_700": "#0F766E",
"teal_600": "#0D9488",
"teal_50": "#F0FDFA"
},
"accent": {
"amber_500": "#F59E0B",
"amber_50": "#FFFBEB"
},
"success": {
"green_600": "#16A34A",
"green_50": "#ECFDF5"
},
"neutral": {
"slate_900": "#0F172A",
"slate_600": "#475569",
"slate_400": "#94A3B8",
"slate_200": "#E2E8F0",
"slate_50": "#F8FAFC",
"white": "#FFFFFF"
}
},
"typography": {
"font_family": "Inter, system-ui, sans-serif",
"sizes": {
"title": "32px",
"subtitle": "18px",
"section_header": "20px",
"body": "14px",
"caption": "12px",
"label": "11px"
},
"weights": {
"bold": 700,
"semibold": 600,
"medium": 500,
"regular": 400
}
},
"spacing": {
"xs": 4,
"sm": 8,
"md": 16,
"lg": 24,
"xl": 32,
"xxl": 48
},
"border_radius": {
"sm": 4,
"md": 8,
"lg": 12,
"xl": 16
},
"shadows": {
"sm": "0 1px 2px rgba(15,23,42,0.06)",
"md": "0 4px 12px rgba(15,23,42,0.08)",
"lg": "0 8px 24px rgba(15,23,42,0.12)"
}
},
"layout": {
"structure": "vertical_flow",
"sections": [
"header",
"user_input",
"intent_layer",
"jit_layer",
"action_divider",
"nudge_layer",
"footer_summary"
],
"padding": {
"outer": 40,
"section_gap": 24
}
},
"sections": {
"header": {
"height": 100,
"background": "#FFFFFF",
"content": {
"title": {
"text": "INTENT-DRIVEN EPD",
"style": {
"font_size": "32px",
"font_weight": 700,
"color": "#0F172A",
"letter_spacing": "0.05em",
"text_align": "center"
}
},
"subtitle": {
"text": "Het systeem begrijpt wat je wilt, niet alleen wat je typt",
"style": {
"font_size": "16px",
"font_weight": 400,
"color": "#475569",
"text_align": "center",
"margin_top": 8
}
}
}
},
"user_input": {
"height": 80,
"content": {
"icon": {
"name": "user-round",
"source": "lucide",
"size": 32,
"color": "#0F766E"
},
"label": {
"text": "ZORGVERLENER",
"style": {
"font_size": "11px",
"font_weight": 600,
"color": "#475569",
"letter_spacing": "0.1em"
}
},
"speech_bubble": {
"text": "\"Notitie jan medicatie\"",
"style": {
"font_size": "16px",
"font_weight": 500,
"color": "#0F172A",
"font_style": "italic",
"background": "#F8FAFC",
"border": "1px solid #E2E8F0",
"border_radius": 8,
"padding": "12px 20px"
}
}
},
"connector": {
"type": "arrow_down",
"color": "#CBD5E1",
"length": 32
}
},
"intent_layer": {
"height": 280,
"box": {
"background": "#F0FDFA",
"border": "2px solid #0F766E",
"border_radius": 16,
"padding": 24
},
"header": {
"badge": {
"text": "INTENT",
"style": {
"font_size": "14px",
"font_weight": 700,
"color": "#FFFFFF",
"background": "#0F766E",
"padding": "6px 16px",
"border_radius": 20,
"letter_spacing": "0.1em"
}
}
},
"content": {
"description": {
"text": "Natuurlijke taal → Gestructureerde intentie",
"style": {
"font_size": "14px",
"font_weight": 500,
"color": "#0F766E"
}
},
"transformation": {
"input": {
"text": "\"Notitie jan medicatie\"",
"style": {
"font_size": "15px",
"color": "#475569",
"font_style": "italic"
}
},
"arrow": {
"icon": "arrow-down",
"color": "#0D9488",
"size": 20
},
"output": {
"boxes": [
{
"label": "WIE",
"value": "Jan",
"color": "#0F766E",
"background": "#FFFFFF"
},
{
"label": "WAT",
"value": "Notitie",
"color": "#0F766E",
"background": "#FFFFFF"
},
{
"label": "CONTEXT",
"value": "Medicatie",
"color": "#0F766E",
"background": "#FFFFFF"
}
],
"box_style": {
"width": 100,
"height": 60,
"border_radius": 8,
"border": "1px solid #0D9488",
"text_align": "center",
"label_size": "10px",
"value_size": "16px",
"value_weight": 600
}
}
},
"multi_intent_example": {
"text": "Complexe intenties: \"Zeg jan af en maak notitie griep\" → 2 acties, automatisch gesplitst",
"style": {
"font_size": "12px",
"color": "#475569",
"margin_top": 16,
"padding": "8px 12px",
"background": "#FFFFFF",
"border_radius": 6
}
}
},
"connector": {
"type": "arrow_down",
"color": "#CBD5E1",
"length": 24
}
},
"jit_layer": {
"height": 320,
"box": {
"background": "#FFFBEB",
"border": "2px solid #F59E0B",
"border_radius": 16,
"padding": 24
},
"header": {
"badge": {
"text": "JIT-INTERFACE",
"style": {
"font_size": "14px",
"font_weight": 700,
"color": "#FFFFFF",
"background": "#F59E0B",
"padding": "6px 16px",
"border_radius": 20,
"letter_spacing": "0.05em"
}
},
"subtitle": {
"text": "Just-In-Time Blocks",
"style": {
"font_size": "12px",
"color": "#92400E",
"margin_left": 8
}
}
},
"content": {
"description": {
"text": "Het juiste scherm verschijnt. Vooringevuld. Klaar voor actie.",
"style": {
"font_size": "14px",
"font_weight": 500,
"color": "#92400E"
}
},
"block_preview": {
"title": {
"icon": "file-text",
"text": "DAGNOTITIE",
"style": {
"font_size": "12px",
"font_weight": 600,
"color": "#475569"
}
},
"fields": [
{
"label": "Patient",
"value": "Jan",
"status": "prefilled",
"checkmark": true
},
{
"label": "Categorie",
"value": "Medicatie",
"status": "prefilled",
"checkmark": true
},
{
"label": "Inhoud",
"value": "",
"status": "cursor",
"placeholder": "cursor knippert"
}
],
"style": {
"background": "#FFFFFF",
"border": "1px solid #E2E8F0",
"border_radius": 12,
"padding": 16,
"shadow": "0 4px 12px rgba(15,23,42,0.08)",
"field_height": 36,
"checkmark_color": "#16A34A"
}
},
"other_blocks": {
"label": "Andere blocks (laden wanneer nodig):",
"blocks": [
{
"icon": "search",
"label": "Zoeken"
},
{
"icon": "calendar",
"label": "Agenda"
},
{
"icon": "clipboard-list",
"label": "Overdracht"
},
{
"icon": "layout-dashboard",
"label": "Dashboard"
}
],
"style": {
"icon_size": 16,
"background": "#FFFFFF",
"border": "1px solid #E2E8F0",
"border_radius": 8,
"padding": "8px 12px",
"gap": 8,
"color": "#475569",
"font_size": "11px"
}
}
},
"connector": {
"type": "action_button",
"content": {
"text": "OPSLAAN",
"icon": "check",
"style": {
"background": "#0F766E",
"color": "#FFFFFF",
"font_size": "12px",
"font_weight": 600,
"padding": "8px 24px",
"border_radius": 6
}
},
"arrow_after": {
"type": "arrow_down",
"color": "#CBD5E1",
"length": 24
}
}
},
"nudge_layer": {
"height": 260,
"box": {
"background": "#ECFDF5",
"border": "2px solid #16A34A",
"border_radius": 16,
"padding": 24
},
"header": {
"badge": {
"text": "NUDGE",
"style": {
"font_size": "14px",
"font_weight": 700,
"color": "#FFFFFF",
"background": "#16A34A",
"padding": "6px 16px",
"border_radius": 20,
"letter_spacing": "0.1em"
}
},
"subtitle": {
"text": "Proactieve Suggesties",
"style": {
"font_size": "12px",
"color": "#166534",
"margin_left": 8
}
}
},
"content": {
"description": {
"text": "Het systeem denkt vooruit. Op basis van protocollen.",
"style": {
"font_size": "14px",
"font_weight": 500,
"color": "#166534"
}
},
"nudge_card": {
"icon": {
"name": "lightbulb",
"color": "#F59E0B",
"size": 20
},
"title": "SUGGESTIE",
"message": {
"line1": "Medicatie gewijzigd voor Jan.",
"line2": "Evaluatie inplannen over 1 week?"
},
"source": {
"icon": "book-open",
"text": "Bron: Zorgstandaard"
},
"buttons": [
{
"text": "Ja, plannen",
"style": "primary",
"background": "#16A34A",
"color": "#FFFFFF"
},
{
"text": "Niet nu",
"style": "secondary",
"background": "transparent",
"color": "#475569",
"border": "1px solid #E2E8F0"
}
],
"style": {
"background": "#FFFFFF",
"border": "1px solid #E2E8F0",
"border_radius": 12,
"padding": 16,
"shadow": "0 4px 12px rgba(15,23,42,0.08)"
}
},
"footnote": {
"text": "Niet dwingend. Wel onderbouwd. Jij beslist.",
"style": {
"font_size": "12px",
"color": "#166534",
"font_style": "italic",
"margin_top": 12
}
}
}
},
"footer_summary": {
"height": 140,
"background": "#FFFFFF",
"border_top": "1px solid #E2E8F0",
"padding_top": 24,
"content": {
"columns": [
{
"icon": "target",
"icon_color": "#0F766E",
"title": "INTENT",
"description": "Begrijpt wat je wilt",
"color": "#0F766E"
},
{
"icon": "layout",
"icon_color": "#F59E0B",
"title": "JIT-INTERFACE",
"description": "Toont wat je nodig hebt",
"color": "#F59E0B"
},
{
"icon": "lightbulb",
"icon_color": "#16A34A",
"title": "NUDGE",
"description": "Suggereert wat je kan vergeten",
"color": "#16A34A"
}
],
"column_style": {
"width": 180,
"text_align": "center",
"icon_size": 24,
"title_size": "13px",
"title_weight": 700,
"description_size": "12px",
"description_color": "#475569"
},
"tagline": {
"text": "Jij zorgt. Het EPD regelt de rest.",
"style": {
"font_size": "16px",
"font_weight": 600,
"color": "#0F172A",
"text_align": "center",
"margin_top": 24
}
}
}
}
},
"icons": {
"source": "lucide-react",
"mapping": {
"user": "user-round",
"note": "file-text",
"search": "search",
"calendar": "calendar",
"clipboard": "clipboard-list",
"dashboard": "layout-dashboard",
"lightbulb": "lightbulb",
"book": "book-open",
"check": "check",
"arrow_down": "arrow-down",
"target": "target",
"layout": "layout"
}
},
"connectors": {
"style": {
"stroke_width": 2,
"stroke_color": "#CBD5E1",
"arrow_head_size": 8
},
"positions": [
{
"from": "user_input",
"to": "intent_layer",
"type": "arrow_down"
},
{
"from": "intent_layer",
"to": "jit_layer",
"type": "arrow_down"
},
{
"from": "jit_layer",
"to": "nudge_layer",
"type": "button_then_arrow",
"button_label": "OPSLAAN"
}
]
},
"accessibility": {
"alt_text": "Architectuurdiagram van het Intent-Driven EPD Cortex. Toont drie lagen: 1) Intent - natuurlijke taal wordt omgezet naar gestructureerde intentie met wie, wat en context; 2) JIT-Interface - het juiste invoerscherm verschijnt automatisch met vooringevulde velden; 3) Nudge - proactieve suggesties op basis van zorgprotocollen. Tagline: Jij zorgt, het EPD regelt de rest.",
"contrast_ratio": {
"text_on_white": "7:1 minimum",
"text_on_colored": "4.5:1 minimum"
}
},
"export_variants": {
"linkedin_post": {
"dimensions": "1200x1500",
"format": "PNG",
"quality": "high",
"notes": "Optimaal voor LinkedIn feed"
},
"linkedin_article": {
"dimensions": "1920x1080",
"format": "PNG",
"notes": "16:9 voor artikel header"
},
"presentation": {
"dimensions": "1920x1080",
"format": "SVG",
"notes": "Vector voor schaling"
},
"print_a4": {
"dimensions": "210x297mm",
"format": "PDF",
"dpi": 300,
"notes": "Voor handouts"
}
},
"design_tools": {
"figma": {
"setup": [
"Create frame 1200x1500px",
"Set background #FFFFFF",
"Use Auto Layout for sections",
"Import Lucide icons as components"
],
"components_to_create": [
"Layer Box (variant: intent/jit/nudge)",
"Badge (variant: teal/amber/green)",
"Field Row (variant: prefilled/empty)",
"Block Thumbnail",
"Summary Column"
]
},
"canva": {
"setup": [
"Custom size 1200x1500",
"Use brand colors",
"Elements > Lines for connectors"
]
}
}
}