Files
boc/EOS/readiness-report-v2.json
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

384 lines
9.4 KiB
JSON

{
"timestamp": "2026-07-01T05:35:55.585Z",
"overall": 14,
"totalBlockers": 12,
"areas": [
{
"id": "git",
"name": "Git",
"weight": 1,
"target": 90,
"score": 33,
"gap": 57,
"measures": [
{
"name": "Ocommitade filer",
"score": 0,
"evidence": "774 ocommitade filer",
"blocker": true,
"action": "Commita eller .gitignore 774 filer"
},
{
"name": "Git-konfiguration",
"score": 100,
"evidence": "Git-repo hittat",
"blocker": false,
"action": null
},
{
"name": "Branch-skydd",
"score": 0,
"evidence": "Branch-skydd ej verifierat",
"blocker": true,
"action": "Konfigurera branch-skydd på GitHub/GitLab"
}
],
"blockers": [
{
"measure": "Ocommitade filer",
"evidence": "774 ocommitade filer",
"action": "Commita eller .gitignore 774 filer"
},
{
"measure": "Branch-skydd",
"evidence": "Branch-skydd ej verifierat",
"action": "Konfigurera branch-skydd på GitHub/GitLab"
}
],
"actions": [
"Commita eller .gitignore 774 filer",
"Konfigurera branch-skydd på GitHub/GitLab"
],
"status": "CRITICAL"
},
{
"id": "cicd",
"name": "CI/CD",
"weight": 1,
"target": 90,
"score": 0,
"gap": 90,
"measures": [
{
"name": "CI/CD pipeline",
"score": 0,
"evidence": "Ingen CI/CD",
"blocker": true,
"action": "Sätt upp GitHub Actions eller GitLab CI"
},
{
"name": "Automatiserade tester i pipeline",
"score": 0,
"evidence": "Ej verifierat",
"blocker": true,
"action": "Lägg till test-steg i CI-pipeline"
}
],
"blockers": [
{
"measure": "CI/CD pipeline",
"evidence": "Ingen CI/CD",
"action": "Sätt upp GitHub Actions eller GitLab CI"
},
{
"measure": "Automatiserade tester i pipeline",
"evidence": "Ej verifierat",
"action": "Lägg till test-steg i CI-pipeline"
}
],
"actions": [
"Sätt upp GitHub Actions eller GitLab CI",
"Lägg till test-steg i CI-pipeline"
],
"status": "CRITICAL"
},
{
"id": "infrastructure",
"name": "Infrastructure as Code",
"weight": 1,
"target": 80,
"score": 0,
"gap": 80,
"measures": [
{
"name": "IaC-verktyg",
"score": 0,
"evidence": "Ingen IaC",
"blocker": true,
"action": "Skapa Terraform/CloudFormation för AWS-resurser"
},
{
"name": "Miljökonfiguration",
"score": 0,
"evidence": "Ingen .env.example",
"blocker": false,
"action": "Skapa .env.example"
}
],
"blockers": [
{
"measure": "IaC-verktyg",
"evidence": "Ingen IaC",
"action": "Skapa Terraform/CloudFormation för AWS-resurser"
}
],
"actions": [
"Skapa Terraform/CloudFormation för AWS-resurser",
"Skapa .env.example"
],
"status": "CRITICAL"
},
{
"id": "api-contracts",
"name": "API Contracts",
"weight": 0.8,
"target": 80,
"score": 0,
"gap": 80,
"measures": [
{
"name": "OpenAPI-spec",
"score": 0,
"evidence": "Ingen OpenAPI",
"blocker": true,
"action": "Skapa OpenAPI-spec för alla endpoints"
},
{
"name": "API-dokumentation",
"score": 0,
"evidence": "Ingen API-dokumentation",
"blocker": false,
"action": "Skapa API-dokumentation"
}
],
"blockers": [
{
"measure": "OpenAPI-spec",
"evidence": "Ingen OpenAPI",
"action": "Skapa OpenAPI-spec för alla endpoints"
}
],
"actions": [
"Skapa OpenAPI-spec för alla endpoints",
"Skapa API-dokumentation"
],
"status": "CRITICAL"
},
{
"id": "database",
"name": "Database Migrations",
"weight": 1,
"target": 90,
"score": 0,
"gap": 90,
"measures": [
{
"name": "Migrationer",
"score": 0,
"evidence": "Inga migrationer",
"blocker": true,
"action": "Sätt upp Prisma eller liknande migrationsverktyg"
},
{
"name": "Migration i CI",
"score": 0,
"evidence": "Ej verifierat",
"blocker": true,
"action": "Lägg till migration-steg i CI-pipeline"
}
],
"blockers": [
{
"measure": "Migrationer",
"evidence": "Inga migrationer",
"action": "Sätt upp Prisma eller liknande migrationsverktyg"
},
{
"measure": "Migration i CI",
"evidence": "Ej verifierat",
"action": "Lägg till migration-steg i CI-pipeline"
}
],
"actions": [
"Sätt upp Prisma eller liknande migrationsverktyg",
"Lägg till migration-steg i CI-pipeline"
],
"status": "CRITICAL"
},
{
"id": "testing",
"name": "Testing",
"weight": 1,
"target": 80,
"score": 0,
"gap": 80,
"measures": [
{
"name": "Tester",
"score": 0,
"evidence": "Inga tester",
"blocker": true,
"action": "Skapa första testerna"
},
{
"name": "Test-konfiguration",
"score": 0,
"evidence": "Ingen test-config",
"blocker": true,
"action": "Konfigurera Jest/Vitest"
}
],
"blockers": [
{
"measure": "Tester",
"evidence": "Inga tester",
"action": "Skapa första testerna"
},
{
"measure": "Test-konfiguration",
"evidence": "Ingen test-config",
"action": "Konfigurera Jest/Vitest"
}
],
"actions": [
"Skapa första testerna",
"Konfigurera Jest/Vitest"
],
"status": "CRITICAL"
},
{
"id": "observability",
"name": "Observability",
"weight": 0.8,
"target": 70,
"score": 0,
"gap": 70,
"measures": [
{
"name": "Loggning",
"score": 0,
"evidence": "Ingen logger",
"blocker": false,
"action": "Skapa central logger"
},
{
"name": "Health checks",
"score": 0,
"evidence": "Ingen health endpoint",
"blocker": false,
"action": "Skapa /health endpoint"
}
],
"blockers": [],
"actions": [
"Skapa central logger",
"Skapa /health endpoint"
],
"status": "CRITICAL"
},
{
"id": "backup",
"name": "Backup & Rollback",
"weight": 0.9,
"target": 80,
"score": 0,
"gap": 80,
"measures": [
{
"name": "Backup-procedur",
"score": 0,
"evidence": "Inget backup-script",
"blocker": true,
"action": "Skapa backup-script för databas"
},
{
"name": "Rollback-procedur",
"score": 0,
"evidence": "Inget rollback-script",
"blocker": true,
"action": "Skapa rollback-script"
}
],
"blockers": [
{
"measure": "Backup-procedur",
"evidence": "Inget backup-script",
"action": "Skapa backup-script för databas"
},
{
"measure": "Rollback-procedur",
"evidence": "Inget rollback-script",
"action": "Skapa rollback-script"
}
],
"actions": [
"Skapa backup-script för databas",
"Skapa rollback-script"
],
"status": "CRITICAL"
},
{
"id": "security",
"name": "Security",
"weight": 0.9,
"target": 70,
"score": 0,
"gap": 70,
"measures": [
{
"name": "Dependency scanning",
"score": 0,
"evidence": "Ej verifierat",
"blocker": false,
"action": "Lägg till npm audit i CI"
},
{
"name": "Secret-hantering",
"score": 0,
"evidence": "Ingen secret-hantering",
"blocker": false,
"action": "Använd AWS Secrets Manager eller liknande"
}
],
"blockers": [],
"actions": [
"Lägg till npm audit i CI",
"Använd AWS Secrets Manager eller liknande"
],
"status": "CRITICAL"
},
{
"id": "agent-safety",
"name": "Agent Safety",
"weight": 1,
"target": 100,
"score": 100,
"gap": 0,
"measures": [
{
"name": "EOS-kontrakt",
"score": 100,
"evidence": "EOS-kontrakt hittat",
"blocker": false,
"action": null
},
{
"name": "Immutable Truth",
"score": 100,
"evidence": "Immutable Truth hittad",
"blocker": false,
"action": null
}
],
"blockers": [],
"actions": [],
"status": "READY"
}
],
"thresholds": {
"critical": 60,
"warning": 80,
"ready": 90
},
"status": "CRITICAL"
}