Regelmotorn kodar plattformens viktigaste princip: systemet får aldrig
anta att en kontroll är utförd eller att dokumentation finns. Varje
påstående måste kunna härledas till evidens i händelseloggen.
- Nytt versionshanterat regelbibliotek (src/felsokning/ecm.ts, ECM v1.0):
evidensnivåer E0–E6 härledda ur loggen, fullbordansregler och
kvalitetsgrind — skilt från applikationslogiken
- Fullbordansregel i guiden: en kontroll slutförs med evidens ELLER
uttryckligt undantag "Underlag kan inte tas fram" med obligatorisk
orsak — loggas och flaggas ⚠ i brief, överlämning och rapport
- Kvalitetsgrind före slutrapport: utskriften spärrad tills
objektidentifiering, metodikens kontroller, fotokrav och evidensnivå
är gröna; varje röd rad visar exakt vad som saknas
- Orkesterns grundprompt utökad: aldrig "OK/kontrollerad/inga fel" utan
evidens — skriv "Evidens saknas" och begär rätt underlag (foto/video/
mätvärde/skärmfoto)
- Visual-first instrumentavläsning: ny vision-uppgift läser multimetrar,
diagnosskärmar m.m. — värden/enheter/felkoder med konfidens, teknikern
bekräftar, originalbilden loggas alltid bredvid strukturerad data;
kameran är integrationslagret, inga verktygsintegrationer krävs
- Terminologi: "AI" ersatt med systemspråk i hela gränssnittet
(Beslutsstöd, Systemet analyserar, Granskning av underlaget …)
- Dokumentation: docs/moduler/evidensmotor.md; 41 vitest-tester
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
Primärvägen när ett ärende startas: teknikern fotar arbetsorderns
framsida, orkesterns nya dokumenttolkningsuppgift (Sonnet 5, vision)
läser dokumentet layoutoberoende och returnerar strukturerade fält
(kund, fordon, verkstad, felbeskrivning) med konfidens per värde.
- Konfidensvalidering: ≥95 % godkänns automatiskt, 80–95 % markeras
för genomläsning, <80 % kräver aktiv bekräftelse — teknikern
granskar bara osäkra fält
- Visuell granskning: dokumentet bredvid fälten; klick på ett fält
markerar ungefärlig position i bilden
- "Starta diagnos" skapar hela ärendet: objekt ur fordonsfälten,
metodikval ur felbeskrivningen, tolkningen loggad som ny
organisationsintern händelse arbetsorder_skannad (filtreras ur
kund- och partnerdelningar i server, RPC och klient)
- Schema-bunden vision-uppgift i båda orkestertjänsterna; bild som
data-URL, validerad på servern
- Inloggade användare tillfrågas aldrig om namn — kontot används
- Manuell inmatning kvar som andrahandsväg; tydligt märkt
demo-tolkning i lokalt läge
- 37 vitest-tester; integrationstestet verifierar filtreringen
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
Plattformens AI-endpoint är nu en modellorkester — servern äger hela
routingtabellen (modell, effort, systemprompt, schema per uppgift), så
den justeras utan klientändringar:
- handledning → Claude Sonnet 5 (medium): realtidssvar på varje
bekräftad dokumentation — latenskänsligt på golvet.
- granskning → Claude Opus 5 (hög effort): motsägelser, luckor och
förhastade slutsatser i hela arbetsloggen; ny knapp
'AI-granska underlaget' i briefen.
- sammanfattning → Claude Sonnet 5 (låg effort): AI-komplettering av
överlämningen med risker & osäkerheter; ny knapp i
överlämningsdialogen.
- metodikval → Claude Haiku 4.5: klassificerar felbeskrivningen
när nyckelordsvalet inte träffar en specifik metodik;
valet sparas på ärendet (nytt fält metodikId).
Alla uppgifter delar AI-reglerna och det klassificerade svarsschemat;
modellen som svarade loggas i varje ai_svar-händelse och visas i UI:t.
Felbeskrivningsfältet fick även röstinmatning.
Verifierat: 26 vitest-tester gröna (inkl. att endpointen routar till
tre distinkta modeller och att granskningsprompten innehåller hela
loggen), produktionsbygge ok, båda Playwright-sviterna gröna.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
- Ny edge-funktion supabase/functions/felsokning-ai: äger Claude
API-nyckeln (serverhemligheten ANTHROPIC_API_KEY), systemprompten,
modellvalet (claude-opus-5) och svarsschemat. Kräver inloggad
användare (verify_jwt = true), validerar promptlängd och hanterar
refusal/fallback på serversidan.
- Klienten anropar plattformens endpoint via functions.invoke —
@anthropic-ai/sdk borttagen ur klientberoendena, ingen nyckel
hanteras eller lagras någonsin i webbläsaren.
- Nyckelpanelen på startsidan ersatt med statuspanel: AI-handledning
ingår i tjänsten; i lokalt läge (ej inloggad) guidar den
deterministiska metodiken ensam, utan felbrus.
- Master Prompt: onboarding utan API-nyckelsteg; nytt stycke om att
AI:n drivs av plattformen och att AI-reglerna inte kan kringgås
från klientsidan.
- Test låser att endpointen äger systemprompt, modell och schema.
Verifierat: 25 vitest-tester gröna, produktionsbygge ok, båda
Playwright-sviterna gröna.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt