Evidensmotor (ECM v1.0): ingen slutsats utan underlag
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
This commit is contained in:
+5
-1
@@ -34,7 +34,9 @@ Demomanus för visning: [DEMO.md](DEMO.md). Knappen **Skapa demoärende** på st
|
||||
| Dashboard | ✅ Enligt direktivet: räknare och filter för Alla/Pågående/Klara plus Starta nytt ärende. |
|
||||
| Ärendestart via arbetsorder | ✅ Primärvägen när ett ärende startas: fota arbetsorderns framsida — orkesterns dokumenttolkning (Claude Sonnet 5, vision) läser kund-, fordons- och verkstadsuppgifter oavsett layout och sätter konfidens per fält. 🟢 ≥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 med dokumentet bredvid fälten (klick markerar ungefärlig position), sedan skapas hela ärendet med ett tryck. Tolkningen loggas som organisationsintern händelse (`arbetsorder_skannad`) och delas aldrig i kund-/partnervyer. Manuell inmatning finns kvar som andrahandsväg; i lokalt läge visas en tydligt märkt demo-tolkning. Inloggade användare tillfrågas aldrig om namn — kontot vet redan. |
|
||||
| Inställningar | ✅ Systemadministratören väljer vilka objekttyper och identifieringsmetoder som visas när ett ärende startas (`/felsokning/installningar`). På plattformen gäller valet hela organisationen (sparas på organisationen, endast admin får ändra — verifierat i integrationstestet); i lokalt läge gäller valet enheten. Okända värden filtreras och tomma listor faller tillbaka till standard. |
|
||||
| Utskrift | ✅ Kundrapport och Live Share-vy skrivs ut svart på vitt; interaktiva element döljs automatiskt. |
|
||||
| Evidensmotor (ECM) | ✅ Versionshanterat regelbibliotek ([moduler/evidensmotor.md](moduler/evidensmotor.md), `src/felsokning/ecm.ts`, ECM v1.0): evidensnivåer E0–E6 härledda ur loggen, fullbordansregeln *evidens eller dokumenterat undantag med obligatorisk orsak* ("Underlag kan inte tas fram" i guiden, flaggas ⚠ i brief/rapport), och **kvalitetsgrind före slutrapport** — utskrift spärrad tills objektidentifiering, kontroller, fotokrav och evidensnivå är gröna. Regeln "skriv aldrig OK/kontrollerad/inga fel utan evidens — skriv Evidens saknas" är kodad i orkesterns grundprompt. |
|
||||
| Instrumentavläsning (visual-first) | ✅ Kameran som universellt gränssnitt: `📷 Instrument` i Dokumentera-panelen fotograferar multimetrar, diagnosskärmar, batteritestare m.m. — bildtolkningen identifierar instrumenttyp och extraherar värden/enheter/felkoder med konfidens per värde; teknikern bekräftar innan något loggas. Originalbilden loggas alltid tillsammans med de strukturerade mätvärdena — strukturerad data ersätter aldrig originalevidensen. Ingen integration mot diagnossystem krävs. |
|
||||
| Utskrift | ✅ Kundrapport och Live Share-vy skrivs ut svart på vitt; interaktiva element döljs automatiskt. Utskriften går genom ECM-kvalitetsgrinden. |
|
||||
| Öppet API | ✅ Plattforms-API:t är dokumenterat med OpenAPI 3.0 (`services/plattform/openapi.yaml`) — auth, användare, ärenden/händelser (append-only), översikt, publik delning och AI-orkestern, med scheman för alla händelsetyper. Specen valideras maskinellt, paritetstestas mot serverns rutter och serveras live på `GET /api/openapi.yaml`. |
|
||||
|
||||
## Arkitekturprinciper i koden
|
||||
@@ -42,6 +44,8 @@ Demomanus för visning: [DEMO.md](DEMO.md). Knappen **Skapa demoärende** på st
|
||||
- **Händelseloggen är enda sanningskällan.** `src/felsokning/domain.ts` definierar händelsetyperna; poster läggs endast till.
|
||||
- **Alla vyer är projektioner.** `src/felsokning/projektioner.ts` — brief, tidsfördelning, överlämningstext och kundrapport är rena funktioner av loggen och kan alltid regenereras. Testerna i `src/felsokning/__tests__/` låser detta.
|
||||
- **Metodikmotorn är deterministisk.** `src/felsokning/metodik.ts` — nästa steg härleds ur vad som redan dokumenterats. Det är här den framtida AI:n ansluter, utan att logg eller projektioner ändras.
|
||||
- **Ingen slutsats utan evidens.** `src/felsokning/ecm.ts` — regelmotorn (ECM) validerar varje påstående mot händelseloggen: fullbordansregler, evidensnivåer och kvalitetsgrind. Kameran är integrationslagret (visual-first) — det som syns på en skärm eller ett instrument fotograferas och tolkas i stället för att integreras.
|
||||
- **Terminologi.** Produkten beskrivs som ett evidensbaserat diagnossystem/intelligent beslutsstöd — i UI och kundkommunikation används *systemet/analysen/bedömningen/beslutsstödet*, aldrig "AI" om det inte är tekniskt nödvändigt.
|
||||
- **Industriellt verkstads-UI (ETKA-inspirerat).** `src/felsokning/ui.tsx` — plana ljusgrå ytor (#ECECEC/#F7F7F7), skarpa kanter, djup marinblå som primärfärg, tät typografi (11–15 px), rektangulära knappar (max 4 px radie), verktygsrad ~44 px. Ärendesidan har klassisk trekolumnslayout på skrivbord: navigationsträd (vyer + metodikstegens status) till vänster, arbetsyta i mitten, kontextpanel (teknisk information, tillförlitlighet, teknisk rekommendation) till höger; en kolumn med flikrad på smala skärmar.
|
||||
|
||||
## Medvetna avgränsningar
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
# Modul: Evidensmotorn (ECM — Evidence & Compliance Matrix)
|
||||
|
||||
**Version: ECM v1.0** · Regelbiblioteket är versionshanterat och skilt från
|
||||
applikationslogiken (`src/felsokning/ecm.ts`). Vyerna anropar bara motorns
|
||||
rena funktioner — regler kan uppdateras utan att applikationen byggs om.
|
||||
|
||||
## Grundprincip
|
||||
|
||||
**Inget underlag = ingen slutsats.**
|
||||
|
||||
Systemet får aldrig anta att en kontroll är utförd eller påstå att
|
||||
dokumentation finns om den inte faktiskt är insamlad. Varje påstående i
|
||||
diagnos, brief och slutrapport ska kunna härledas till minst en
|
||||
evidenspost i händelseloggen. Systemet skriver aldrig "OK",
|
||||
"kontrollerad", "inga fel" eller "åtgärdad" utan evidens — i stället:
|
||||
**"Evidens saknas."** Regeln är kodad i orkesterns grundprompt och kan
|
||||
inte kringgås från klienten.
|
||||
|
||||
## Evidensnivåer
|
||||
|
||||
| Nivå | Typ | Bevisvärde |
|
||||
| --- | --- | --- |
|
||||
| E0 | Inget underlag | 0 % |
|
||||
| E1 | Teknikerns observation | Lågt |
|
||||
| E2 | Foto | Medel |
|
||||
| E3 | Video | Högt |
|
||||
| E4 | Mätvärde | Högt |
|
||||
| E5 | Diagnosdata/dokument (t.ex. skannad arbetsorder) | Mycket högt |
|
||||
| E6 | Flera oberoende källor | Högsta |
|
||||
|
||||
Ärendets nivå härleds ur loggens faktiska innehåll (`evidensNiva`) och
|
||||
visas i kvalitetsgrinden.
|
||||
|
||||
## Fullbordansregler
|
||||
|
||||
En kontrollpunkt kan bara slutföras när något av följande är sant:
|
||||
|
||||
1. **Krävd evidens är insamlad** — foto för det synliga, mätvärde för det
|
||||
som mäts, kommentar där inget bättre är möjligt (metodikens
|
||||
`krav`-fält per kontroll).
|
||||
2. **Teknikern dokumenterar ett undantag**: *"Underlag kan inte tas
|
||||
fram"* med **obligatorisk orsak** (komponenten oåtkomlig, fordonet kan
|
||||
inte lyftas säkert, kunden avböjde demontering, dålig sikt, utrustning
|
||||
saknas — eller fri text). Undantaget loggas i händelseloggen och
|
||||
flaggas ⚠ i brief, överlämning och rapport — det redovisas aldrig som
|
||||
"utförd".
|
||||
|
||||
## Kvalitetsgrind före slutrapport
|
||||
|
||||
Slutrapporten kan inte genereras förrän grinden är godkänd
|
||||
(`kvalitetsgrind`/`grindGodkand`):
|
||||
|
||||
| Kontroll | Krav |
|
||||
| --- | --- |
|
||||
| Fordons-/objektidentifiering verifierad | Obligatorisk |
|
||||
| Arbetsorder inläst | Rekommenderas |
|
||||
| Metodikens kontroller: evidens eller dokumenterat undantag | Obligatorisk |
|
||||
| Foton finns för fotokrävande kontroller | Obligatorisk |
|
||||
| Hypoteser redovisas som ej verifierade | Informativ (alltid sant per konstruktion) |
|
||||
| Evidensnivå över E0 | Obligatorisk |
|
||||
|
||||
Utskriftsknappen är spärrad tills varje obligatorisk rad är grön; varje
|
||||
röd rad visar exakt vad som saknas.
|
||||
|
||||
## Visual-first: kameran är integrationslagret
|
||||
|
||||
Plattformen prioriterar visuell insamling framför systemintegrationer.
|
||||
När information redan visas på en skärm, ett instrument, en utskrift
|
||||
eller en etikett fotograferas den — bildtolkningen extraherar, validerar
|
||||
och strukturerar informationen automatiskt. Ingen specialintegration
|
||||
behövs mot Bosch, TEXA, Autel, Launch, Hella Gutmann m.fl. så länge en
|
||||
människa kan läsa informationen.
|
||||
|
||||
- **Arbetsorder** → ärendestartens dokumenttolkning (fält + konfidens).
|
||||
- **Instrument/diagnosskärmar** → `📷 Instrument` i Dokumentera-panelen:
|
||||
foto → typidentifiering (multimeter, diagnosdator, batteritestare,
|
||||
mätarkluster, manometer …) → värden med enhet och konfidens → teknikern
|
||||
bekräftar → **originalbilden loggas alltid tillsammans med de
|
||||
strukturerade värdena** — strukturerad data ersätter aldrig
|
||||
originalevidensen.
|
||||
|
||||
Värden med hög säkerhet godkänns automatiskt; osäkra markeras för
|
||||
granskning — samma konfidensmodell som arbetsorderskanningen
|
||||
(🟢 ≥95 %, 🟡 80–95 %, 🔴 <80 %).
|
||||
|
||||
## Spårbarhet
|
||||
|
||||
Varje evidenspost är en händelse i den append-only-loggen med tidpunkt,
|
||||
tekniker, ärende och innehåll — omöjlig att ändra i efterhand (triggers i
|
||||
databasen). Det ger varje slutsats juridiskt spårbart underlag för kund,
|
||||
försäkringsbolag eller domstol.
|
||||
|
||||
## Terminologi
|
||||
|
||||
Produkten beskrivs aldrig som en "AI-app" utan som ett **evidensbaserat
|
||||
diagnossystem** / **intelligent beslutsstöd**. I användargränssnitt och
|
||||
dokument används *systemet, analysen, bedömningen, tolkningen,
|
||||
bildtolkningen, beslutsstödet, regelmotorn* — inte "AI", om det inte är
|
||||
tekniskt nödvändigt (t.ex. i arkitekturdokumentation om modellorkestern).
|
||||
|
||||
## Kommande (regelbibliotekets väg framåt)
|
||||
|
||||
- Områdesregler per komponent (däck: fyra bilder + DOT + dimension;
|
||||
bromsar: närbild per ok; motorljud: video med ljud …) som
|
||||
serverdistribuerade, versionerade regelpaket.
|
||||
- Video- och ljudevidens (E3) med analys.
|
||||
- Garanti-/försäkrings-/reklamationsprofiler med egna obligatoriska
|
||||
fält i kvalitetsgrinden.
|
||||
Reference in New Issue
Block a user