[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:
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user