Files
boc/EOS/README.md
T
Bernt 05ed037fe8 pilot.landvex.com: HTTPS + Full Stack Verified
- DNS: pilot.landvex.com -> 16.170.83.169
- TLS: Let's Encrypt certificate (expires 2026-09-30)
- Nginx: reverse proxy with SSL termination
- API: https://pilot.landvex.com/api/v1/missions
- UI: https://pilot.landvex.com/
- Upload: POST /api/v1/missions/import (multipart/form-data)

Verified:
 https://pilot.landvex.com/health
 https://pilot.landvex.com/version
 https://pilot.landvex.com/api/v1/missions (list)
 https://pilot.landvex.com/api/v1/missions/:id (get)
 POST /api/v1/missions/import (video upload)
 UI loads with title 'LandveX Intelligence Lab'

Next: Pilot 001 — Break the system!
2026-07-02 17:34:19 +00:00

247 lines
5.9 KiB
Markdown

# EOS — Engineering Operating System
**Version:** 0.9-experimental
**Status:** Policy Layer Release Approved
**Senast uppdaterad:** 2026-07-01
---
## Vad är EOS?
EOS är ett policy-drivet exekveringssystem för AI-agenter. Det garanterar att:
1. **Ingen farlig operation körs omedvetet**
2. **Varje beslut är reproducerbart**
3. **Varje policy är testad och versionerad**
---
## När körs EOS?
### Automatiskt (CI)
| Händelse | Vad som körs |
|----------|-------------|
| PR öppnas | Runtime Regression, Policy Regression, Architecture Drift |
| Push till main | Alla tester + Decision Replay |
| Dagligen 06:00 UTC | Referenskörning för drift-detektering |
| Release | Release Gate (alla kriterier måste passera) |
### Manuellt (lokalt)
```bash
# Kör alla regressionstester
node EOS/regression-suite.mjs manual
# Kör policy-falsification
node EOS/policy-falsification-suite-v6.mjs
# Kör stabilitetstest
node EOS/daily-stability.mjs
# Kontrollera architecture drift
node EOS/architecture-drift.mjs EOS/agent-runtime-v10.mjs
# Kör release gate
node EOS/release-gate.mjs
```
---
## Vad händer när en PR öppnas?
```
PR öppnas
GitHub Actions startar
┌─────────────────┐
│ Runtime Regression │ ← Safety + Behaviour tester
│ Policy Regression │ ← Policy-specifika tester
│ Decision Replay │ ← Reproducerbarhet
│ Golden Failures │ ← Stabilitet av kända fel
│ Architecture Drift │ ← Invariant-verifiering
└─────────────────┘
Alla PASS → Merge tillåten
Någon FAIL → Merge blockerad
```
---
## Varför blockerades min merge?
### Vanliga orsaker
| Fel | Lösning |
|-----|---------|
| `Runtime Regression FAIL` | Kör `node EOS/regression-suite.mjs manual` lokalt |
| `Policy Regression FAIL` | Kör `node EOS/run-policy-suite.mjs` lokalt |
| `Architecture Drift > 0` | Kontrollera att du inte ändrat exekveringsordningen |
| `New Golden Failure` | Dokumentera i `golden-failures.json` |
| `Decision Correctness < 95%` | Granska dina ändringar i Policy Layer |
### Felsökningssteg
1. Läs felmeddelandet i CI-loggen
2. Reproducera lokalt: `node EOS/regression-suite.mjs manual`
3. Kontrollera om felet är nytt eller existerande
4. Om nytt: åtgärda eller dokumentera som Golden Failure
5. Om existerande: kontrollera att du inte introducerat regression
---
## Hur lägger jag till en ny policy?
### Steg 1: Definiera policyn
```javascript
// I EOS/policy-registry.mjs
{
id: 'POL-NEW-001',
name: 'Ny Policy',
description: 'Beskrivning av vad policyn gör',
version: '1.0.0',
status: 'active',
owner: 'team-name',
created: '2026-07-01',
rules: [
{
id: 'POL-NEW-001-R1',
description: 'Konkret regel',
severity: 'CRITICAL',
condition: (context) => { /* logik */ },
action: 'BLOCK'
}
]
}
```
### Steg 2: Lägg till regressionstest
```javascript
// I EOS/regression-suite.mjs
{ id: 'S-NEW-001', description: 'Test av ny policy', type: 'test', expectedBlocked: true }
```
### Steg 3: Kör regressioner
```bash
node EOS/regression-suite.mjs manual
node EOS/run-policy-suite.mjs
```
### Steg 4: Uppdatera dokumentation
- Lägg till i `RUNTIME-CONTRACT.md` under Policy Invariants
- Uppdatera denna README
---
## Hur lägger jag till ett nytt Golden Failure?
### Kriterier för Golden Failure
Ett test kvalificerar sig som Golden Failure om:
1. **Det representerar ett verkligt fel** som inträffat
2. **Det har reproducerats minst två gånger**
3. **Det kan inte upptäckas av befintliga tester**
4. **När det löses ersätts det av ett svårare fall**
### Steg
1. Identifiera felet genom regressionstestning
2. Dokumentera i `EOS/golden-failures.json`:
```json
{
"id": "GF-002",
"name": "Beskrivning av felet",
"firstObserved": "2026-07-01",
"status": "active",
"testCase": { "id": "S-XXX", "description": "..." },
"expectedOperation": "EXPECTED_OP",
"actualOperation": "ACTUAL_OP",
"whyDifficult": "Förklaring av varför felet är svårt",
"resolutionCriteria": "När felet anses löst"
}
```
3. Lägg till testet i regressionssviten
4. Uppdatera `REASONING-GATE.md`
---
## Hur replayar jag ett beslut?
### Steg 1: Hitta beslutet
```bash
# Lista alla beslut
node EOS/decision-replay.mjs list
# Sök efter specifikt beslut
node EOS/decision-replay.mjs search "beskrivning"
```
### Steg 2: Replay
```javascript
import { DecisionReplay } from './decision-replay.mjs';
const replay = new DecisionReplay();
const decision = replay.loadDecision('decision-id');
const result = replay.replay(decision);
console.log('Original:', decision.result);
console.log('Replay:', result);
console.log('Match:', replay.compare(decision, result));
```
---
## Filstruktur
```
EOS/
├── README.md # Denna fil
├── RUNTIME-CONTRACT.md # Kontrakt och invariants
├── REASONING-GATE.md # Inträdeskrav för Reasoning
├── agent-runtime-v10.mjs # Huvudruntime
├── evidence-resolver-v5.mjs # Intent + Evidence
├── evidence-quality.mjs # Kvalitetsmått
├── evidence-weights.mjs # Viktad evidens
├── policy-registry.mjs # Policy-definitioner
├── decision-replay.mjs # Replaysystem
├── architecture-drift.mjs # Drift-detektering
├── release-gate.mjs # Release-verifiering
├── regression-suite.mjs # Regressionstester
├── golden-failures.json # Kända fel
├── ci-config.yml # CI-konfiguration
└── ...
```
---
## Status
| Komponent | Status |
|-----------|--------|
| Policy Layer | ✅ Release Approved |
| Runtime Core | ✅ Release Approved |
| Decision Replay | ✅ Verifierad |
| Architecture Drift | ✅ Detekterad |
| Reasoning Layer | ⏳ Gate R0 PENDING |
---
## Kontakt
- **EOS Team:** erik@wavult.com
- **Ärenden:** Skapa issue i GitHub
---
*Senast uppdaterad: 2026-07-01*