Commit Graph

4 Commits

Author SHA1 Message Date
Claude Code DTP Worker 35de616236 [DTP-Worker] hardening correctness · l'alignement du compteur de tests audit_4big↔discovery (fix ASCII ac595d0) était INCOMPLET · criteria.py gardait def (un espace figé) là où la source sœur reglib.discovery a def\s+def test_x(/def\ttest_x( (Python valide) loupés → sous-comptage silencieux + désaccord avec l'autorité byte-gatée de la colonne « Tests » des fiches (violation #6, même racine « détecter la forme, pas une graphie » que ac595d0/fd99362)
Fix chirurgical `def ` → `def\s+` (forme strictement identique à discovery._TEST_METHOD_RE) + teeth test_tests_counts_non_single_space_def_separator (prouvé mordant : ancien regex compte 1/3, nouveau 3/3). Occurrence latente (0 def multi-espace dans le dépôt aujourd'hui) → quality_report.json byte-identique (audit_4big s'auto-exclut de son scoring). Cascade matrice régression 627→628 / 610→611 ; fiches qa+erpnext_backend re-dérivées. Axe recursion (os.walk vs os.listdir) non-occurrent, laissé. Classe compteur-coïncidence désormais close sur ses 2 axes. Pas de nouveau gate (#5 · check_readme_claims mord déjà). 0 code moteur V18 (bloqué #6), 0 commande VPS (#8).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-11 09:05:51 +00:00
Claude Code DTP Worker fd99362660 [DTP-Worker] hardening correctness · le critère CLI de l'audit 4Big (q4lib/criteria.py) détectait l'entrypoint __main__ par un littéral figé double-quoté → loupait silencieusement les gardes simple-quotées / « Yoda » / sans-espaces (toutes du Python valide) → sous-scorage CLI −20 pts d'un module sain (violation #6)
Même racine que le fix ASCII ac595d0 : une détection assume une graphie là où le langage admet plusieurs formes. Fix = regex de FORME (_MAIN_GUARD_RE : 2 styles de guillemets · ordre inversé · espacement libre) + teeth test_cli_detects_single_quoted_and_yoda_guards (3 fixtures, prouvé mordant : ancien littéral rend False sur les 3, nouvelle regex True). Robustesse pure : les 50 gardes du dépôt sont double-quotées et toujours matchées → aucun score ne bouge, quality_report.json byte-identique (audit_4big s'auto-exclut de son scoring). Cascade régression uniquement : 626/609 → 627/610 (nouveau test) + fiches qa/audit_4big 35→36 & agrégat & backend 626→627 re-dérivés (RED check_readme_claims). Sweep préalable : classe ASCII-vs-Unicode close au niveau CODE (générateurs+libs+gates shell tous ASCII-par-domaine sauf les 2 compteurs test déjà \w).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-11 08:39:51 +00:00
Claude Code DTP Worker ac595d0749 [DTP-Worker] fix correctness · audit 4Big sous-comptait un test au nom accentué (regex ASCII vs \w Unicode de la source sœur reglib.discovery)
criteria.py:18 comptait les méthodes via char-class ASCII [A-Za-z0-9_] →
loupait le test réel `test_traçabilite_source` (ç · PEP 3131, exécuté par
unittest) → évidence fausse « 22 méthodes » pour publiciste (réel 23), en
violation du cœur anti-invention #6 de l'audit lui-même. La source sœur
qa/regression/reglib/discovery.py:23 comptait déjà correctement (`test_\w+`,
\w Unicode) = 23 → les 2 outils QA divergeaient d'un. Fix aligné sur la sœur
(\w). Teeth ajoutée (test_tests_counts_non_ascii_method_names, mordante :
1 sur l'ancienne regex, 2 sur la nouvelle).

Cascade régénérée : quality_report.json (publiciste 22→23, verdict PASS 24/24
min 100 inchangé) · regression_run/plan/MANIFEST (625→626 exéc · 608→609 passés)
· fiches qa (audit_4big 34→35, agrégat 626/609) + erpnext_backend (625→626).
Blast-radius = 1 seul nom de test non-ASCII dans tout le dépôt (scan AST 24
suites). Pas de nouveau gate (#5) : check_readme_claims mord déjà la divergence.

run_ci = 33 PASS · 0 FAIL · 0 SKIP. 0 code moteur V18 (#6) · 0 VPS (#8).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-11 07:40:08 +00:00
Claude Code DTP Worker a517619432 [DTP-Worker] Sprint 7 · Générateur Audit 4Big qualité (95+/100 sur 100% deliverables) (QA · roadmap L69)
Audit de méta-niveau + gate : note la qualité 4Big de 100% des livrables gated
et bloque (FAIL) si un module < 95/100 (CLAUDE.md #5). Couverture PROUVÉE par
recoupement bijectif registre ↔ working-directory du CI (moins l'auditeur · SoD
ISA 315). 5 critères déterministes (DOC/CONTRAT/TESTS/CLI/HANDOFF) renormalisés
par archétype. Anti-invention (#6) : chaque note est recalculée depuis des faits
du dépôt, jamais saisie ; un invariant recompute chaque note.

Résultat : PASS · 17/17 modules à 100/100. Régression 442 tests verts (+34).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 10:11:02 +00:00