[DTP-Worker 20260806_084514] VÉRIF axe neuf « dents de l'ORACLE jsonschema » (26 *.schema.json) → CLEAN 26/26, détecteurs à dents prouvées
Nouvel axe: la FORCE de la couche oracle elle-même (distinct des dents de logique-générateur). ~20 modules ont un test_schema_oracle qui valide le build-mémoire contre un *.schema.json commité; un schéma vide ({} / type:object sans required) ou malformé rendrait cet oracle faux-vert (accepte tout) — classe ungatée, byte-repro & suites aveugles à la force du schéma. Audit 26/26: tous valides Draft-N + non-vides (required+properties, kw 3..103). Détecteurs de l'audit prouvés: validité mord un schéma malformé, dents mord {} et {type:object}, 0 faux positif sur rbac.schema. Connexes CLEAN: role_id→erpnext_role_name = fonction sur 57 artefacts (0 conflit); oracle exécuté non-skippé sous run_ci (python3 nu, jsonschema 3.2.0); 0 TODO/stub prod. Lecture-seule, occurrence-zéro, rejouable → PAS un gate (#5). run_ci 33 PASS 0 FAIL 0 SKIP · 0 prod édité · 0 artefact reconstruit · 0 gate ajouté (#5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -706,3 +706,48 @@ production.** Sweep lecture-seule, occurrence-zéro, rejouable → **pas un gate
|
||||
(#5), **0 chiffre saisi à la main** (#6 — `57`/`6`/comptes distincts recomputés par balayage), **0
|
||||
commande VPS** (#8). `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (inchangé). Seules éditions : ce
|
||||
journal + mémoire `artifact-internal-set-semantics` (extension « no-recurrence sweep »).
|
||||
|
||||
## Session `20260806_084514` — VÉRIF axe neuf « dents de l'ORACLE jsonschema » (26 `*.schema.json`) → CLEAN 26/26, détecteurs à dents prouvées
|
||||
|
||||
**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** (8 sprints, 22 modules gatés, métriques MVP
|
||||
atteintes) ; **0 marqueur `TODO`/`FIXME`/`NotImplemented`** en production (recompté — tous les hits
|
||||
`placeholder` sont le motif de design #6 « jamais 0 inventé ») ; currency du canal stakeholder déjà
|
||||
écartée par `def4706`/`081509` (commits depuis `e786c12` = doc/commentaire, 0 sortie changée). Plutôt
|
||||
qu'un énième re-sweep déjà catalogué, **chasse d'un défaut RÉEL sur un axe non encore audité**.
|
||||
|
||||
**Axe neuf : les dents de la couche ORACLE elle-même.** ~20 modules embarquent un `test_schema_oracle`
|
||||
qui fait `jsonschema.validate(<build en mémoire>, schema)`. Il valide le build **frais** (qui conforme
|
||||
toujours par construction) contre un `*.schema.json` **commité**. Si un schéma était **vide**
|
||||
(`{}` ou `{"type":"object"}` sans `required`/contrainte) ou **malformé**, cet oracle serait
|
||||
**faux-vert** — acceptant tout, ne prouvant rien. Le byte-repro et les suites ne regardent jamais la
|
||||
**force** du schéma → classe réellement ungatée. (NB l'oracle **tourne** sous `run_ci` en `python3`
|
||||
nu, pas `-S` ; les 17 skips sont propres au harnais regression `python -S` — cf.
|
||||
`regression-baseline-17-skips-by-design`.)
|
||||
|
||||
**Méthode.** Pour chacun des **26** `*.schema.json` : (1) `jsonschema.check_schema()` — est-il un
|
||||
schéma Draft-N **valide** ? (2) heuristique de dents — déclare-t-il `required` OU (`properties` + ≥2
|
||||
mots-clés de contrainte parmi required/enum/pattern/minItems/minimum/const/minLength/
|
||||
additionalProperties) ? **Résultat : 26/26 valides, 0 WEAK.** Tous portent required+properties réels
|
||||
(kw 3..103 ; le plus maigre `faisabilite/generator/brief.schema.json` req=1 props=10 kw=3 reste
|
||||
non-vide).
|
||||
|
||||
**Dents de l'AUDIT prouvées** (une CLEAN d'un détecteur sans dents ne vaut rien) : le détecteur de
|
||||
validité **mord** un schéma malformé (`required:"str"`, `properties.x:123`) ; le détecteur de dents
|
||||
**mord** `{}` et `{"type":"object"}` ; aucun faux positif sur `rbac.schema.json` réel.
|
||||
|
||||
**Contrôles connexes (même session, tous CLEAN).**
|
||||
- **Mapping `role_id → erpnext_role_name` = fonction** sur les 57 artefacts : **0 conflit** (un
|
||||
`role_id` ne résout jamais deux libellés distincts — sinon ERPNext créerait deux rôles). Complète
|
||||
`role-portail-referential-integrity-sweep` (qui résolvait les slugs, pas l'égalité des libellés).
|
||||
- **Oracle jsonschema exécuté, pas skippé, sous `run_ci`** — vérifié sur `pie/manifest`
|
||||
(`test_schema_oracle ... ok`), `jsonschema 3.2.0` importable en `python3` nu.
|
||||
|
||||
**Verdict.** Couche oracle **genuinely constraining** ; **aucun défaut de production**. Balayage
|
||||
lecture-seule, occurrence-zéro, rejouable → **pas un gate** (#5), sibling de
|
||||
`runtime-encoding-integrity-sweep` / `role-portail-referential-integrity-sweep`.
|
||||
|
||||
**Portée / anti-churn.** **0 fichier de production édité**, **0 artefact reconstruit**, **0 gate ajouté**
|
||||
(#5), **0 chiffre saisi à la main** (#6 — `26`/`57` recomputés par balayage), **0 commande VPS** (#8).
|
||||
`./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (inchangé). Seules éditions : ce journal + mémoire
|
||||
`schema-oracle-teeth-audit` (+ pointeur `MEMORY.md`).
|
||||
|
||||
Reference in New Issue
Block a user