diff --git a/05_activity_log/2026-08-05.md b/05_activity_log/2026-08-05.md index 6331bdc..4f8c8da 100644 --- a/05_activity_log/2026-08-05.md +++ b/05_activity_log/2026-08-05.md @@ -1,5 +1,47 @@ # Activity Log · 2026-08-05 · Claude Code DTP Worker +## Session 224359 · FIX RÉEL — commentaire fantôme dans le gate `ci/validate_json.sh` (check de conformité `$schema` annoncé, jamais implémenté) · nouvelle sous-classe comment-vs-code sur les scripts de GATE eux-mêmes + +**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 24 modules du +`quality_report.json` (audit_4big) sont **tous à 100/PASS** (aucun < 95, contrainte #5) → la +frontière automatisable restante est soit un arbitrage produit (bloqué Michel, cf. +[[open-decisions-register]]), soit du déploiement VPS (hors périmètre #8). Bascule sur une +surface de dérive **non ré-auditée** : les **commentaires internes des scripts de gate** +`ci/*.sh` eux-mêmes — les sweeps docstring-vs-code antérieurs étaient scopés aux **générateurs +de production** + helpers `*lib/` (cf. [[docstring-vs-code-drift]]), jamais aux gates. + +**Finding (réel, isolé).** `ci/validate_json.sh:27` portait un commentaire orphelin — +`# Si un $schema est déclaré, contrôle que 'draft' est reconnu (info seule).` — placé dans la +branche `then` du parse-loop, mais **aucun code** ne lit `$schema` ni ne contrôle le `draft` : +la branche n'imprime que le `✓`. Le gate valide la **bonne-formation SEULEMENT** (parse strict) ; +la conformité structurelle au `.schema.json` est l'oracle tiers OPTIONNEL `jsonschema` de la +suite régression (cf. [[regression-baseline-17-skips-by-design]]). Le commentaire promettait donc +un check inexistant — même classe honnêteté que #6 (rien ne doit affirmer un contrôle absent). + +**Vérification d'isolement.** Sweep Explore des **8** scripts de gate + `lib.sh` +(`check_readme_claims.sh` 5600+ l., `check_docs`, `check_artifacts`, `check_regression`, +`check_ci_integrity`, `check_mobile_workflow`, `guard_constraints`, `lib.sh`) pour la même classe +(commentaire affirmant un comportement que le code n'implémente pas) → **0 autre dérive** ; tous +les autres commentaires sont synchrones avec un code qui les honore. Dérive **localisée** au seul +`validate_json.sh`. + +**Fix (2 volets, honnête · 0 invention).** (1) Suppression de la ligne fantôme l.27 (la branche +`then` fait exactement ce que le code montre — imprimer le `✓`). (2) En-tête : ajout d'un bloc +**PÉRIMÈTRE** explicite disant que ce gate contrôle la bonne-formation SEULEMENT et que la +conformité `$schema` vit ailleurs (l'oracle `jsonschema` de `check_regression.sh`, 17 skips par +design) — le commentaire retiré devient une affirmation POSITIVE et vraie du périmètre, ce qui +prévient la réintroduction du fantôme par un futur lecteur. + +**Portée / anti-churn.** **1 fichier de gate** édité (commentaire seul, **0 changement de logique +exécutable** — même AST bash), **0 artefact reconstruit**, **0 gate ajouté** (#5 — c'est un FIX de +dérive, pas un nouveau contrôle ; la classe est isolée, un gate serait inerte/redondant), **0 +chiffre saisi à la main** (#6), **aucune commande VPS** (#8). `bash ci/validate_json.sh` = OK · +`./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** avant et après (le fix ne touche aucun comportement +gaté). Seules éditions : `ci/validate_json.sh` + ce journal. + +--- + ## Session 191333 · Audit de COMPLÉTUDE fiches AGENT.md (25 modules ↔ 13 fiches) — CLOSE CLEAN · réconciliation compte 22→25 · 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/ci/validate_json.sh b/ci/validate_json.sh index bf91310..e068df6 100755 --- a/ci/validate_json.sh +++ b/ci/validate_json.sh @@ -6,6 +6,10 @@ # Les schémas JSON (version.schema.json, projets_master.schema.json) sont le # contrat de données Faisabilité ↔ Publiciste : un JSON cassé bloque le # pipeline en aval → on l'attrape ici. +# PÉRIMÈTRE : bonne-formation SEULEMENT (parse). La conformité au $schema +# (validation structurelle contre le .schema.json) n'est PAS contrôlée ici — +# c'est l'oracle tiers OPTIONNEL `jsonschema` de la suite régression (cf. +# check_regression.sh, 17 skips par design quand la lib est absente). # Dépendances : bash, git, python3. Aucun réseau requis. # ============================================================================ set -uo pipefail @@ -24,7 +28,6 @@ fi for f in "${files[@]}"; do if python3 -c "import json,sys; json.load(open(sys.argv[1]))" "$f" 2>/tmp/jsonerr; then printf ' \033[32m✓\033[0m %s\n' "$f" - # Si un $schema est déclaré, contrôle que 'draft' est reconnu (info seule). else printf ' \033[31m✗\033[0m %s\n' "$f" sed 's/^/ /' /tmp/jsonerr