[DTP-Worker] Sprint 8 · buffer L75 · Domaine DevOps : le run-book de déploiement VPS (devops/deploy_runbook) affichait « 7 phases » (fiche agent devops, ×2 transcriptions) et « 7 confirmations préalables » (README du module) — deux nombres data-derived transcrits À LA MAIN dans DEUX docs sans AUCUN gate, alors que devops/deploy_runbook/out/MANIFEST.json (byte-gaté par check_artifacts, counts.phases=len(graph.phase_order) · counts.confirmations=len(confirmations_ouvertes), recomptés à chaque build) fait autorité. Ajouter une phase au graphe OU une confirmation au catalogue ferait dériver les docs en silence — piège AVEUGLE : phases ET confirmations valent tous deux 7 aujourd'hui, un gate qui n'en recompterait qu'UN serait aveugle à la dérive de l'autre → nouveau bloc dans check_readme_claims recomputant CHAQUE nombre depuis SON PROPRE champ du MANIFEST et exigeant l'égalité avec les docs. Le « 22 » (suites gated de la fiche) volontairement écarté (sémantique suites CI ≠ counts.modules qui s'auto-exclut). Bonus : l'énumération snake_case des confirmations du README doit être l'ensemble EXACT de confirmations_ouvertes (mord l'échange 1↔1 d'un nom, aveugle au compte). Cohérences croisées counts.phases==|phase_order| · counts.confirmations==|confirmations_ouvertes| (5 morsures vérifiées : dérive phases 1re transcription · dérive 2e transcription captée là où la 1re resterait 7 · dérive confirmations count · swap d'un nom captée là où le count reste 7 · claim confirmations disparu = red)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,67 @@
|
||||
# Activity Log · 2026-07-31 · Claude Code DTP
|
||||
|
||||
## Session `20260731_113048` · Buffer S8 · Domaine DevOps : le run-book de déploiement VPS (`devops/deploy_runbook`) affichait « **7 phases** » (fiche agent devops, ×2) et « **7 confirmations** préalables » (README du module) — deux nombres data-derived transcrits À LA MAIN dans DEUX docs sans AUCUN gate
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer L75** (DevOps CI/CD · QA régression). Roadmap
|
||||
fonctionnellement close ; poursuite de la série anti-dérive (CLAUDE.md #6). Les
|
||||
sessions précédentes ont gaté les domaines tests, portails, RBAC (3 volets), SEO,
|
||||
CRM (pipeline vente), mobile, Legal (CONFOTUR) et QA (audit 5D). Cette session cible
|
||||
le **domaine DevOps** — le **run-book de déploiement VPS**, dont deux comptes
|
||||
data-derived cités dans deux docs pointaient l'artefact généré sans être recomputés
|
||||
par aucun gate.
|
||||
|
||||
### Défaut trouvé — comptes ungated, transcrits dans DEUX docs
|
||||
|
||||
- **`03_agents/devops/AGENT.md:25`** : « graphe de **7 phases ordonnées** », puis
|
||||
**ligne 88** « exécute les **7 phases** sur le VPS » — DEUX transcriptions du
|
||||
nombre de phases dans la même fiche.
|
||||
- **`05_deliverables_mvp/devops/deploy_runbook/README.md:94`** : « renseigner les
|
||||
**7 confirmations** » + énumération de ces 7 confirmations (lignes 55-58).
|
||||
- L'artefact source est byte-gaté par `check_artifacts` :
|
||||
`devops/deploy_runbook/out/MANIFEST.json` recompte `counts.phases`
|
||||
(= `len(graph.phase_order)`) et `counts.confirmations` (= `len(confirmations_ouvertes)`)
|
||||
à chaque build.
|
||||
- Aucun gate ne comparait la VALEUR écrite à l'artefact : ajouter une phase au graphe
|
||||
OU une confirmation au catalogue ferait dériver les docs en silence. **Piège
|
||||
aveugle** caractéristique : phases ET confirmations valent **tous deux 7**
|
||||
aujourd'hui — un gate qui n'en recompterait qu'un serait aveugle à la dérive de
|
||||
l'autre.
|
||||
|
||||
**Nouveau bloc dans `ci/check_readme_claims.sh`** : recompute **chaque** nombre
|
||||
depuis **son propre** champ du MANIFEST (jamais figé ici · zéro duplication du
|
||||
compteur du générateur #5) et exige l'égalité avec les docs. Le **22** (« suites
|
||||
gated » de la fiche devops) est **volontairement écarté** : sa sémantique (suites
|
||||
CI) ≠ `counts.modules` du run-book (qui s'auto-exclut) → pas de transcription propre,
|
||||
pas de gate hasardeux. Bonus anti-dérive : l'**énumération** des confirmations du
|
||||
README (tokens `snake_case`) doit être l'ensemble **exact** de
|
||||
`confirmations_ouvertes` — mord l'**échange** d'un nom là où le seul compte reste
|
||||
aveugle. Cohérences croisées : `counts.phases == len(phase_order)` ·
|
||||
`counts.confirmations == len(confirmations_ouvertes)`.
|
||||
|
||||
### Preuve (5 morsures vérifiées + restauration verte)
|
||||
|
||||
| Injection | Résultat |
|
||||
|---|---|
|
||||
| fiche devops phases 7→8 (1re transcription) | ✗ dit 8 MAIS artefact 7 · exit 1 |
|
||||
| fiche devops 2e transcription « exécute les 7 »→6 (aveugle si 1re reste 7) | ✗ dit 6 MAIS artefact 7 · exit 1 |
|
||||
| README confirmations 7→8 (count) | ✗ dit 8 MAIS artefact 7 · exit 1 |
|
||||
| README swap d'un nom de confirmation (count reste 7, aveugle au compte) | ✗ énumération ≠ confirmations_ouvertes · exit 1 |
|
||||
| README claim confirmations supprimé (reformulé) | ✗ claim INTROUVABLE · exit 1 |
|
||||
| restauré | ✓ 7 phases + 7 confirmations + énumération == artefacts · exit 0 |
|
||||
|
||||
- **`ci/README.md`** — surface ajoutée à la table récap du pipeline + paragraphe
|
||||
descriptif (classe « run-book de déploiement VPS »).
|
||||
|
||||
Suite CI complète re-verte : `check_artifacts` · `check_readme_claims` ·
|
||||
`check_docs` · `check_regression` · `check_ci_integrity` (gates statiques
|
||||
verrouillés) · `guard_constraints` · `validate_json`.
|
||||
|
||||
**Hors périmètre worker (VPS · #8)** : néant (gate bash/python3 stdlib en-repo).
|
||||
|
||||
**Auto-score 4Big** : 96/100.
|
||||
|
||||
---
|
||||
|
||||
## Session `20260731_103044` · Buffer S8 · Domaine Legal : la synthèse du DocType « CONFOTUR Application » (« 18 champs · 14 de donnée · 4 sections · 3 rôles · 2 évènements de dépôt ») était transcrite À LA MAIN dans DEUX docs (README du module legal/confotur + fiche agent onapi_legal) sans AUCUN gate — ajouter un champ/section/rôle au spec ferait dériver les deux docs en silence
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer L75** (DevOps CI/CD · QA régression). Roadmap
|
||||
|
||||
Reference in New Issue
Block a user