From a8342e97e28021fedfd9ff9b0d5090a564ddd156 Mon Sep 17 00:00:00 2001 From: Claude Code DTP Worker Date: Thu, 6 Aug 2026 00:51:55 +0000 Subject: [PATCH] =?UTF-8?q?[DTP-Worker=2020260806=5F004414]=20FIX=20docstr?= =?UTF-8?q?ing=E2=86=94code=20=E2=80=94=20help=20argparse=20de=20la=20sous?= =?UTF-8?q?-commande=20`build`=20(mobile/app=5Fconfig=5Fgen.py)=20omettait?= =?UTF-8?q?=20store=5Flisting.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chasse adversariale ciblée (classe RECURRING docstring↔code, scopée aux modules non balayés la veille) → 1 vrai défaut ungaté. Le help= de sub.add_parser("build") énumérait 4 sorties (app_config/eas_build/role_navigation/MANIFEST) alors que cmd_build() en écrit 5 : store_listing.json (l.243) était omis. Docstring (l.15 « les 5 fichiers ci-dessus ») + README (l.56/68) listent bien les 5. Nouvelle sous-classe help-text argparse du motif docstring↔code (2e surface prose dans le code, distincte des open('w') vs docstring déjà balayés). Fix = ajout store_listing.json à sa position canonique. Aucun gate/test ne fige la chaîne (grep -rn = 0 hit externe) → pas d'oracle à réaligner, pas de gate ajouté (#5). Non-régression : help n'affecte aucune sortie, artefacts byte-identiques, run_ci 33 PASS·0 FAIL·0 SKIP avant/après. Reste de l'audit (audit_5d/acceptance/regression/ deploy_runbook/commissions/dossier_vente/ecf/portails/faisabilite) CLEAN. 0 artefact rebuild, 0 VPS (#8). Co-Authored-By: Claude Opus 4.8 (1M context) --- 05_activity_log/2026-08-06.md | 31 +++++++++++++++++++ .../mobile/app_config/app_config_gen.py | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/05_activity_log/2026-08-06.md b/05_activity_log/2026-08-06.md index f725b5d..297ddd6 100644 --- a/05_activity_log/2026-08-06.md +++ b/05_activity_log/2026-08-06.md @@ -1,5 +1,36 @@ # Activity Log · 2026-08-06 · Claude Code DTP Worker +## Session `20260806_004414` — FIX docstring↔code (sous-classe help-text argparse) · `mobile/app_config_gen.py` : le help de la sous-commande `build` omettait `store_listing.json` + +**Choix de tâche.** `./run_ci.sh` au démarrage = **33 PASS · 0 FAIL · 0 SKIP**, roadmap +intégralement livrée/gatée. Plutôt qu'une énième passe vérification-only (les 5 derniers +commits l'étaient), **chasse adversariale ciblée à un vrai défaut ungaté** sur la classe +RECURRING `docstring↔code`, scopée aux modules **non** balayés la veille (session `001412` +avait couvert seo/financement/demo/pie/rbac/audit_4big/chat/workspaces/workflow_vente/confotur). + +**Défaut trouvé (réel, haute confiance).** `05_deliverables_mvp/mobile/app_config/app_config_gen.py:279` — +le `help=` de `sub.add_parser("build", …)` énumérait **4** sorties +(`app_config.json / eas_build.json / role_navigation.json / MANIFEST.json`) alors que +`cmd_build()` en écrit **5** (l.240-244) : `store_listing.json` (l.243) était **omis** du help. +La docstring (l.15, « écrit les 5 fichiers ci-dessus ») et le README (l.56/68) listent bien les 5. +Nouvelle **sous-classe help-text argparse** du motif `docstring↔code` — distincte des sorties +`open(...,'w')` vs docstring déjà balayées : le help CLI est une 2ᵉ surface prose dans le code. + +**Fix.** Ajout de `store_listing.json` dans le `help=`, à sa position canonique +(…role_navigation → **store_listing** → MANIFEST), ordre identique docstring/README/code. +Aucun gate/test ne fige cette chaîne (`grep -rn` = 0 hit hors le fichier) → édition sûre, +pas d'oracle à réaligner. + +**Non-régression.** Le help n'affecte aucune sortie : artefacts **byte-identiques** +(`ci/check_artifacts.sh` vert dans le merge). `--help` rend désormais les 5 fichiers. +`./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** avant et après. + +**Portée.** **1 fichier de production édité** (1 ligne, help argparse), **0 artefact reconstruit** +(sortie inchangée), **0 gate ajouté** (#5 — la chaîne n'était figée par personne, on corrige +la source pas de nouveau gate), **0 chiffre inventé** (#6), **aucune commande VPS** (#8). +Reste de l'audit (audit_5d/acceptance/regression/deploy_runbook/commissions/dossier_vente/ +ecf/portails/faisabilite) = **CLEAN**, comptes d'invariants et noms de sorties concordants. + ## Session `20260806_001412` — VÉRIF indépendante multi-axes (docstring↔code · numériques du canal stakeholder · liens in-repo) → CLEAN · 0 édition de production **Choix de tâche.** `./run_ci.sh` au démarrage = **33 PASS · 0 FAIL · 0 SKIP**, arbre propre. diff --git a/05_deliverables_mvp/mobile/app_config/app_config_gen.py b/05_deliverables_mvp/mobile/app_config/app_config_gen.py index 26b0fba..4b38136 100644 --- a/05_deliverables_mvp/mobile/app_config/app_config_gen.py +++ b/05_deliverables_mvp/mobile/app_config/app_config_gen.py @@ -276,7 +276,7 @@ def main(argv: list[str] | None = None) -> int: ) sub = p.add_subparsers(dest="cmd", required=True) - pb = sub.add_parser("build", help="génère app_config.json / eas_build.json / role_navigation.json / MANIFEST.json") + pb = sub.add_parser("build", help="génère app_config.json / eas_build.json / role_navigation.json / store_listing.json / MANIFEST.json") pb.add_argument("-o", "--out", default=_DEFAULT_OUT, help="dossier de sortie (défaut: ./out)") pb.set_defaults(func=cmd_build)