[DTP-Worker 20260802_213610] Sprint 8 · buffer · Dérive doc-vs-CODE réelle : docstring/help demo_scenario_gen omettaient un output produit (run_sheet.md)
Chasse ciblée (classe non gatée docstring-vs-code, cf. fix publiciste 210609) via
fan-out 3 audits read-only sur les modules à docstring dense · 3 candidats · 2 réfutés · 1 réel.
RÉEL corrigé — demo/scenarios/demo_scenario_gen.py : le générateur écrit TROIS fichiers
(run_sheet.json + MANIFEST.json l.196 + run_sheet.md l.202-203, le prompteur, annoncé
jusqu'au message stdout l.206) mais la doc intra-module n'en listait que DEUX à 3 endroits :
diagramme docstring (l.19), résumé sous-commande docstring (l.31), help argparse build (l.236).
Le run_sheet.md ajouté au commit aebe9b7 avait mis à jour le README (correct, 3 sorties) mais
laissé le docstring/help du .py en arrière → dérive doc-vs-CODE réelle, non gatée
(check_docs/check_readme_claims ne couvrent pas la prose intra-module). Les 3 emplacements
réalignés sur les 3 sorties réelles. Docstring/help SEULS — zéro logique/signature/test.
RÉFUTÉ (faux-positif de compte) — fiscal/ecf_dgii « 12 invariants » : allégué « pas
d'invariant 1 » car numérotation inline commence à 2. FAUX — invariant 1 = conformité schéma
(maison.validate l.112), 12a/12b = 2 moitiés de l'invariant 12 → 12 exactement, aligné README
ledger + help + tests + stdout. Piège de compte classique. Zéro changement.
Vérifs : run_ci.sh 30 PASS · build réel re-exécuté = 3 fichiers émis · zéro module · zéro
gate (#5) · 1 fichier prod touché (docstring+help) · aucune commande VPS (#8).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1995,3 +1995,48 @@ source unique.
|
||||
**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** (inchangé). **Zéro
|
||||
nouveau module · zéro gate ajouté (#5) · un seul fichier de production touché (docstring)**.
|
||||
Aucune commande VPS (#8). Commit `a2c2e0b`.
|
||||
|
||||
---
|
||||
|
||||
## Session 20260802_213610 · Sprint 8 · buffer · Dérive doc-vs-CODE réelle : docstring demo_scenario omettait un output produit
|
||||
|
||||
**Contexte.** État stationnaire (`run_ci.sh` = 30/30 vert, roadmap S1–S8 livrée et
|
||||
gatée, reliquat hors périmètre sandbox). Poursuite de la classe de dérive découverte
|
||||
la session précédente (docstring de production vs code réel — surface non gatée, distincte
|
||||
des gates README/compte). Fan-out de 3 audits read-only (Explore) sur les ~22 modules à
|
||||
docstring dense, chacun vérifiant CHAQUE allégation factuelle du docstring d'en-tête contre
|
||||
le code.
|
||||
|
||||
**3 candidats remontés · 2 réfutés par vérification indépendante · 1 réel corrigé.**
|
||||
|
||||
**RÉFUTÉ (faux-positif de compte).** `fiscal/ecf_dgii/ecf_dgii_gen.py` l.110 « 12 invariants » :
|
||||
l'agent alléguait « la numérotation commence à 2 → pas d'invariant 1 ». FAUX — l'invariant 1
|
||||
EST la conformité au schéma (`errors = list(maison.validate(bundle, schema))`, l.112) et
|
||||
`12a`/`12b` sont les deux moitiés de l'invariant 12 (unicité + comptes/tipos). Décompte réel :
|
||||
1(schéma)+2..11+12(a,b) = **12 exactement**, aligné mot-pour-mot sur le ledger README « Les 12
|
||||
invariants » + help CLI + tests + message stdout. Piège de compte classique (cf. mémoire
|
||||
`invariant-ledger-count-gate`, `confotur-8-negatifs-not-drift`). Zéro changement.
|
||||
|
||||
**RÉFUTÉ implicite.** Cluster RBAC/legal/bancable (7 modules) : aucune dérive, tous les
|
||||
inputs/outputs/compteurs/comportements des docstrings exacts.
|
||||
|
||||
**RÉEL — corrigé.** `demo/scenarios/demo_scenario_gen.py`. Le générateur écrit **TROIS**
|
||||
fichiers — `run_sheet.json` (l.196), `MANIFEST.json` (l.196) ET `run_sheet.md` (l.202-203,
|
||||
le « prompteur » Markdown, annoncé jusque dans le message stdout l.206 « + prompteur
|
||||
run_sheet.md »). Or la documentation DANS le module n'en listait que DEUX à trois endroits :
|
||||
le diagramme de chaîne de valeur du docstring (l.19), le résumé sous-commande du docstring
|
||||
(l.31) et la `help=` de l'argparse `build` (l.236). Le `run_sheet.md` a été ajouté au commit
|
||||
`aebe9b7` (« prompteur Markdown ») qui a MIS À JOUR le README (qui, lui, documente
|
||||
correctement les 3 sorties, l.27-29/76-78) mais a laissé le docstring/help du .py en arrière.
|
||||
Dérive doc-vs-CODE réelle, non gatée (check_docs/check_readme_claims ne couvrent pas la prose
|
||||
intra-module), même classe que le fix publiciste parser de la session 210609.
|
||||
|
||||
**Correction.** Les 3 emplacements alignés sur les 3 sorties réelles :
|
||||
diagramme → `out/run_sheet.json + out/run_sheet.md + out/MANIFEST.json` ;
|
||||
résumé sous-commande + help argparse → `out/run_sheet.{json,md} + out/MANIFEST.json`.
|
||||
**Docstring/help seuls — zéro changement de logique, de signature ou de test.**
|
||||
|
||||
**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** (inchangé). Build réel
|
||||
re-exécuté en dossier temp → émet bien `run_sheet.json`, `run_sheet.md`, `MANIFEST.json`
|
||||
(3 fichiers = la doc corrigée). **Zéro nouveau module · zéro gate ajouté (#5) · un seul
|
||||
fichier de production touché (docstring + help)**. Aucune commande VPS (#8).
|
||||
|
||||
Reference in New Issue
Block a user