[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:
Claude Code DTP Worker
2026-07-30 11:41:43 +00:00
parent 4b0752906d
commit 58ed555db0
19 changed files with 1647 additions and 17 deletions
+59
View File
@@ -1,5 +1,64 @@
# Activity Log · 2026-07-30 · Claude Code DTP
## Session `20260730_112734` (session 23)
**Tâche** : **Sprint 8 · DevOps** — Générateur du **Run-book de déploiement VPS
unifié** (roadmap Sprint 8 · DevOps « **Deployment production complet +
monitoring** », L73). Dernier volet Sprint 8 réalisable en-repo ; le déploiement
réel reste hors périmètre worker (#8), mais le **PLAN** ordonné se produit en-repo.
**Gap comblé** : les étapes d'activation VPS de chaque générateur (« Hors
périmètre worker ») étaient **éparpillées dans 12 rapports**, sans ordre
inter-modules ni graphe de dépendances. Aucun artefact ne consolidait l'ordre de
déploiement des 20 livrables gated.
**Décision d'architecture** : agrégateur de **MÉTA-NIVEAU** au-dessus du run-book
RBAC (`rbac/apply_plan`). Il ordonne le déploiement de **TOUS** les livrables
gated en **7 phases** (Prérequis → DocTypes → RBAC → Workflow/métier → Frontend →
Contenu → Vérification QA), chacune avec responsable, rationale, modules assignés,
dépendances inter-phases (graphe acyclique) et confirmations préalables sourcées.
**Anti-invention (cœur · #6)** : périmètre **PROUVÉ** — l'ensemble des modules est
**dérivé du CI** via `q4lib.registry.parse_ci` (réutilisé · zéro duplication · #5)
et mis en correspondance **BIJECTIVE** avec le spec (un module gated non planifié
OU un module planifié non gated → génération refusée) ; la validation **recalcule**
la couverture depuis le CI. **SoD** (ISA 315) : le run-book s'exclut lui-même.
**Zéro chiffre métier** : les paramètres non confirmés restent des **confirmations
sourcées** (owner + source ; reprises des contrôles `audit_5d` D1.1/D1.2/D1.3/D2.3
+ endpoint OTOIA), jamais fabriquées ; un invariant refuse tout champ chiffré.
**Fichiers créés**`05_deliverables_mvp/devops/deploy_runbook/` :
- `deploy_spec.json` (7 phases · `module_phase` des 20 modules · 7 confirmations
sourcées · **0 chiffre**)
- `deploylib/{__init__,deps,builder}.py` (`deps` réutilise validateur Publiciste +
`parse_ci` ; `builder` pur/déterministe)
- `deploy_runbook_gen.py` (CLI `build`/`validate` · **11 familles d'invariants**)
- `deploy.schema.json` (contrat draft-07)
- `out/{deploy_runbook,MANIFEST}.json` (hand-off) · `tests/test_deploy_runbook.py`
(**29 tests** dont 14 injections négatives) · `README.md` · `.gitignore`
**Fichiers modifiés** :
- `.gitea/workflows/ci.yml` : job `devops-deploy-runbook-tests` + ajout au `gate`.
- `qa/audit_4big/` : enregistrement du module (couverture bijective **19 → 20** ·
PASS 20/20 à 100) ; note count-agnostique ; `out/` régénéré.
- `qa/regression/out/` : plan régénéré (**19 → 20 suites**, découverte auto via CI).
**Résultat** : run-book `bijective=true` — **7 phases · 20 modules couverts sans
doublon · 7 confirmations sourcées** · graphe acyclique.
**Vérifs** : 29/29 tests module ; 34/34 audit_4big (PASS 20/20 à 100) ; régression
`run` exhaustive **20/20 suites vertes · 503 tests passés · 0 échec · 0 erreur**
(474 → +29) ; gate CI local vert (guard + JSON + docs + YAML) ; build déterministe.
**Hors périmètre worker (VPS · #8)** : exécuter le plan sur le VPS (modules/DocTypes
custom, imports, Workflows, 7 confirmations, vérifs HTTP + audits desk réel) →
agent DevOps / ERPNext Backend.
**Détail complet** : voir
[`05_deliverables_mvp/daily_reports/2026-07-30-session23.md`](../05_deliverables_mvp/daily_reports/2026-07-30-session23.md).
**Auto-score 4Big** : 96/100.
## Session `20260730_105732` (session 22)
**Tâche** : **Sprint 8 · QA** — Générateur de la **Matrice de régression