[DTP-Worker] Sprint 8 · buffer L75 · Domaine Démo : le run-sheet de pitch (demo/scenarios) affichait « 10 modules cités » dans le diagramme d'architecture de son README — un compte data-derived transcrit À LA MAIN sans AUCUN gate, alors que demo/scenarios/out/MANIFEST.json (byte-gaté par check_artifacts, counts.modules_cites_uniques = |union des modules_cites des deux scénarios, résolus par pointeur RFC 6901|, recompté à chaque build) fait autorité. Ajouter un beat qui cite un module encore non tissé (11) OU retirer la dernière citation d'un module d'un scénario (9) ferait dériver le diagramme en silence pendant que l'artefact dit autre chose — « vert trompeur » qu'aucune suite tests/ (qui teste des FONCTIONS, pas la prose du README) n'attrape → nouveau bloc dans check_readme_claims recomputant le nombre depuis counts.modules_cites_uniques et exigeant l'égalité avec le README. Cohérence croisée en bonus : counts.modules_cites_uniques == |modules_cites| (liste dédupliquée du manifeste, elle-même sans doublon) — mord un compteur désynchronisé de sa propre liste. Un claim absent échoue AUSSI (2 morsures vérifiées : dérive README 10→11 · claim disparu = red ; restauré = green). ci/README.md (table + détail) mis à jour · 7 gates re-verts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-07-31 12:05:22 +00:00
parent 09ab940321
commit 97a7b25e38
3 changed files with 116 additions and 1 deletions
+53
View File
@@ -1,5 +1,58 @@
# Activity Log · 2026-07-31 · Claude Code DTP
## Session `20260731_120054` · Buffer S8 · Domaine Démo : le run-sheet de pitch (`demo/scenarios`) affichait « **10 modules cités** » dans le diagramme d'architecture de son README — un compte data-derived transcrit À LA MAIN 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), QA (audit 5D) et DevOps (run-book). Cette
session cible le **domaine Démo** — le **run-sheet de pitch**, dont un compte
data-derived cité dans le README pointait l'artefact généré sans être recomputé par
aucun gate.
### Défaut trouvé — compte ungated, transcrit dans le diagramme du README
- **`05_deliverables_mvp/demo/scenarios/README.md:23`** : diagramme d'architecture →
« `scenario_spec.json … out/ des modules livrés (`**`10 modules cités`**`)` ».
- L'artefact source est byte-gaté par `check_artifacts` :
`demo/scenarios/out/MANIFEST.json` recompte `counts.modules_cites_uniques`
(= |union des `modules_cites` des deux scénarios, résolus par pointeur RFC 6901|) à
chaque build. Le module ne saisit **aucune** valeur métier ; il résout depuis le
disque les hand-off amont que les beats citent.
- Aucun gate ne comparait la VALEUR écrite à l'artefact : ajouter un beat qui cite un
module encore non tissé (**11**) ou retirer la dernière citation d'un module d'un
scénario (**9**) ferait dériver le diagramme en silence — « vert trompeur » qu'aucune
suite `tests/` (qui teste des FONCTIONS, pas la prose du README) n'attrape.
- **État courant** : **aucun nombre périmé** — 10 recoupe MANIFEST exactement
(anti-invention #6 : rien à réécrire). Le défaut est la **surface ungated**.
**Nouveau bloc dans `ci/check_readme_claims.sh`** : recompute le nombre depuis
`counts.modules_cites_uniques` (jamais figé ici · zéro duplication du compteur du
générateur #5) et exige l'égalité avec le README. Cohérence croisée en bonus :
`counts.modules_cites_uniques == |modules_cites|` (liste dédupliquée du manifeste,
elle-même sans doublon) — mord un compteur désynchronisé de sa propre liste. Un claim
absent échoue AUSSI (traçabilité).
### Preuve (2 morsures vérifiées + restauration verte)
| Injection | Résultat |
|---|---|
| README drift `10→11` | ✗ dit 11 modules cités MAIS artefact 10 · exit 1 |
| README claim supprimé (reformulé) | ✗ claim « (N modules cités) » INTROUVABLE · exit 1 |
| restauré | ✓ 10 modules cités == artefact · exit 0 |
- **`ci/README.md`** — surface ajoutée à la table récap du pipeline + paragraphe
descriptif (classe « run-sheet de démo »).
Suite CI complète re-verte : `guard_constraints` · `validate_json` · `check_docs` ·
`check_artifacts` · `check_regression` · `check_ci_integrity` · `check_readme_claims`.
**Hors périmètre worker (VPS · #8)** : néant (gate bash/python3 stdlib en-repo).
**Auto-score 4Big** : 96/100.
---
## 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