05ed037fe8
- 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!
5.9 KiB
5.9 KiB
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:
- Ingen farlig operation körs omedvetet
- Varje beslut är reproducerbart
- 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)
# 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
- Läs felmeddelandet i CI-loggen
- Reproducera lokalt:
node EOS/regression-suite.mjs manual - Kontrollera om felet är nytt eller existerande
- Om nytt: åtgärda eller dokumentera som Golden Failure
- Om existerande: kontrollera att du inte introducerat regression
Hur lägger jag till en ny policy?
Steg 1: Definiera policyn
// 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
// I EOS/regression-suite.mjs
{ id: 'S-NEW-001', description: 'Test av ny policy', type: 'test', expectedBlocked: true }
Steg 3: Kör regressioner
node EOS/regression-suite.mjs manual
node EOS/run-policy-suite.mjs
Steg 4: Uppdatera dokumentation
- Lägg till i
RUNTIME-CONTRACT.mdunder 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:
- Det representerar ett verkligt fel som inträffat
- Det har reproducerats minst två gånger
- Det kan inte upptäckas av befintliga tester
- När det löses ersätts det av ett svårare fall
Steg
- Identifiera felet genom regressionstestning
- Dokumentera i
EOS/golden-failures.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"
}
- Lägg till testet i regressionssviten
- Uppdatera
REASONING-GATE.md
Hur replayar jag ett beslut?
Steg 1: Hitta beslutet
# Lista alla beslut
node EOS/decision-replay.mjs list
# Sök efter specifikt beslut
node EOS/decision-replay.mjs search "beskrivning"
Steg 2: Replay
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