diff --git a/05_activity_log/2026-08-06.md b/05_activity_log/2026-08-06.md index b3d7249..9d34531 100644 --- a/05_activity_log/2026-08-06.md +++ b/05_activity_log/2026-08-06.md @@ -1,5 +1,41 @@ # Activity Log · 2026-08-06 · Claude Code DTP Worker +## Session `20260806_131551` — VÉRIF · axe NEUF « cohérence draft/keyword des 26 oracles-schémas » (déclaration `$schema` vs idiomes cross-draft) → CLEAN 26/26 · 0 édition de production + +**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 (Sprints 1→7 dans le repo ; prod VPS / +builds EAS / dépôts ONAPI hors périmètre worker · #8). `OPEN_DECISIONS_REGISTER.md` = 3 arbitrages +**produit appartenant à Michel** (non éditables). Objectif anti-churn : un **7ᵉ axe teeth des +oracles-schémas encore jamais balayé**. + +**Axe NEUF (absent de la mémoire).** Les 6 axes-schémas déjà en mémoire vérifient : (1) non-vacuité · +(2) fermeture/complétude · (3) câblage à un test · (4) résolution des `$ref` · (5) enum/const vs skip +`python -S` · (6) satisfiabilité interne (required-vacuité + auto-contradiction). **Aucun** ne vérifie +la **cohérence entre le `$schema` déclaré et les mots-clés effectivement employés**. C'est un faux-vert +réel : un validateur JSON-Schema interprète chaque schéma **selon le draft déclaré**, et un mot-clé +d'un autre draft change de sémantique ou est **silencieusement ignoré** — l'oracle valide alors autre +chose que ce qu'il croit. + +**Détecteur maison (stdlib pur, récursif).** Signale, sous une déclaration `draft-07` : +`exclusiveMinimum`/`exclusiveMaximum` **booléens** (idiome draft-04 → mal-typé et ignoré en draft-07) · +`id` au lieu de `$id` (draft-04) · `required` **booléen** (draft-03) · `$defs` comme porteur de +définitions (mot-clé draft-2019, alors que draft-07 utilise `definitions`) · les mots-clés +**post-draft-07** (`unevaluatedProperties/Items`, `$dynamicRef`, `$anchor`, `prefixItems`, +`dependentRequired`, …) **silencieusement ignorés** par un validateur draft-07. + +**Résultat.** **26/26 déclarent `draft-07`** (aucun `$schema` manquant) · **13/13** porteurs de +définitions utilisent `definitions` (jamais `$defs`) · **0 idiome booléen draft-04** · **0 mot-clé +post-draft-07**. → **CLEAN 26/26.** + +**Dents prouvées.** Copies-mutant en mémoire de `rbac.schema.json` (réel = 0 hazard) : `exclusiveMinimum:true`, +`id:"http://…#"`, `required:true`, `$defs:{…}`, `unevaluatedProperties:false` → détecteur **MORD 5/5**. +Les 26 schémas réels restent CLEAN → détecteur non-inerte. + +**Conclusion.** **CLEAN 26/26** sur un axe de cohérence draft/keyword jamais couvert par les 6 axes +existants. **0 édition de production** (#8), `./run_ci.sh` inchangé = **33 PASS · 0 FAIL · 0 SKIP**. +Fichiers touchés : ce journal + 1 entrée mémoire (`schema-oracle-draft-keyword-coherence`). Sweep +**rejouable tel quel** (stdlib pur, sans réseau ni jsonschema) — **NON promu en gate** (#5, occurrence-zéro). + ## Session `20260806_121542` — VÉRIF · axe NEUF « cohérence interne des 26 oracles-schémas » (required-vacuité + auto-contradiction const/enum/default) → CLEAN · 0 édition de production **Choix de tâche.** `./run_ci.sh` au démarrage = **33 PASS · 0 FAIL · 0 SKIP**, arbre propre,