[DTP-Worker] Sprint 8 · Générateur Run-book de déploiement VPS unifié (7 phases · 20 modules gated · couverture bijective vs CI) (DevOps · roadmap L73)
Agrégateur de méta-niveau au-dessus du run-book RBAC : ordonne le déploiement VPS de TOUS les livrables gated en 7 phases (Prérequis → DocTypes → RBAC → Workflow/métier → Frontend → Contenu → Vérification QA), avec graphe de dépendances inter-phases acyclique et confirmations préalables sourcées. Anti-invention (#6) : périmètre dérivé du CI (parse_ci réutilisé), couverture bijective module→phase (un module gated non planifié OU un module planifié non gated → refus), SoD (auto-exclusion), zéro chiffre métier (confirmations sourcées via audit_5d D1.1/D1.2/D1.3/D2.3 + endpoint OTOIA). Vérifs : 29/29 tests module (dont 14 injections négatives) · audit_4big PASS 20/20 à 100 · régression run 20/20 suites · 503 tests · 0 échec · gate CI local vert. CI job devops-deploy-runbook-tests + gate ; enregistrement audit_4big (19→20) ; plan régression régénéré (19→20 suites). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
"audit": "OTO QA · Audit 4Big Qualité",
|
||||
"version": "1.0",
|
||||
"verdict": "PASS",
|
||||
"modules_audited": 19,
|
||||
"modules_audited": 20,
|
||||
"min_score": 100,
|
||||
"pass_score": 95,
|
||||
"coverage_ok": true,
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"pass_score": 95,
|
||||
"coverage": {
|
||||
"ok": true,
|
||||
"ci_modules_count": 19,
|
||||
"registry_modules_count": 19,
|
||||
"ci_modules_count": 20,
|
||||
"registry_modules_count": 20,
|
||||
"missing_in_registry": [],
|
||||
"missing_in_ci": [],
|
||||
"not_in_gate": [],
|
||||
@@ -760,6 +760,48 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "devops-deploy-runbook",
|
||||
"path": "devops/deploy_runbook",
|
||||
"sprint": "S8",
|
||||
"archetype": "generator",
|
||||
"applicable_weight": 100,
|
||||
"earned_weight": 100,
|
||||
"score": 100,
|
||||
"verdict": "PASS",
|
||||
"checks": [
|
||||
{
|
||||
"criterion": "DOC",
|
||||
"weight": 20,
|
||||
"passed": true,
|
||||
"evidence": "README.md (5414 octets)"
|
||||
},
|
||||
{
|
||||
"criterion": "CONTRAT",
|
||||
"weight": 20,
|
||||
"passed": true,
|
||||
"evidence": "deploy.schema.json"
|
||||
},
|
||||
{
|
||||
"criterion": "TESTS",
|
||||
"weight": 25,
|
||||
"passed": true,
|
||||
"evidence": "29 méthodes test_* dans 1 fichier(s) (seuil 8)"
|
||||
},
|
||||
{
|
||||
"criterion": "CLI",
|
||||
"weight": 15,
|
||||
"passed": true,
|
||||
"evidence": "deploy_runbook_gen.py (argparse + __main__)"
|
||||
},
|
||||
{
|
||||
"criterion": "HANDOFF",
|
||||
"weight": 20,
|
||||
"passed": true,
|
||||
"evidence": "MANIFEST + 1 artefact(s) JSON valides"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "qa-regression",
|
||||
"path": "qa/regression",
|
||||
@@ -798,14 +840,14 @@
|
||||
"criterion": "HANDOFF",
|
||||
"weight": 20,
|
||||
"passed": true,
|
||||
"evidence": "MANIFEST + 1 artefact(s) JSON valides"
|
||||
"evidence": "MANIFEST + 2 artefact(s) JSON valides"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"modules": 19,
|
||||
"pass": 19,
|
||||
"modules": 20,
|
||||
"pass": 20,
|
||||
"fail": 0,
|
||||
"min_score": 100,
|
||||
"max_score": 100,
|
||||
@@ -815,6 +857,6 @@
|
||||
"notes": [
|
||||
"Audit de MÉTA-NIVEAU : chaque note de module est CALCULÉE depuis des faits du dépôt (présence README/schéma, nombre de méthodes test_*, entrypoint CLI, intégrité out/) — jamais saisie à la main (#6).",
|
||||
"Un critère non applicable à l'archétype d'un module est EXCLU du dénominateur (pas de pénalité pour un hand-off qu'un module de contrat n'a jamais vocation à produire) ; les poids restants sont renormalisés à 100.",
|
||||
"Le verdict global est PASS si et seulement si les 18 modules atteignent ≥ 95/100 ET la couverture == 100% des livrables gated (hors auditeur)."
|
||||
"Le verdict global est PASS si et seulement si TOUS les modules du registre atteignent ≥ 95/100 ET la couverture == 100% des livrables gated (hors auditeur)."
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user