[DTP-Worker 20260806_114542] VÉRIF axe neuf « le skip python -S de l'oracle jsonschema masque-t-il un écart enum/const/schéma ? » → CLEAN (7 suites dé-skippées OK, rbac 0 err, seul phantom enum {WAG}=NON-DÉFAUT), détecteurs enum+const maison teeth-prouvés
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -995,3 +995,48 @@ ajouté** (#5 — occurrence-zéro, rejouable à la demande comme les autres bal
|
|||||||
saisi en dur** · **0 commande VPS** (#8). `./run_ci.sh` inchangé = **33 PASS · 0 FAIL · 0 SKIP**.
|
saisi en dur** · **0 commande VPS** (#8). `./run_ci.sh` inchangé = **33 PASS · 0 FAIL · 0 SKIP**.
|
||||||
Fichiers touchés : ce journal + 1 entrée mémoire (`schema-oracle-ref-integrity`). Le résolveur est
|
Fichiers touchés : ce journal + 1 entrée mémoire (`schema-oracle-ref-integrity`). Le résolveur est
|
||||||
consigné ci-dessus, rejouable tel quel (stdlib pur, sans réseau).
|
consigné ci-dessus, rejouable tel quel (stdlib pur, sans réseau).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session `20260806_114542` — VÉRIF · axe NEUF « le skip `python -S` de l'oracle jsonschema masque-t-il un écart enum/const/schéma vivant ? » + reverse-check membres d'enum fantômes → CLEAN (1 phantom {WAG} = NON-DÉFAUT) · 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 ; 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 : **5ᵉ axe teeth schéma jamais balayé**, complémentaire des
|
||||||
|
4 précédents (non-vacuité · fermeture/complétude · wiring · intégrité des `$ref`).
|
||||||
|
|
||||||
|
**Le soupçon.** Le gate exécute les suites sous **`python -S`** → l'import du tiers `jsonschema`
|
||||||
|
échoue → les **7 tests-oracle** `@skipUnless(_HAS_JSONSCHEMA)` (Draft-07 complet) comptent parmi les
|
||||||
|
**17 skips by-design** (cf. baseline régression 624 ran / 607 passed / 17 skipped). **Question** : ce
|
||||||
|
neutralisation masque-t-elle un écart **enum / const / type / required / $ref** réellement présent
|
||||||
|
dans les artefacts committés ? Et un `enum` de schéma **sur-énumère-t-il** vs les données (membre
|
||||||
|
fantôme = contrat partiellement aveugle sur la forme) ?
|
||||||
|
|
||||||
|
**Méthode & résultat — CLEAN.**
|
||||||
|
1. **Ré-exécution des 7 suites porteuses d'oracle avec `python3` nu** (vrai jsonschema 3.2.0, donc les
|
||||||
|
`skipUnless` **s'exécutent réellement**) → **skipped=0, toutes OK** :
|
||||||
|
dossier_vente 31 · workflow_vente 25 · commissions 25 · seo 36 · ecf_dgii 39 · confotur 44 ·
|
||||||
|
apply_plan 16. L'oracle Draft-07 dé-skippé valide le bundle **correctement assemblé** de chaque
|
||||||
|
module (assemblage propre au module, pas une reconstruction) → **0 divergence**.
|
||||||
|
2. **Validation jsonschema réelle** de `rbac/rbac_50_roles.json` vs `rbac/rbac.schema.json` →
|
||||||
|
**0 erreur** (l'oracle « neutralisé » passe pour de vrai sur le contrat RBAC phare).
|
||||||
|
3. **Reverse-check membres d'enum fantômes** sur les enums de rôle : data ⊆ enum pour
|
||||||
|
`famille` (9=9) · `portail` (6=6) · `scope_donnees` (4=4) ; `entite_principale` enum(9) ⊋ data(8),
|
||||||
|
**seul fantôme = {WAG}**. `used-not-in-enum = ∅` partout (une valeur produite hors-enum casserait la
|
||||||
|
validation → serait déjà attrapée). **{WAG} = NON-DÉFAUT** : WAG est une **entité canonique**
|
||||||
|
CLAUDE.md §Entités (Helios RD sous WAG) ; l'`enum` est le **domaine autorisé**, pas l'ensemble
|
||||||
|
observé — un enum-surset est correct (breadth de contrat), comme l'axe fermeture/`financement`.
|
||||||
|
4. **Teeth** — les détecteurs enum+const du validateur maison `publiciste/lib/validator.py:76-81`
|
||||||
|
**MORDENT** : `portail='PHANTOM_PORTAIL'` hors-enum → flaggé (message exact) ; const
|
||||||
|
`cible_rbac_roles` 50→999 → flaggé ; data propre → 0 erreur. Détecteur prouvé non-toothless.
|
||||||
|
|
||||||
|
Les 19 autres schémas voient leur `enum/const` **enforced par le validateur maison** (gère
|
||||||
|
enum/const/type/required/additionalProperties/pattern/$ref) contre le bundle in-memory == `out/`
|
||||||
|
committé (check_artifacts), wiring déjà prouvé par l'axe « wiring ». **Conclusion : le skip `-S` de
|
||||||
|
jsonschema ne masque AUCUN écart enum/const/schéma.**
|
||||||
|
|
||||||
|
**Périmètre.** VÉRIF pure : **0 fichier de production modifié** · **0 chiffre inventé** · **0 commande
|
||||||
|
VPS** (#8). `./run_ci.sh` inchangé = **33 PASS · 0 FAIL · 0 SKIP**. Fichiers touchés : ce journal +
|
||||||
|
1 entrée mémoire (`schema-oracle-enum-const-vs-S-skip`). Sweep rejouable tel quel (jsonschema 3.2.0
|
||||||
|
local ; stdlib pur sinon ; sans réseau) — **NON promu en gate** (#5, occurrence-zéro).
|
||||||
|
|||||||
Reference in New Issue
Block a user