[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
+5 -1
View File
@@ -124,7 +124,11 @@ docs d'entrée — `README.md` :
- modules gated `N/M` à `K/100` + verdict `PASS` → `qa/audit_4big/out/quality_report.json` (`totals`) ;
- `N` suites gated → `qa/regression/out/regression_plan.json` (`totals.suites`) ;
- `N` promesses (`X` sprint + `Y` métriques), `Z` `in_repo`, verdict `true` → `qa/acceptance/out/acceptance_matrix.json` ;
- « 13 agents » (×2 : nav + titre) → `git ls-files 03_agents/*/AGENT.md`.
- « 13 agents » recompté depuis `git ls-files 03_agents/*/AGENT.md` (source unique)
et exigé identique à **7 surfaces vives** : `README.md` ×2 (nav + titre) ·
`AGENTS_EXISTING_ASSETS.md` (titre) · `02_master_prompt/MASTER_PROMPT_DTP_v2.md`
(titre) · `GAP_ANALYSIS_SPRINT1.md` ×3 (périmètre d'audit · constat global *total*
— le « 12 » analytique n'est PAS ancré · coche de couverture DoD).
Et la fiche QA `03_agents/qa/AGENT.md` (section « Verdict agrégé courant », qui se
disait « jamais compté à la main » tout en portant un compte figé qui s'est périmé
+11
View File
@@ -226,12 +226,23 @@ else:
# régression). Aucun gate ne les comparait à la réalité du disque. On réutilise
# le `n_agents` DÉJÀ dérivé de `git ls-files 03_agents/*/AGENT.md` (source unique,
# pas de nouvelle machinerie) et on exige que chaque doc cite exactement ce compte.
# Le GAP_ANALYSIS_SPRINT1 (livrable Sprint 1, Definition of Done) retranscrit ce
# même compte à TROIS surfaces vives non gatées : le périmètre d'audit (« audit des
# N agents DTP »), le constat global (« … des N agents partent d'un socle existant »
# — on n'ancre QUE le TOTAL, pas le « 12 » analytique des agents à socle existant),
# et surtout la coche de couverture DoD (« Couverture N agents + OTOIA core ✅ »).
# Cette coche AFFIRME une complétude courante : si un 14e agent était mandaté (comme
# le publiciste le fut, 12→13), elle mentirait en silence. Même source unique n_agents.
# ============================================================================
GAP = "05_deliverables_mvp/GAP_ANALYSIS_SPRINT1.md"
for path, pat, label in [
("AGENTS_EXISTING_ASSETS.md",
r"Mapping vers les (\d+) agents DTP", "Actifs existants · titre"),
("02_master_prompt/MASTER_PROMPT_DTP_v2.md",
r"Tes (\d+) agents spécialisés", "Master prompt · titre"),
(GAP, r"audit des \*\*(\d+) agents DTP", "Gap analysis · périmètre d'audit"),
(GAP, r"\d+ des (\d+) agents", "Gap analysis · constat global (total)"),
(GAP, r"Couverture (\d+) agents", "Gap analysis · couverture DoD"),
]:
try:
doc = re.sub(r"\s+", " ", open(path, encoding="utf-8").read())