[DTP-Worker 20260806_154606] VÉRIF axe NEUF « intégrité temporelle des tokens datés » → CLEAN · 0 édition de prod · toute date YYYY-MM-DD / YYYYMMDD_HHMMSS construit-elle un datetime.date valide (mois 1-12, jour valide, bissextiles stdlib) et le nom-fichier des journaux 05_activity_log/ = la 1re date de leur en-tête ? classe NEUVE = jusqu'ici tous les axes vérifient des VALEURS (comptes/slugs/schémas/encodage NFC/byte) ; ici la FORME-DATE elle-même : un 2026-02-30 / 2026-13-01 / 20260840_… se lit comme date mais n'existe pas = date inventée/typo, faux-vert vs #6 « Zéro invention », aveugle à tous les gates (aucun ne parse les dates) ; détecteur stdlib datetime.date teeth-prouvé bout-en-bout (baseline réel [], mutants 2026-08-46 & 2026-02-30 MORDENT, valides épargnés ; piège corrigé = bornes digit-only (?<!d)…(?!d) car le \b naïf rate les session-ids _HHMMSS, _ étant word-char) ; 379 fichiers trackés, 289 tokens ISO + compacts → 0 date invalide + 0 mismatch nom↔en-tête ; run_ci 33 PASS 0 FAIL 0 SKIP inchangé, rejouable, pas de gate (#5)
This commit is contained in:
@@ -1325,3 +1325,40 @@ teeth-prouvé. Édition minimale : **1 test durci** (pas de logique de productio
|
|||||||
`qa-acceptance` OK, `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP**. Fichiers : ce journal + le test
|
`qa-acceptance` OK, `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP**. Fichiers : ce journal + le test
|
||||||
durci + 1 entrée mémoire (`test-assertion-reachability-sweep`). Sweep **rejouable** (AST stdlib pur) —
|
durci + 1 entrée mémoire (`test-assertion-reachability-sweep`). Sweep **rejouable** (AST stdlib pur) —
|
||||||
**NON promu en gate** (#5, occurrence-quasi-zéro après fix).
|
**NON promu en gate** (#5, occurrence-quasi-zéro après fix).
|
||||||
|
|
||||||
|
## Session `20260806_154606` — VÉRIF · axe NEUF « intégrité temporelle des tokens datés » → CLEAN · 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 (prod VPS / EAS / ONAPI hors périmètre · #8),
|
||||||
|
`OPEN_DECISIONS_REGISTER.md` = 3 arbitrages produit de Michel (non éditables). Objectif : un **axe teeth
|
||||||
|
encore jamais balayé** (candidat ancres intra-doc `](#frag)` écarté = **occurrence-zéro**).
|
||||||
|
|
||||||
|
**Axe NEUF (absent de la mémoire).** Toutes les dimensions déjà couvertes portent sur des **valeurs**
|
||||||
|
(comptes, slugs, schémas, encodage NFC/byte). Jamais balayé : la **validité calendaire** des **tokens
|
||||||
|
datés** eux-mêmes. Un `2026-02-30` / `2026-13-01` / `20260840_…` se lit comme une date mais **n'existe
|
||||||
|
pas** = date **inventée / typo** — faux-vert direct contre **#6 « Zéro invention »**, invisible à tous
|
||||||
|
les gates (aucun ne parse les dates). Distinct de `two-logging-channels` (qui borne les *figures*, pas
|
||||||
|
la *forme des dates*).
|
||||||
|
|
||||||
|
**Détecteur (stdlib pur `datetime.date`, rejouable).**
|
||||||
|
- **ISO** `YYYY-MM-DD` : chaque token doit construire un `datetime.date` valide (mois 1-12, jour valide
|
||||||
|
pour le mois, années bissextiles gérées par la stdlib).
|
||||||
|
- **Compact** `YYYYMMDD` (préfixe des session-ids `_HHMMSS`) : bornes **digit-only** `(?<!\d)…(?!\d)`
|
||||||
|
pour capturer réellement `20260806_154606` (le `\b` naïf échoue car `_` est word-char = piège corrigé)
|
||||||
|
sans faux-parser la portion heure `154606` (n'amorce pas « 20 »).
|
||||||
|
- **Cohérence journal** : chaque `05_activity_log/YYYY-MM-DD.md` — la date du **nom de fichier** doit
|
||||||
|
égaler la 1re date ISO de son **en-tête**.
|
||||||
|
|
||||||
|
**Dents prouvées (mutants, prod intouchée).** Selftest synthétique : `2026-02-30`/`2026-13-01`/
|
||||||
|
`20260230_1200` **MORDENT**, `2026-08-06`/`20260806_1200` **épargnés**. Bout-en-bout sur fichier réel
|
||||||
|
(`05_activity_log/2026-08-06.md`) : baseline `[]` ; mutant `2026-08-46` → flagué ; mutant `2026-02-30`
|
||||||
|
→ flagué. 5/5 discriminés.
|
||||||
|
|
||||||
|
**Résultat.** Sur **379 fichiers** trackés (`.md/.json/.py/.yml/.sh/.txt`) : **289 tokens ISO** +
|
||||||
|
session-ids compacts → **0 date-calendaire invalide** · **0 mismatch** nom-fichier↔en-tête sur les
|
||||||
|
journaux `05_activity_log/`. **0 date inventée.** Faux-positifs écartés par construction : la portion
|
||||||
|
`HHMMSS` des timestamps (bornes digit-only), les entiers 8-chiffres non-datés hors fenêtre 2024-2027.
|
||||||
|
|
||||||
|
**Conformité.** 0 édition de production (sweep read-only). `./run_ci.sh` inchangé = **33 PASS · 0 FAIL ·
|
||||||
|
0 SKIP**. Fichiers : ce journal + 1 entrée mémoire. Sweep **rejouable** (stdlib pur) — **NON promu en
|
||||||
|
gate** (#5, occurrence-zéro).
|
||||||
|
|||||||
Reference in New Issue
Block a user