Files
alva/docs/MVP.md
T
Claude 4161bbf606 Ansvarig tekniker och omfördelning från arbetsledarvyn
Ansvarig per ärende härleds ur händelseloggen: skaparen är ansvarig
tills en överlämning eller den nya händelsen ansvarig_satt pekar ut
någon annan. Arbetsledaren kan omfördela pågående ärenden direkt i
översikten; händelsen är organisationsintern och filtreras bort ur
kund- och partnerdelningar i klient, plattformstjänst och Supabase-RPC.

- Ny händelsetyp ansvarig_satt + projektion ansvarig() (testad)
- Briefen visar ansvarig tekniker; översikten visar ansvarig/skapare
- Arbetsledare får lista användare (skapa kräver fortfarande admin)
- Översikts-SQL:en härleder ansvarig och skapare ur loggen
- OpenAPI-specen uppdaterad; integrationstestet utökat (omfördelning,
  behörigheter, delningsnivåernas filtrering)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
2026-08-03 08:17:35 +00:00

6.7 KiB
Raw Blame History

Guidad Felsökning MVP

Första körbara versionen av kärnan i Master Prompt v1.0. Byggd som en fristående del av denna kodbas under /felsokning.

Kör

npm install
npm run dev        # öppna http://localhost:8080/felsokning
npm test           # projektions-, synk- och demotester

Demomanus för visning: DEMO.md. Knappen Skapa demoärende på startsidan lägger in ett komplett vibrationsärende med 1 tim 35 min historik.

Vad som ingår

Direktivets kärna Status i MVP
Objektidentifiering först Manuell inmatning (reg.nr/VIN/serienummer/maskinnummer) med bekräftelsesteg. QR/streckkod/OCR är markerade som kommande.
AI-guidad felsökning Deterministisk metodikmotor (en fråga i taget, tre metodiker) plus Claude-orkestern driven av plattformen: edge-funktionen felsokning-ai äger Claude API-nyckeln (serverhemligheten ANTHROPIC_API_KEY) och routar per uppgift — handledning i realtid (Sonnet 5), djupgranskning av hela underlaget via knapp i briefen (Opus 5, hög effort), AI-komplettering av överlämningen med risker & osäkerheter (Sonnet 5) och metodikklassificering av felbeskrivningen (Haiku 4.5). Alla svar är schema-bundna och klassificerade enligt AI-reglerna, med automatisk fallback till Anthropics rekommenderade reservmodell vid avböjd förfrågan; modellen som svarade loggas i varje händelse. Kräver inloggad användare; svaren är interna och delas aldrig i kundvyer. I lokalt läge guidar metodiken ensam.
Arbetslogg Append-only händelselogg med tidsstämpel och användare på varje post. Ingenting skrivs över.
Tidredovisning Kategorier (aktiv felsökning, väntetid, provkörning …) via kategoribyten i loggen; paus räknas inte i total tid. Inaktivitetsfråga efter 20 min utan händelser.
Dokumentation Observationer, mätvärden, foton (nedskalade), kommentarer och hypoteser. Hypoteser märks alltid 🔴 och kan aldrig loggas som konstaterade fel.
Ärendebrief Regenereras ur loggen vid varje visning: utförda kontroller, observationer, ej kontrollerat, rekommenderat nästa steg, tillförlitlighet, total arbetstid.
Överlämning ”Lämna över arbete” genererar överlämningsrapport ur briefen och loggar överlämningen.
Kundrapport Tidslinjevy utan interna poster, med bilder och tidsfördelning. Utskrift/PDF via webbläsaren, med påminnelse om granskning före delning.
Röstinmatning (tal in, text ut) Push-to-Talk via webbläsarens taligenkänning (sv-SE): lyssnar bara efter aktivt tryck, röd indikator med realtidstranskript, texten hamnar i ett redigerbart fält och skickas aldrig automatiskt. Knappen visas bara i webbläsare med talstöd. Produktionsversionen byter motor till leverantörens Voice-to-Text bakom samma gränssnitt.
Verifierade checklistor Varje kontroll i metodiken har ett minimikrav (foto, mätvärde eller kort observation). Foto-kontroller verifieras med bild; mätningar kan inte markeras verifierade utan värde.
Export Versionsmärkt JSON-export (version = antal händelser vid exporttillfället, med användare och tidpunkt); exporten loggas själv som händelse. PDF via utskrift. CSV och API i backend-fasen.
Multi-tenant & roller I självhostat läge: registrering skapar organisation + systemadministratör; admin hanterar användare (tekniker/arbetsledare/admin) via UI; all ärendedata organisationsisolerad i API:t; roll + organisation i JWT:n. Arbetsledarvy (/felsokning/oversikt): organisationens alla ärenden med status, deltagande tekniker och statistik (pågående/avslutade/ledtid) — härlett ur händelseloggen; ärenden kan hämtas till enheten med konfliktfri flätning. Ansvarig tekniker per ärende härleds ur loggen (skapare → överlämning → omfördelning) och arbetsledaren kan omfördela pågående ärenden — loggat som den organisationsinterna händelsen ansvarig_satt, aldrig synlig i kund-/partnerdelningar. Integrationstestat mot riktig Postgres (isolering, rollstyrning, append-only, översiktens behörighet och härledningar).
Backend & synk Databas-migration (supabase/migrations/20260802230000_guidad_felsokning.sql): ärenden + händelser med RLS, append-only även i databasen (inga update/delete-rättigheter). Synklager i klienten: konfliktfri ihopflätning av händelser per id (testad), push av lokala + pull av kollegors händelser var 15:e sekund. Utan inloggning arbetar appen i lokalt läge; status visas i ärendehuvudet.
Metodiker Tre: vibration, elsystem/strömförsörjning (relä-exemplet ur visionen) och generisk — vald automatiskt utifrån felbeskrivningen.
Live Share Skrivskyddad livevy per ärende (/felsokning/dela/:id): status ✔/🔄/, bilder, mätvärdestabell, tidslinje, rekommenderat nästa steg. Uppdateras automatiskt, interna poster filtreras bort. Publik delningssida (/felsokning/delad/:kod) läser via hamta_delat_arende utan inloggning och pollar för liveuppdatering; "Kopiera delningslänk" finns i rapportfliken. Behörighetsnivåer: återkallbara delningslänkar per nivå — kund (det kunddelbara), extern partner (även hypoteser, märkta ej verifierade), intern (full insyn) — med serverstyrd filtrering, hanterade från rapportfliken i självhostat läge.
Dashboard Enligt direktivet: räknare och filter för Alla/Pågående/Klara plus Starta nytt ärende.
Utskrift Kundrapport och Live Share-vy skrivs ut svart på vitt; interaktiva element döljs automatiskt.
Ö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

  • 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.
  • Fabriksverktygs-UI. src/felsokning/ui.tsx — hög kontrast, minst 56 px höga knappar, få val per skärm.

Medvetna avgränsningar

  • QR/streckkod/OCR för objektidentifiering, bildanalys och tillverkarintegrationer ingår inte ännu.