[DTP-Worker 20260802_130548] Sprint 8 · buffer · Compte d'agents : ancrage des 3 surfaces vives de GAP_ANALYSIS_SPRINT1 (dont coche couverture DoD) sur n_agents

Balayage de complétude après cb8d931 (qui a ancré « 13 agents » aux 2 docs de
mandat de tête) : 3ᵉ surface HORS gate = le livrable Sprint 1 GAP_ANALYSIS_SPRINT1.md
(Definition of Done). Retranscrit le compte à 3 endroits vifs — périmètre d'audit
(l.12) · constat global total (l.53, le « 12 » analytique EXCLU) · coche de
couverture DoD (l.214). Prouvé ungate (grep ci/=0 ; mutation 13→14 laissait exit 0)
et à dérive prouvée (publiciste 12→13). Extension de la boucle head-docs existante
(3 tuples réutilisant n_agents = git ls-files 03_agents/*/AGENT.md · zéro nouvelle
machinerie · #5) ; on n'ancre que le total ; INTROUVABLE = échec (#6). ci/README.md
documente désormais 7 surfaces vives. 6 morsures (M5 no-false-positive sur le « 12 » ·
M6 SILENT-GREEN via git rm --cached prouvant l'autorité git-index). 7 gates exit 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-02 13:11:37 +00:00
parent cb8d931abb
commit 8dcedb092c
3 changed files with 58 additions and 1 deletions
+42
View File
@@ -1329,3 +1329,45 @@ exit 0**. Aucune commande touchant au VPS.
**Non fait (hors périmètre #8)** — runtime VPS publiciste (`publiciste.py`, systemd/
inotify, WhatsApp), déploiement serveur : hors périmètre worker.
---
## Sprint 8 · buffer · Compte d'agents — ancrage des 3 surfaces vives de `GAP_ANALYSIS_SPRINT1.md` (dont la coche de couverture DoD) sur la source unique `n_agents`
**Contexte** — Série anti-dérive Sprint 8 (CLAUDE.md #6 « zéro invention de chiffres »).
Le commit précédent (cb8d931) a ancré « 13 agents » à `git ls-files 03_agents/*/AGENT.md`
(source unique `n_agents`) sur les 2 docs de mandat de tête (AGENTS_EXISTING_ASSETS titre +
MASTER_PROMPT §28), en plus du README ×2. Un balayage de complétude a exhumé une **3ᵉ
surface entièrement HORS gate** : le **livrable Sprint 1** `05_deliverables_mvp/
GAP_ANALYSIS_SPRINT1.md` (Definition of Done) retranscrit ce même compte à **trois
endroits vifs** — l.12 périmètre d'audit (« audit des **13 agents DTP** »), l.53 constat
global (« **12 des 13 agents** partent d'un socle existant »), et surtout l.214 la **coche
de couverture DoD** (« Couverture **13 agents** + OTOIA core ✅ »). Cette coche AFFIRME une
complétude COURANTE : elle DOIT suivre le nombre réel de fiches.
**Le « vert trompeur » — PROUVÉ ungate avant ajout** (mémoire
`verify-uncovered-before-gating`) : `GAP_ANALYSIS` n'est référencé par AUCUN `ci/*.sh`
(`grep` = 0) ; muter l.214 « 13 »→« 14 » laissait `check_readme_claims` **exit 0**. Or ce
NOMBRE a une **dérive prouvée** : le publiciste fut ajouté comme 13ᵉ agent (12→13), forçant
la correction de cb8d931. Si un 14ᵉ agent était mandaté, la coche DoD mentirait en silence.
`check_artifacts` est aveugle (la SPEC n'est pas un `out/*.json`) ; aucune suite `tests/` ne
touche l'ancre doc↔disque.
**Gate ajouté — EXTENSION de la boucle head-docs existante** (`ci/check_readme_claims.sh`,
bloc « Comptes d'agents dans les docs de mandat de tête »), pas un bloc neuf : 3 tuples
`(GAP, motif, label)` réutilisant le `n_agents` DÉJÀ dérivé (zéro nouvelle machinerie ·
zéro re-dérivation · #5). On n'ancre QUE le **total** — le « 12 » analytique de l.53
(agents à socle existant) N'EST PAS gaté (motif `\d+ des (\d+) agents` capture le 2ᵉ nombre).
Surface INTROUVABLE = échec (anti-évaporation #6). `ci/README.md` mis à jour : le décompte
d'agents est désormais documenté comme ancré à **7 surfaces vives**.
**Vérif** — 3 checks verts sur l'arbre propre (les 3 == 13). **6 morsures** adversariales,
reverts par `cp` ciblé (jamais `git checkout` large — cf. incident consigné) : **M1** DoD
13→14 (mord) · **M2** périmètre 13→99 (mord) · **M3** constat total 13→12 (mord) · **M4**
ligne DoD supprimée ⇒ INTROUVABLE · **M5 no-false-positive** : muter le « 12 » analytique
(12→11), total intact ⇒ gate **exit 0** (preuve qu'on ne gate que le total) · **M6
SILENT-GREEN** : dérive de la SOURCE (`git rm --cached` d'une fiche ⇒ `n_agents`=12), docs
figés à 13 ⇒ les **5 surfaces head-docs+GAP mordent** « dit 13 MAIS 03_agents/ en compte 12 »
(preuve que l'autorité est le git-index, pas la cohérence interne). Arbre restauré. **7 gates
re-joués → exit 0** : check_ci_integrity · check_artifacts · check_docs · check_readme_claims ·
check_regression · guard_constraints · validate_json. Aucune commande touchant au VPS.