{
 "protocol_version": 1,
 "run_at": "2026-11-15T14:00:01.648842+00:00",
 "environment": {
  "python": "3.13.18",
  "platform": "Linux-6.18.44-fc-v470-x86_64-with-glibc2.39",
  "db": "sqlite (temp)",
  "mode": "in-process TestClient, séquentiel, sans réseau"
 },
 "shield_decision_ms": {
  "n": 300,
  "p50": 8.54,
  "p95": 12.02,
  "p99": 14.54,
  "mean": 9.18,
  "target_p95": 300,
  "meets_target": true
 },
 "presign_gate_ms": {
  "n": 100,
  "p50": 8.51,
  "p95": 11.47,
  "p99": 18.59,
  "target_p95": 300,
  "meets_target": true
 },
 "ingestion": {
  "events": 1000,
  "stored": 1000,
  "seconds_total_including_correlation": 3.65,
  "events_per_second": 274,
  "incidents_created": 200,
  "target_events_per_second": 1000,
  "meets_target": false
 },
 "correlation_detection_latency_s": {
  "note": "premier événement → incident (inclut l'horodatage simulé des événements)",
  "n": 204,
  "median": 218.7
 },
 "digital_twin_synthetic": {
  "dataset": 2000,
  "detection_rate": 0.803,
  "false_positive_rate": 0.014,
  "missed": 46,
  "target_fp_max": 0.05,
  "target_detection_min": 0.8,
  "meets_target": true,
  "caveat": "jeu synthétique étiqueté : ne prédit pas le taux réel sur des données client"
 },
 "crisis_coverage": {
  "CRISIS_ADMIN_COMPROMISE": {
   "coverage_pct": 100,
   "rules_fired": [
    "R-CRED",
    "R-PRIV"
   ],
   "gaps": []
  },
  "CRISIS_API_KEY_LEAK": {
   "coverage_pct": 100,
   "rules_fired": [
    "R-BURST",
    "R-PRIV"
   ],
   "gaps": []
  },
  "CRISIS_FRAUD_WITHDRAWAL_CHAIN": {
   "coverage_pct": 100,
   "rules_fired": [
    "R-BURST",
    "R-OUTFLOW",
    "R-SIGN"
   ],
   "gaps": []
  },
  "CRISIS_CLOUD_BREACH": {
   "coverage_pct": 100,
   "rules_fired": [
    "R-PRIV"
   ],
   "gaps": []
  }
 },
 "automated_tests": {
  "suites": [
   "tests/test_scenarios.py (A–H)",
   "tests/test_nextgen.py (I–P)",
   "tests/test_feeds.py (Q–T)"
  ],
  "run": "pytest -q"
 },
 "not_measured": [
  "disponibilité",
  "résilience sous panne",
  "latence réseau et PostgreSQL",
  "charge concurrente",
  "taux de faux positifs sur données réelles",
  "temps moyen d'investigation",
  "temps de récupération",
  "coût d'exploitation"
 ]
}