[DTP-Worker 20260802_080527] Sprint 8 · buffer · Doc QA : documentation du 2ᵉ étage QA (batterie de gates statiques ci/*.sh) dans qa/AGENT.md — trou comblé (le titre promettait « gates de méta-niveau », le corps n'en tabulait aucun) ; vérif préalable : pas de dérive fiscal/ecf (ledger schéma-#1 synthétisé), pas de gate redondant à ajouter

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-02 08:13:27 +00:00
parent 0f4f1b533b
commit ccb86fe7ca
2 changed files with 67 additions and 0 deletions
+45
View File
@@ -839,3 +839,48 @@ preuve que l'autorité est le CODE, pas la prose) · M6 suppression `# Invariant
de vrai doublon · M8 renommage `_validate_bundle` ⇒ registre introuvable. Gates
re-verts : `check_artifacts` · `check_docs` · `guard_constraints` ·
`check_ci_integrity` · `check_readme_claims` · `check_regression` tous exit 0.
---
## Sprint 8 · buffer · Doc QA : documentation du 2ᵉ étage QA (batterie de gates statiques `ci/*.sh`) dans `03_agents/qa/AGENT.md`
**Démarche — vérifier AVANT de gater (mémoire `verify-uncovered-before-gating`).**
La série récente empile des gates anti-dérive ; avant d'en ajouter un 9ᵉ, j'ai
d'abord cherché une **vraie dérive présente** plutôt qu'un gate spéculatif :
1. Scan ledger-vs-prose sur les 12 générateurs à ledger d'invariants. **Faux
signal** relevé : `fiscal/ecf_dgii` semblait afficher `ledger_markers=10` vs
`prose=12`. Investigation : le ledger n'est **pas** nu 1..12 — l'invariant #1
(validation de schéma, `validate(bundle, schema)`) n'est **pas** marqué `# 1 ·`
par design, et #12 est scindé en `12a`/`12b`. Le gate fiscal (`check_readme_claims.sh`
l.1908) **synthétise** déjà `ledger = marqueurs{2..12} {1}` et vérifie
self-report / titre README / mentions / énumération = 12. **Aucune dérive** ;
mon compteur grossier ne voyait ni le schéma-#1 ni `12a/12b`.
2. Sondé les comptes de `03_agents/{crm,qa}/AGENT.md` (« Total CRM 81 (25+31+25) »,
« 17 contrôles / 5 dimensions », « 8 livrables + 7 métriques ») → **tous gatés**
(l.681, 871, 2176, 2624, 3671…). Coverage **très dense**, conforme à la mémoire.
**Conclusion** : pas de gate à ajouter (ç'aurait été redondant · CLAUDE.md #5).
**Trou documentaire réel comblé.** Le titre + le scope de `qa/AGENT.md` promettent
des « **gates de méta-niveau** », mais le corps ne tabulait que les **4 modules
Python** d'audit (`audit_5d` · `audit_4big` · `regression` · `acceptance`) — il
**omettait entièrement** la batterie de **gates statiques `ci/*.sh`**, qui sont
pourtant l'application méta-niveau littérale (moitié de l'enforcement QA). Un
lecteur croyait donc QA = 4 modules.
**Ajout** — section « Deuxième étage QA : la batterie de gates statiques (`ci/*.sh`) »
listant les 7 gates courants par **nom + rôle** (`check_ci_integrity`,
`check_readme_claims`, `check_artifacts`, `check_regression`, `check_docs`,
`guard_constraints`, `validate_json`). **Anti-dérive by design** : le texte ancre
l'autorité du périmètre sur `check_ci_integrity` (qui **découvre** l'ensemble via
`git ls-files 'ci/*.sh'` et refuse tout gate décâblé/orphelin) et présente la liste
comme *l'état courant*, PAS une constante figée → aucun compte agrégé driftable
introduit.
**Sûreté** — prose sans lien Markdown neuf (check_docs), sans URL git interdite ni
terme CRM/paiement banni nu ; les lignes citant les prohibitions portent un
marqueur (`proscrites`/`interdits`/`bannie`) donc `guard_constraints` les laisse
passer. **Vérif** : 7 gates re-verts (guard_constraints · check_docs ·
check_readme_claims · check_ci_integrity · check_artifacts · check_regression ·
validate_json tous exit 0).