{ "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" }