[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:
Claude Code DTP Worker
2026-08-06 15:49:39 +00:00
parent fdb0632cf6
commit 27d1117a2d
+37
View File
@@ -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).