Files
Claude 28bfc29a5c Betalarspåret: beviskraven följer den som betalar — ALVA 3.6
Garantistandarden FGS-1.0 (fabriksgaranti, vagnskadegaranti,
försäkring, extern garantigivare, leasing/fleet, goodwill) inarbetad i
regelmotorn och bokförd i docs/GARANTISTANDARD-FGS.md (ALVA-DOC-0011):
vad som redan var uppfyllt, vad som införs nu, och den ärliga gränsen —
ODIS/DISS/SAGA2 är tillverkarsystem; ALVA bär bevispaketet och
eskaleringsspåret, den ersätter dem inte.

Tre nya händelsetyper i det stängda schemat: betalare (spår, namn,
claim-/skadereferens, godkännande), eskalering (öppnad/besvarad, kanal,
referens) och reservdel (artikelnummer, serienummer, batch, sparad
del). Grinden kräver fastställd betalare för de ärendetyper där någon
annan än kunden betalar, godkännande för goodwill och externa
garantigivare, och spärrar avslut när en eskalering är öppnad utan
dokumenterat svar — matchad per referens. Claim- och skadenummer kan
komma ur betalaren, inte bara ur skannad arbetsorder. Tre nya
ärendetyper med regelpaketskrav: Body damage warranty, Extended
warranty, Leasing or fleet. Betalare, eskalering och reservdel är
interna i delningsfiltret — kunden ser åtgärden, inte förhandlingen.

Fyndet på vägen, åtgärdat med regressionstest: serverns ärendetypskrav
var en tyst no-op. Servern matade den distribuerade paketformen
(arendetypRegler) in i en grindfunktion som bara läste den slimmade
(arendetyper[typ].krav) — garanti- och försäkringskraven upprätthölls
bara som råd i klienten. C-2-mönstret, återuppstånden genom ett
filformat. Grinden läser nu båda formerna, och regressionstestet låser
att den distribuerade formen spärrar på servern.

UI: betalar- och eskaleringspaneler i ärendevyn (panelen visas när
ärendetypen kräver den), grindnyckeln grind.eskalering på alla tio
språken, regelpaket 2.1 speglat klient/server med likhetstestet intakt.

781 enhetstester, genomgång 4/4 inom budget, portalspärr,
integrationstest mot Postgres, typkontroll, lint på baslinjen,
artefaktmätning och språkrunda gröna.

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

183 lines
5.8 KiB
JSON

{
"version": "2.1",
"beskrivning": "ECM Knowledge Library — serverdistribuerat regelpaket. Uppdateras utan appändring: redigera filen (eller montera en ConfigMap över den i klustret) och starta om tjänsten. Klienten hämtar paketet vid inloggning och faller tillbaka till sitt inbyggda standardpaket offline.",
"arendetypRegler": {
"Warranty": [
{
"id": "garanti_miltal",
"rubrik": "Mileage documented",
"krav": "miltal",
"detaljVidBrist": "Warranty cases require a documented odometer reading."
},
{
"id": "garanti_historik",
"rubrik": "Service history checked",
"krav": "historik",
"detaljVidBrist": "Warranty cases require a checked service history."
},
{
"id": "garanti_claim",
"rubrik": "Claim or warranty number recorded",
"krav": "claim",
"detaljVidBrist": "State the claim or warranty number — from the scanned work order or the recorded payer."
},
{
"id": "garanti_betalare",
"rubrik": "Payer established",
"krav": "betalare",
"detaljVidBrist": "Record the payer — track, name and reference — before closing."
}
],
"Goodwill": [
{
"id": "goodwill_miltal",
"rubrik": "Mileage documented",
"krav": "miltal",
"detaljVidBrist": "Goodwill cases require a documented odometer reading."
},
{
"id": "goodwill_historik",
"rubrik": "Service history checked",
"krav": "historik",
"detaljVidBrist": "Goodwill cases require a checked service history."
},
{
"id": "goodwill_godkannande",
"rubrik": "Grantor's approval recorded",
"krav": "godkannande",
"detaljVidBrist": "Goodwill requires the grantor's documented approval before closing."
}
],
"Insurance": [
{
"id": "forsakring_skadenummer",
"rubrik": "Claim number recorded",
"krav": "skadenummer",
"detaljVidBrist": "Insurance cases require a claim number (read from the work order)."
},
{
"id": "forsakring_bildbevis",
"rubrik": "Photographic evidence present",
"krav": "foto",
"detaljVidBrist": "Insurance cases require photographic documentation."
},
{
"id": "forsakring_betalare",
"rubrik": "Payer established",
"krav": "betalare",
"detaljVidBrist": "Record the insurer — name and claim reference — before closing."
}
],
"Complaint": [
{
"id": "reklamation_historik",
"rubrik": "History and previous attempts checked",
"krav": "historik",
"detaljVidBrist": "Complaint cases require a checked history (previous repairs and attempts)."
}
],
"Used-vehicle warranty": [
{
"id": "begagnat_miltal",
"rubrik": "Mileage documented",
"krav": "miltal",
"detaljVidBrist": "Used-vehicle warranty cases require a documented odometer reading."
}
],
"Body damage warranty": [
{
"id": "vagnskada_betalare",
"rubrik": "Payer established",
"krav": "betalare",
"detaljVidBrist": "Record the warranty administrator — name and reference — before closing."
},
{
"id": "vagnskada_miltal",
"rubrik": "Mileage documented",
"krav": "miltal",
"detaljVidBrist": "Body damage warranty cases require a documented odometer reading."
},
{
"id": "vagnskada_bildbevis",
"rubrik": "Photographic evidence present",
"krav": "foto",
"detaljVidBrist": "Body damage warranty cases require photographs of the damage."
}
],
"Extended warranty": [
{
"id": "forlangd_betalare",
"rubrik": "Payer established",
"krav": "betalare",
"detaljVidBrist": "Record the warranty provider — name and reference — before closing."
},
{
"id": "forlangd_claim",
"rubrik": "Claim authorization recorded",
"krav": "claim",
"detaljVidBrist": "External warranties require a claim or authorization number before repair is reimbursed."
},
{
"id": "forlangd_miltal",
"rubrik": "Mileage documented",
"krav": "miltal",
"detaljVidBrist": "Extended warranty cases require a documented odometer reading."
},
{
"id": "forlangd_historik",
"rubrik": "Service history checked",
"krav": "historik",
"detaljVidBrist": "Extended warranty terms often condition cover on service history — check and document it."
}
],
"Leasing or fleet": [
{
"id": "leasing_betalare",
"rubrik": "Payer established",
"krav": "betalare",
"detaljVidBrist": "Record the leasing or fleet company — name and reference — before closing."
},
{
"id": "leasing_miltal",
"rubrik": "Mileage documented",
"krav": "miltal",
"detaljVidBrist": "Leasing and fleet cases require a documented odometer reading."
}
]
},
"undantagsorsaker": [
"The component is inaccessible",
"The vehicle cannot be lifted safely",
"The customer declined disassembly",
"Poor visibility or access",
"Equipment not available"
],
"orsakskategorier": [
"Normal wear",
"Age",
"Distance travelled",
"Material fatigue",
"Manufacturing defect",
"Inadequate maintenance",
"Faulty previous repair",
"External influence",
"Corrosion",
"Overheating",
"Contamination",
"Improper use",
"Modification",
"Accident or damage",
"Unknown cause"
],
"underlagskallor": [
"Foto",
"Video",
"Measurement result",
"Diagnostic readout",
"Previous history",
"Service history",
"Technical documentation",
"Direct observation"
]
}