# Engineering Policy E-001 — Versionering och spårbarhet **Status:** Engineering Policy. Gäller oavsett verktyg eller miljö. --- ## Princip > Ingen ändring av kod, konfiguration eller infrastruktur får göras utanför versionshantering. Varje förändring ska kunna spåras till: > - ett Change Request (CR-ID), > - en Git-commit, > - en granskning (när tillämpligt), > - och en reproducerbar version av källkoden. --- ## Tillåtet | Praktik | Krav | |---------|------| | All kod i Git-repositorier | Obligatoriskt | | Varje commit refererar till CR-ID | Obligatoriskt | | Branch → commit → merge | Enligt arbetsprocess | | Releases kopplas till commits | Reproducerbarhet | ## Förbjudet | Praktik | Konsekvens | |---------|-----------| | Direkt redigering på produktionsservrar | Bryter spårbarhet | | `nano`/`vim` av produktionskod | Skapar "snowflake"-server | | Uppladdning utan Git-motsvarighet | Obestyrbart tillstånd | --- ## Undantag — Akuta incidenter Tillåtet endast om: 1. Incidenten dokumenteras 2. Hotfixen omedelbart förs tillbaka till Git 3. Ordinarie pipeline återställs efter incidenten **Inga "snowflake"-servrar. Någonsin.** --- ## Sanningskälla > **Git är system of record för all kod. Driftmiljön är en deployment-target, aldrig den primära sanningskällan.** --- ## Koppling till EP-1.0 E-001 och EP-1.0 kompletterar varandra utan att överlappa: | Fråga | Svar | |-------|------| | *Hur får förändringar ske?* | **E-001** — via Git, med spårbarhet till CR-ID och commit | | *Hur får observationer samlas in och bevaras?* | **EP-1.0** — via append-only ledger, frysning och hash | ### Artefakttyper och integritetsmekanismer | Artefakt | Primär integritetsmekanism | Syfte | |----------|---------------------------|-------| | Kod, konfiguration, IaC | Git-historik | Versionshantering | | Ledger (`ledger.jsonl`) | Freeze + SHA256 + append-only | Bevara observationer | | Härledda KPI:er | Härledbara från ledger | Reproducerbar analys | | Metadata | Versionshanteras tillsammans med experimentet | Reproducerbar kontext | En fryst ledger **kan** ligga i Git för distribution och backup. Git är då inte beviset på att observationerna är oförändrade — det är hashen och den definierade freeze-punkten. --- *E-001: Hur förändringar sker. EP-1.0: Hur observationer bevaras.*