[DTP-Worker 20260805_134254] SWEEP read-only docstring-vs-code drift sur 26 modules → CLEAN

Balayage lecture seule de la SEULE classe que la mémoire marque `RECURRING / not-closed`
(docstring-vs-code-drift) : fan-out Explore sur les 26 modules générateurs (*_gen.py +
lib/*.py + textes argparse embarqués), directions A (advertise non-implémenté) ET B (omet
un output réel) couvertes. Résultat : 0 dérive réelle. L'unique item remonté est EXACTEMENT
le faux-positif déjà refermé 2× (deploy_runbook_gen.py:28 `validate [-o OUT]`, help="ignoré
(compat)" :288) — re-signalé une 3e fois par un Explore neuf MALGRÉ l'amorce de SKIP. Vérifié
en source (L26-29 + L288) : la ligne `validate` décrit ce que fait validate (régénère en
mémoire, valide) et ne prétend jamais que -o écrit ; seul `build` (:27) revendique l'écriture,
ce que le code fait. Bijection parfaite self-cohérente → NON-défaut, LEAVE (#5), 0 édition doc.

Portée : 0 fichier de prod édité, 0 artefact reconstruit, 0 gate ajouté (#5), 0 chiffre
inventé (#6), 0 commande VPS (#8), sweep 100% lecture. Seule édition : activity_log.
Vérif : ./run_ci.sh → 33 PASS · 0 FAIL · 0 SKIP. Mémoire docstring-vs-code-drift enrichie
(3e récurrence documentée : faux-positif essentiellement insupprimable par amorce — l'attendre
comme unique hit et confirmer-puis-écarter, ne pas le traiter comme signal).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-05 13:47:54 +00:00
parent 1321983dc3
commit 48b19b9a52
+41
View File
@@ -1238,3 +1238,44 @@ suppression de la ligne-comment orpheline 1207.
(#6), **0 commande VPS** (#8). Seule édition : ce journal. Mémoire [[guard-constraints-log-prose]] (#6), **0 commande VPS** (#8). Seule édition : ce journal. Mémoire [[guard-constraints-log-prose]]
enrichie : l'escape `ci-allow`/marqueur est **PAR LIGNE** — un paragraphe wrappé qui sépare le terme enrichie : l'escape `ci-allow`/marqueur est **PAR LIGNE** — un paragraphe wrappé qui sépare le terme
de son marqueur laisse le gate mordre. de son marqueur laisse le gate mordre.
---
## Session 20260805_134254 · SWEEP read-only *docstring-vs-code drift* sur 26 modules → **CLEAN** · 3ᵉ récurrence du faux-positif `validate [-o OUT]` refermée
**Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **33 PASS · 0 FAIL · 0 SKIP**, arbre
propre. Roadmap `ROADMAP_8_WEEKS_OR_LESS.md` intégralement livrée/gatée in-repo ; les restes
S3/S5/S6 (refactor BIM, builds EAS, dépôts ONAPI, déploiement prod VPS) sont **hors périmètre
worker** (`CLAUDE.md` #8). Le daily_report `2026-08-05.md` et le `OPEN_DECISIONS_REGISTER.md`
(D-01→D-05) sont **déjà courants** (sessions 004112 / 014119) — les ré-attester serait du churn
(#5 ; déjà fait 3× ce jour, cf. 121234). J'ai donc visé la **seule classe que la mémoire marque
explicitement `RECURRING / not-closed`** : [[docstring-vs-code-drift]] — docstrings/aides argparse
de modules de PRODUCTION qui avancent un input/fallback/output/flag que le code contredit (ou qui
omettent un output réellement écrit).
**Méthode.** Fan-out `Explore` en lecture seule sur les **26** modules générateurs (`*_gen.py` +
`lib/*.py` + textes argparse embarqués), amorcé pour SKIP le faux-positif connu. Pour chaque
module : docstring/help ↔ ce que le code lit (`json.load`/reads), écrit (`open(...,'w')`/`write_text`/
`json.dump`/noms de fichiers) et enregistre (`add_parser`/`add_argument`). Direction A (advertise
non-implémenté) **et** B (omet un output réel) toutes deux couvertes.
**Résultat — CLEAN.** Aucune dérive réelle sur les 26 modules. L'unique item remonté par l'agent
est **exactement** le faux-positif déjà refermé 2× (session 111224) : `deploy_runbook_gen.py:28`
`validate [-o OUT] → (re)génère en mémoire, valide vs deploy.schema.json + invariants…`.
Vérifié en relisant la source (L26-29 + L288) : la ligne `validate` **décrit ce que fait `validate`**
(régénère en mémoire, valide) et **ne prétend jamais** que `-o` écrit quoi que ce soit ; `[-o OUT]`
n'est qu'un flag optionnel accepté, en symétrie CLI avec `build`, et argparse l'enregistre
`help="ignoré (compat)"` (`:288`). **Bijection parfaite, self-cohérente → NON-défaut.** Seul `build`
(`:27`) revendique l'écriture, ce que le code fait. **Aucune édition** de la docstring (#5 · la
mémoire ordonne LEAVE/don't-harmonize : la doc est correcte, c'est le lecteur qui la sur-lit).
**Portée / anti-churn.** **0 fichier de production édité**, **0 artefact reconstruit** (aucun
`out/*.json` touché → pas de rebuild `quality_report`, cf. [[audit4big-rebuild-after-doc-edits]]),
**0 gate ajouté** (#5), **0 chiffre inventé** (#6), **0 commande VPS** (#8 — sweep 100 % lecture),
**aucun `git clean`**. <!-- ci-allow : mention de l'interdit #1, jamais exécuté ; escape INLINE sur la ligne fautive (scan ligne-par-ligne, cf. session 131244) --> Seule édition : ce journal.
**Vérif.** `git status --short` avant/après le sweep = vide (lecture seule) ; `./run_ci.sh` →
**33 PASS · 0 FAIL · 0 SKIP**. Mémoire [[docstring-vs-code-drift]] enrichie : classe re-balayée
CLEAN sur les 26 modules ce jour, et le faux-positif `validate [-o OUT]` a **récidivé une 3ᵉ fois**
(re-signalé par un `Explore` neuf malgré l'amorce de SKIP) → confirme qu'il faut le garder documenté
comme piège, pas le "corriger".