Dokumentationen / Modul
felanmalan
dok · felanmalanid: felanmalan
namn: felanmalan
sammanfattning: Det första samtalsflödet: användaren beskriver felet i fri text och ser i realtid vad assistenten uppfattat.
uppdaterad: 2026-08-30
ansvar:
- Äga fokusrutten /flode/felanmalan och hela vyn bakom den.
- Beskriva flödet som data i flow.ts, så att motorn kan lyftas i M4 utan omskrivning.
- Hålla samtalstillståndet i klienten och skicka historiken till serverändan.
- Hålla regelmotorn som kör flödet när AI_PROVIDER=mock, så att demon fungerar utan nyckel.
- Aldrig skapa ett ärende själv – servern avgör.
filer:
- modules/felanmalan/src/manifest.ts — routes med mode focus och ai.intents. Ingen nav-post: ingången är IT-supportsidans snabbväg Felanmäl (ADR-022).
- modules/felanmalan/src/flow.ts — felanmalanFlow: grupper, autoFalt, fragaFalt, mål. KARNFALT.
- modules/felanmalan/src/components/FelanmalanFlode.tsx — Vyn: chatt till vänster, formulärspegel till höger.
- modules/felanmalan/src/components/ChatPane.tsx — Samtalet. Nya bubblor animeras med animate-msg-in.
- modules/felanmalan/src/components/FormMirror.tsx — Kvittot: AI-tonad kant och ✦ per fält assistenten fyllt.
- modules/felanmalan/src/store.ts — Zustand: bubblor, fältvärden, signaturen och anropet mot route handlern.
- modules/felanmalan/src/motor/index.ts — koraTur och spelaUpp: regelmotorn bakom AI_PROVIDER=mock.
- modules/felanmalan/test/motor.test.ts — 18 tester på regelmotorn. Plockas upp av vitest.config.mts i roten.
api:
- felanmalanFlow: FlowDefinition
Flödet som data. Systemprompten, formulärspegeln och turkontraktet genereras alla ur den.
- koraTur / spelaUpp: regelmotorn
Deterministisk tur för offline-demo. Samma kontrakt som modellen.
- KARNFALT: readonly ["problem", "plats", "datornamn"]
De fält som måste finnas innan ett ärende ens kan övervägas.
kontrakt:
- Samtalet är inmatningen, formuläret är kvittot. Användaren ska se vad som uppfattats innan något skapas.
- Ärendet skapas aldrig utan uttrycklig bekräftelse, och farSkapas kräver tre villkor samtidigt.
- Klienten skickar meddelanden plus fältvärdena och serverns signatur över dem. Prompt, profil och beslut bor i route handlern.
- Fälten skickas tillbaka för att assistenten ska återge dem ordagrant. Ett fält som byter lydelse medan användaren tittar på formulärspegeln läses som ett fel (ADR-013).
beroenden: module-sdk, ui, api-felanmalan, flow-engine
beslut: ADR-004
kvarstår:
- M3: ärendeadaptern. Ett skapat ärende landar ingenstans ännu.
- M4: motorn ska lyftas till packages/flow-engine, och ett andra flöde definieras deklarativt.
- Flödet är det enda som finns – generaliseringen är obevisad tills ett andra flöde byggts.