2ded65bbb42fc79967228a8387ae83c9ba154f34
347 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
2ded65bbb4 |
[DTP-Worker 20260806_164612] VÉRIF axe NEUF « intégrité de la FORME scalaire JSON (type int-vs-float-vs-str, pas la valeur) » des 57 out/*.json → CLEAN · 0 édition de prod
Axe NEUF absent mémoire : tous les axes numériques testent la VALEUR (accord inter/intra, re-dérivation, arithmétique) ou la forme-date ; aucun ne teste la FORME scalaire JSON. Un compte '3.0'/'"3"' au lieu de 3 se lit pareil mais casse type:integer / == strict / colonne typée = aveugle au byte-repro ET aux oracles (tous type:number accepte int+float, un sequence_id float passe). 3 sous-checks teeth-prouvés (/tmp stdlib) : (A) cohérence type intra-fichier par chemin structurel, (B) clés-compte nb_*/…_total/passed = int obligatoire, (C) 0 NaN/Infinity. Dents : un sequence_id int-parmi-floats MORD, nb=5.0/"44" MORD, comptes réels épargnés. Résultat CLEAN : B=0 C=0 ; A flague seulement run_sheet valeur (colonne clé-valeur hétérogène by-design) ; divergences inter-fichiers = collisions de nom per-module. 2 formes délibérées NON-défauts (sequence_id float = cast wslib/frappe.py:162 fidélité Frappe Float ; is_submittable 0/1 int = convention DocType Frappe). run_ci 33 PASS 0 FAIL 0 SKIP inchangé, rejouable, pas de gate (#5) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
d074250084 |
[DTP-Worker 20260806_161610] VÉRIF axe NEUF « intégrité arithmétique des champs DÉRIVÉS des artefacts » → CLEAN · 0 édition de prod
Classe NEUVE vs tous les axes numériques passés : ceux-ci couvrent la CARDINALITÉ (manifest nb_*/_total = len payload), l'accord INTER-artefacts d'un singleton, et les doublons d'ensemble. Ici on recalcule une DÉRIVATION (moyenne/taux %/somme-pondérée/écart/ verdict-seuil + nombres embarqués dans la prose) DEPUIS LES ENTRÉES BRUTES. Subtilité teeth : check_artifacts + test_build_egale_commite comparent la sortie du générateur au golden committé = attrapent la DÉRIVE mais PAS un bug-de-formule-régénéré-en-même-temps (code+golden bougent ensemble → vert) ; seul un recalcul premier-principe ferme cette classe. Faux-piste honnête corrigée : overall_percent semblait non-testé (grep 0 assert) mais 3 mutations gate.py in-place (mean /len→/3, doc pct *100→*90, prose paid/req inversé, restaurées git checkout) FAIL toutes via build==committed → protégé-dérive ; la lacune résiduelle est la formule-avec-régén. CLEAN : financement gate_status_example (overall=moyenne(4%)=39.1 · 3 %/condition · remaining= required-paid=14000 · 5 nombres prose reasons↔struct) · audit_4big 24 modules (applicable/earned= Σpoids · score=round(earned/applicable×100) · verdict=score≥95) + totals (pass_rate_pct) · banques 6× ordre LTV 0≤min≤max≤100 · commissions bornes taux. Détecteurs stdlib teeth-prouvés (mutants overall 39.1→52.1, prose paid→99999, score→77 MORDENT ; artefact réel passe). NON promu en gate (#5, occurrence-zéro, rejouable). 0 commande VPS (#8). run_ci 33 PASS 0 FAIL 0 SKIP inchangé. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
27d1117a2d | [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) | ||
|
|
fdb0632cf6 | [DTP-Worker 20260806_151604] VÉRIF axe NEUF « intégrité référentielle projet-code ↔ projet-nom canonique dans les artefacts » → CLEAN 128/128 · sœur de role-portail-referential-integrity mais sur la dimension PROJET/ENTITÉ : tout P0X + nom-projet + les 8 entités des out/*.json résolvent-ils au canon CLAUDE.md §Projets/§Entités, et l'appariement code↔nom est-il bon ? distinct de claude-md-constant-anchor (qui gate des COPIES) = ici on chasse la référence PENDANTE/mauvais appariement, faux-vert contre #6 « Zéro invention » ; détecteur stdlib teeth-prouvé (P02←Nakua MORD, P02→P10 pendante flaguée) ; 128 objets 1:1 0 mismatch + agrégat 9/9 + 0 code pendant + 8/8 entités ; faux-pos écartés = prose forme-courte « Aqua Terra » (P07) ; 0 édition de prod, run_ci 33 PASS 0 FAIL 0 SKIP, rejouable, pas de gate (#5) | ||
|
|
caeb06be5f |
[DTP-Worker 20260806_144555] VÉRIF axe NEUF « forme de normalisation Unicode (NFC vs NFD) des sources » → CLEAN 387/387 (369 non-ASCII, 0 non-NFC) · sibling byte-encoding-sweep au niveau NORMALISATION : un é décomposé/NFD se lit à l'identique mais casse tout grep/assert littéral NFC + est aveugle au byte-repro = faux-vert de gate ; détecteur stdlib teeth-prouvé bout-en-bout (flague NFD, épargne NFC, démontre le grep-miss) ; 0 édition de prod, run_ci 33 PASS 0 FAIL 0 SKIP, rejouable, pas de gate (#5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
5d5e986fa6 |
[DTP-Worker 20260806_141554] VÉRIF axe NEUF « accord numérique INTER-artefacts d'un concept-singleton partagé » (out/*.json ↔ out/*.json, distinct de l'intra-artefact et du code/prose↔artefact) → CLEAN · 0 édition de prod
Question neuve : quand un même concept-singleton plateforme apparaît comme scalaire dans deux out/*.json indépendants, les valeurs s'accordent-elles ? Une divergence silencieuse ship verte car aucun gate ne compare deux artefacts entre eux. Détecteur teeth-prouvé (57 fichiers ; position GLOBALE sans indice [i] = singleton vs PER-ROW = compte-de-ligne) : mutation cible_rbac_roles 50→49 dans un manifest → MORD. Résultat CLEAN : tous les singletons plateforme s'accordent (cible_rbac_roles=50, ci_modules_count/modules/suites=24, portails=5, doctypes_uniques=45, custom_docperm=116, role_profiles=6, min_score=100, pass_score=95). TRAP documenté : « même nom = même concept » sur-signale — fields/data_fields/permissions/roles/sections/pass divergent car chacun décrit SON propre DocType/suite (per-module-local, pas un singleton). Seul nom SURCHARGÉ divergent = roles_couverts 50 (tous les role-profiles) vs 44 (rôles des 5 portails business = 50 − 6 plateforme) = by-design, les deux re-dérivés de rbac_50_roles.json. 0 gate ajouté (#5, occurrence-zéro rejouable), 0 commande VPS (#8), run_ci 33 PASS 0 FAIL 0 SKIP. Canal stakeholder daily_reports porté 3710253→HEAD. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
04f4c21778 |
[DTP-Worker 20260806_134554] VÉRIF axe NEUF « l'artefact COMMITÉ sur disque conforme à son schéma ? » (fichier réel vs oracle, pas l'objet en-mémoire reconstruit) → CLEAN 57/57
8e axe-schéma : les 7 axes existants examinent LE SCHÉMA ; celui-ci examine LE FICHIER LIVRÉ. La mémoire notait le trou « jsonschema valide un objet en-mémoire, pas le flat out/ commité » — refermé ici. Chaîne de garde traçable pour les 57 payloads : schéma-whole · schéma-prop+byte-repro · wrap/split byte-repro d'un objet validé · ré-run byte-compare (regression_run via check_regression.sh l.53-70). Les 4 « no-fit » tous by-design (workflow.json wrap-liste fixtures Frappe · acceptance_matrix bundle moins manifest · run_sheet vue rendue · regression_run snapshot d'exécution). 0 fichier livré à forme non-gardée. Détecteur jsonschema 3.2.0 teeth-prouvé (clé-parasite additionalProperties:false → no-fit ; scalaire → no-fit, 2/2 MORDENT), rejouable /tmp hors réseau, 0 édition de production, 0 artefact touché, run_ci 33 PASS 0 FAIL 0 SKIP, pas de gate (#5, occurrence-zéro) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
1839f521aa | [DTP-Worker 20260806_131551] VÉRIF axe NEUF « cohérence draft/keyword des 26 oracles-schémas » ($schema déclaré vs idiomes cross-draft) → CLEAN 26/26 (tous draft-07, 13/13 porteurs=definitions jamais $defs, 0 bool exclusiveMinimum draft-04, 0 mot-clé post-07 silencieusement ignoré) — 7e axe-schéma jamais couvert : un mot-clé mal-déclaré est ignoré/re-typé par le validateur = faux-vert invisible aux 6 axes existants ; détecteur maison stdlib teeth-prouvé 5/5 (mutants exclusiveMinimum:true/id/required:true/$defs/unevaluatedProperties MORDENT), 0 édition de prod, run_ci 33 PASS 0 FAIL 0 SKIP, pas de gate (#5) | ||
|
|
bea5d49aab |
[DTP-Worker 20260806_124544] VÉRIF axe NEUF « atteignabilité transitive d'une assertion » → CLEAN 0/651 (aucun test run-only faux-vert) + 1 durcissement : test_validate_exits_zero passait sans assertion explicite (mordait implicitement via SystemExit) → assertEqual(main(["validate"]),0) strictement plus fort ; détecteur AST teeth-prouvé, résolution transitive du graphe d'appels (évite 40 faux-positifs de délégation _expect_error/_breaks), 0 logique de prod touchée, run_ci 33 PASS 0 FAIL 0 SKIP, pas de gate (#5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
4aea5bddf7 | [DTP-Worker 20260806_121542] VÉRIF axe NEUF « cohérence interne des 26 oracles-schémas » (required-vacuité + auto-contradiction const/enum/default) → CLEAN 26/26 (1405 nœuds · 317 checks · 0 nœud insatisfiable), 2 détecteurs maison teeth-prouvés (4/4 mordent) — 6e axe-schéma, faux-vert impossible à voir par les 5 axes existants ; 0 édition de production, run_ci 33 PASS 0 FAIL 0 SKIP, pas de gate (#5) | ||
|
|
6c05538efb |
[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> |
||
|
|
27cfe2fe59 |
[DTP-Worker 20260806_111534] VÉRIF axe neuf « intégrité référentielle des $ref des 26 oracles-schémas » → CLEAN 108/108 (0 pendouillant/externe/orphelin), détecteur teeth-prouvé (double faux-vert jsonschema/maison)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
3710253c02 |
[DTP-Worker 20260806_104533] FIX couverture · oracle orphelin brief.schema.json câblé à un test → le SEUL des 26 *.schema.json non enforced
Constat: faisabilite/generator/brief.schema.json, documenté « Contrat d'entrée » et sibling de version/projets_master (tous deux test-enforced), n'était validé par AUCUN test — _validate_brief() ne garde que le code projet, jamais la forme complète du brief; un brief drifté hors contrat passait inaperçu. Fix (teeth): test_input_briefs_validate_against_brief_schema valide les 2 fixtures contre brief.schema.json via le validateur maison Publiciste (zéro-pip, toujours exécuté, pas de skip sous python -S). Conformité pré-vérifiée sous validateur maison ET oracle jsonschema. L'« incomplet » est conforme au sens schéma (null admis) — incomplet seulement au sens sémantique (prix→placeholders #6). Cascade régénérée (générateurs, jamais à la main #6): regression_plan/run/MANIFEST 16→17 · totaux 624→625 exécutés / 607→608 passés / 17 skippés · quality_report evidence 16→17. Prose gatée réalignée (le gate check-readme-claims a mordu): README module + fiches faisabilite/qa/erpnext_backend. Prose ungatée: GAP_ANALYSIS 16→17 + nouveau bloc daily_report (blocs currency antérieurs = snapshots datés, non réécrits). 0 gate ajouté (#5) · 0 chiffre à la main (#6) · 0 commande VPS (#8). run_ci.sh = 33 PASS · 0 FAIL · 0 SKIP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
d9668d6079 |
[DTP-Worker 20260806_101528] VÉRIF axe neuf « fermeture & complétude des 26 oracles-schémas » → 1 anomalie (financement) investiguée = NON-DÉFAUT
Complémentaire de schema-oracle-teeth-audit (non-vacuité) : audite la FERMETURE (additionalProperties:false) + la COMPLÉTUDE (properties ⊇ clés émises) des 26 *.schema.json. 23/26 entièrement fermés (convention). Seule anomalie réelle : financement.schema.json — top `additionalProperties:true` explicite (3 pairs CRM fermés) + 8 nœuds sous-énumérés (note/resume/titre/endpoint/couleurs/source_*). Le validateur maison honore pourtant additionalProperties. Verdict NON-DÉFAUT : souplesse DÉLIBÉRÉE (structure validée serré via pattern/enum/ counts min-max ; seuls champs DESCRIPTIFS libres — même motif que seo @graph[] JSON-LD + brief=schéma d'ENTRÉE) ET transitivement couverte par test_build_egale_ commite (byte-repro out/ == build frais → toute dérive nom/présence RED via check_artifacts). Fermer = churn (#5) à risque de faux-rejet, 0 dent nette gagnée. Faux positif écarté : mobile top = additionalProperties:false (fermé) ; les 4 « under-spec » = artefacts de reconstruction plate (objets imbriqués). Vérif authoritative = build_bundle réel, pas une reconstruction depuis out/*.json. 0 prod édité · 0 schéma modifié · 0 artefact reconstruit · 0 gate (#5) · 0 chiffre saisi main (#6) · 0 commande VPS (#8). run_ci 33 PASS 0 FAIL 0 SKIP (inchangé). Éditions : journal + mémoire schema-oracle-closedness-not-defect (hors repo). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
e87f5f56af |
[DTP-Worker 20260806_094524] VÉRIF axe teeth neuf « tests silencieusement fantômes (shadowing) » → CLEAN 25/25
Nouvel axe absent de la mémoire, distinct de module-suite-teeth-mutation (mute la LOGIQUE) et schema-oracle-teeth-audit (audite l'ORACLE) : cible le HARNAIS de test lui-même. 3 cas où une méthode est définie mais unittest discover ne l'exécute jamais, sans qu'aucun gate ne le voie — (a) def test_x dupliqué dans une classe (Python garde la dernière liaison), (b) class TestFoo dupliqué dans un fichier (2ᵉ masque 1ʳᵉ), (c) def test_* niveau-module (discover ne le lance pas). Trou réel : un shadow passe par absence ET ferait SUR-compter check_readme_claims (compte textuel des def test_). Détecteur AST teeth-prouvé sur sonde synthétique (3/3 mordent). Balayage réel CLEAN 25/25 fichiers (0 méthode-dup, 0 classe-dup, 0 test niveau-module). Sweep rejouable, NOT a gate (occurrence-zéro, #5). run_ci 33 PASS 0 FAIL 0 SKIP · 0 prod édité · 0 artefact reconstruit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
44712cbdfa |
[DTP-Worker 20260806_091519] FIX doc · axe neuf « compte de colonnes des tables Markdown » → ligne orpheline dans le TEMPLATE canonique de faisabilité
Sweep repo-wide des tables .md (en-tête↔séparateur↔corps, | échappés ignorés) → 3 hits :
1 vrai défaut + 2 faux positifs (| littéral dans code-span, dans snapshots historiques immuables).
DÉFAUT : TEMPLATE_FAISABILITE_CANONIQUE_v1.0.md §5.2 « Financier bancable » — table à en-tête
4 colonnes, lignes 4.4→4.12 toutes à 4 cellules, MAIS ligne 4.13 en portait 5 (scindait
description + placeholder {{regime_fiscal}} en 2 cellules → colonne orpheline visible pour cette
seule ligne, dans un template CANONIQUE que le générateur 4 volets / Publiciste / batch S4 doivent
reproduire). FIX : fusion des 2 fragments dans l'unique 4e colonne avec « · » (idiome des sœurs).
SÛRETÉ : check_readme_claims.sh:5765 lit ce template mais n'ancre que les lignes #9 (l.144-146) /
#10 (l.149-151) ; 4.13 ne porte ni #9/#10/pourcentage-gras → aucune regex touchée ; les 5 surfaces
d'ancrage restent vertes post-fix. run_ci = 33 PASS · 0 FAIL · 0 SKIP · 0 artefact reconstruit ·
0 gate ajouté (#5) · 0 chiffre inventé (#6) · 0 VPS (#8).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
9acd8441dc |
[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>
|
||
|
|
42d54b045f |
[DTP-Worker 20260806_081509] VÉRIF récurrence bug set-semantics (48276ee) sur TOUS les artefacts → CLEAN, détecteur à dents prouvées
Généralisation de la chasse au dernier bug générateur commité (
|
||
|
|
def4706de3 |
[DTP-Worker 20260806_074504] VÉRIF axe méta « bijection de câblage CI » (ci/*.sh ↔ jobs ci.yml ↔ miroir run_ci) → CLEAN + auto-protégé. 8/8 gates statiques câblés dans ci.yml (0 orphelin) ; run_ci dérive gate.needs sans nom en dur (0 réf/7, 1 commentaire) donc dérive local↔CI impossible par construction ; prose « 7/7 · 8 statiques verts » = dents de mutation pédagogiques (KEEP). 1 sous-classe ungatée notée (script disque sans job → gate mort silencieux ; occurrence-zéro ⇒ sweep rejouable, pas gate #5). Currency écartée (2 commits depuis e786c12 = doc/comment, 0 sortie changée). 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> |
||
|
|
4c741a7118 |
[DTP-Worker 20260806_071503] DOC anti-footgun in-fiche — colonne « Sortie » de frontend_console/AGENT.md : documenter l'omission MANIFEST volontaire
Un Explore adversarial a re-flagué (2e fois) la cellule « Sortie » du chat_otoia comme « manque MANIFEST.json » — faux positif connu (fiche-sortie-cell-omits-manifest- by-design) : les DEUX rangs (portails+chat) listent le payload seul, MANIFEST omis par convention, docstrings/READMEs énumèrent les 3 (byte-gatés). La récurrence prouve un footgun non documenté (brûle des cycles d'audit, risque un fix #5/#6 cassant le gate regex-parsé). Mitigation : blockquote « Note de lecture » après la table, rédigé pour éviter les regex ancrées du gate (aucun compteur cartes/liens/rôles ni **N tests**). check_readme_claims PASS · check_docs PASS · run_ci 33 PASS 0 FAIL 0 SKIP · 0 artefact reconstruit · 0 gate ajouté (#5) · 0 chiffre inventé (#6) · 0 commande VPS (#8) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
ddcafc58c0 |
[DTP-Worker 20260806_064502] DOC code-site — commentaire anti-footgun sur renderer._CANONICAL_MARKERS (oracle d'enforcement à garder indépendant)
Investigation: les 6 marqueurs canoniques #9/#10 existent en ≥4 endroits. Hypothèse « (c) renderer._CANONICAL_MARKERS + (d) l'oracle du test sont des copies non gatées → dériver de model.CANONICAL (source unique) ». RÉFUTÉE par ./run_ci.sh (check-readme-claims RED): la 2e moitié du gate ast.literal_eval STATIQUEMENT ces 2 listes et les set-diffe vs CLAUDE.md → déjà gatées. Et surtout: check_canonical() PROUVE que le rendu (bâti DEPUIS model.CANONICAL) émet chaque valeur; le dériver de CANONICAL rend le contrôle tautologique (vert vacux). EXCEPTION à fix-vs-gate-transitively-protected-constant (qui vise les copies PASSIVES; un oracle d'enforcement est ACTIF, sa duplication EST le test). Revert intégral des 2 éditions (test byte-identique). Seul survivant: +5 lignes de commentaire remontant la raison (indépendance de l'oracle) au site de code, autrement enfouie dans le script CI. Sortie inchangée (commentaire pur), check_artifacts byte-identique. run_ci 33 PASS 0 FAIL 0 SKIP · 0 artefact reconstruit · 0 gate ajouté (#5) · 0 chiffre inventé (#6) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
e4b3488c7e |
[DTP-Worker 20260806_061455] CURRENCY canal stakeholder porté de 48276ee au HEAD e786c12 — fix prose-facts-drift: le snapshot daily_reports affirmait « dernière prod = 48276ee, reste 0-édition » alors qu'e786c12 édite README.md (3 href, fix label↔cible). Sur les 5 commits depuis 48276ee: 4 journal-only + 1 édition dépôt réelle tabulée. Chiffres re-dérivés (8/25/33/624/607/17) inchangés (e786c12 ne touche que des href). check_docs PASS · run_ci 33 PASS 0 FAIL 0 SKIP · 0 artefact reconstruit · 0 gate ajouté (#5)
|
||
|
|
e786c128b2 |
[DTP-Worker 20260806_054454] FIX doc — lien Markdown label↔cible incohérent dans README.md
Axe NEUF (absent mémoire): liens `[`label`](cible)` où le label code-span est un chemin de fichier EXISTANT dont le basename diffère de la cible href. check_docs prouve que la cible résout, jamais que le label la désigne — un Cmd-clic sur `ci/guard_constraints.sh` atterrissait sur `ci/README.md` (mauvais fichier). Balayage git ls-files '*.md' → 3 occurrences, toutes README.md (L54 x2 + L75). Les scripts nommés existent + sont git-trackés (gates) ⇒ FIX = pointer chaque label vers le fichier qu'il nomme. label==cible, navigation véridique, check_docs toujours vert. Re-balayage mismatch → 0. Axe éliminé au passage (CLEAN, non re-flaggé): chemins-fantômes backtick — 2 survivants = faux positifs (label de lien à vraie cible · résolution sous-arbre confotur/cflib). run_ci = 33 PASS · 0 FAIL · 0 SKIP. 0 gate (#5, origine isolée), 0 artefact rebuild, 0 chiffre inventé (#6), 0 VPS (#8). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
a678534b8b |
[DTP-Worker 20260806_051453] VÉRIF indépendante — NOUVELLE famille objective « portabilité runtime / intégrité d'encodage » (3 axes neufs, absents de la mémoire, gardés par AUCUN gate) sur les fichiers commités : (1) encodage — 379 fichiers texte : 0 BOM · 0 UTF-8 invalide · 0 caractère de contrôle/surrogate · 114/114 JSON parseables · (2) fins de ligne — 0 CRLF (LF pur) · (3) py_compile — 144/144 .py compilent (dents au-delà des 25 suites : un helper *lib/ non importé par un test resterait vert malgré une syntaxe cassée). → CLEAN · dents réelles mais occurrence-zéro ⇒ sweep rejouable, PAS un gate (#5). Pré-vérif : 0 TODO/stub réel en prod (tous les « placeholder » = pattern #6). Canal stakeholder déjà courant (dernière prod = 48276ee). → 0 édition de production
|
||
|
|
12ec9d0711 |
[DTP-Worker 20260806_044449] VÉRIF indépendante — 2 axes objectifs NEUFS: (1) clés JSON dupliquées sur 114 fichiers commités [json.load garde le dernier, byte-repro aveugle] → 0 · (2) re-dérivation des champs-compte MANIFEST depuis le payload réel (portails nb_liens/cartes/roles+agrégats · chat nb_roles/kdt · mobile nb_roles · rbac roleprofile nb_roles · audit_5d controls_total) → 0 écart. Faux positif Card-Break/Link écarté (nb_liens=Σtype==Link, par design). → CLEAN · 0 édition de production
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
4bc98198b1 |
[DTP-Worker 20260806_041444] VÉRIF indépendante — NOUVEL axe objectif: intégrité référentielle des slugs rôle+portail inter-artefacts (980 refs rôle + 66 portail vs rbac_50_roles.json) → CLEAN · 0 édition de production
Sweep rejouable de tous les out/*.json: 0 slug de rôle non résolu vs les 50 ids canoniques; 6 tokens portail hors portails_business = non-défauts vérifiés (5 valeurs icon ERPNext du champ mobile + le 6e portail technique legitime plateforme). Axe jamais balayé, distinct de docstring/currency. 0 prod, 0 artefact rebuild, 0 gate (#5), 0 chiffre inventé (#6), 0 VPS (#8). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
b2749587c0 |
[DTP-Worker 20260806_034434] CURRENCY canal stakeholder porté de a8342e9 au HEAD 48276ee + re-vérif indépendante de la dernière prod
Le daily_reports/2026-08-06.md (rédigé session 011419, attestait HEAD |
||
|
|
48276ee916 |
[DTP-Worker 20260806_031432] FIX générateur — crm/financement_bancaire MANIFEST.roles_rbac_utilises répétait ventes-conseiller (dup ungaté, liste per-slot vs ensemble distinct)
Défaut réel/reproductible (pas stale, byte-repro vert) : finlib/builder.py:89
faisait [roles_resolved[k] for k in sorted(roles_resolved)], itérant les 4 SLOTS
logiques de spec["roles"] — 2 slots (conseiller_wag ET validation_dossier) pointent
le même rôle ventes-conseiller → 4 entrées pour 3 rôles distincts. Preuve bug (pas
per-slot voulu) : la sortie drope la clé de slot (cle), donc le doublon ne porte
aucune info distinctive ; sémantique documentée README.md:54 « rôles RBAC utilisés »
+ ci/README.md:1100 « ensemble distinct » ; les 3 modules frères produisent tous un
ensemble distinct (confotur 3/3, commissions 4/4, workflow_vente 7/7) — financement
seul outlier 4/3.
Fix (aligné idiome commissions) : ensemble distinct trié par role_id via
sorted({rr["role_id"] for rr in roles_resolved.values()}). Artefact régénéré → 3/3
distinct. 0 gate ajouté (#5 — champ lu par AUCUN gate financement ni consommateur
externe ; convention distinctness déjà tenue par les frères). 0 chiffre inventé (#6).
run_ci 33 PASS · 0 FAIL · 0 SKIP (byte-repro vert avec nouvel artefact, 35 tests verts).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
243523c6c2 |
[DTP-Worker 20260806_024430] VÉRIF indépendante multi-axes (7 axes) → CLEAN · 0 édition de production
Chasse adversariale ciblée à un vrai défaut ungaté sur 7 axes FRAIS (anti-churn : évite
help-text/currency/prose déjà balayés par 021424/014423/011419). Tous CLEAN ou déjà gatés :
1. README «Entrée CLI»↔argparse (23 modules) — 0 flag/sous-commande fantôme.
2. Sémantique CLI `validate` — re-build en mémoire, PAS de dents vs out/ corrompu = BY-DESIGN
(check_artifacts couvre la dérive byte). Noté verify-before-flag.
3. Ledger 15 invariants SEO — code 1..15 + 3 proses + README self-consistent ; «=9» mémoire = 9
MODULES dialecte A, pas 9 invariants (non-contradiction).
4. Root README «24 modules / 24 suites» — sourcé : 24=périmètre audit_4big ; 24 suites=
regression_plan self-exclu (self_module qa/regression) = 25 run_ci − 1. Piège réconcil. 24-vs-25.
5. Prose notes[] dans artefacts JSON (regression_plan) — accurate, re-générée+byte-gatée.
6. Complétude gate.needs (33 checks, e2e-baseline manuel exclu) — DÉJÀ GATÉ par
check_ci_integrity.sh INV-A (gate.needs == {tous jobs} − {gate} − {manuels}).
7. Commentaires inline # cross-fait/compteur (*_gen.py + *lib/, hors docstrings/README) —
14 compteurs vérifiés vs réalité (50 rôles, 3 langues, 5 portails, 12 groupes PIE…). CLEAN.
0 prod touché, 0 artefact rebuild, 0 gate ajouté (#5), 0 chiffre inventé (#6), 0 VPS (#8).
run_ci 33 PASS · 0 FAIL · 0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
354a68788d |
[DTP-Worker 20260806_021424] FIX argparse-help↔code — seo/seo_gen.py help build nommait des fichiers de sortie INEXISTANTS
Poursuite de la sous-classe help-text du fix |
||
|
|
b60d471030 |
[DTP-Worker 20260806_014423] FIX prose-numérique canal stakeholder — le compte « bijection compte-de-tests README↔réel » de la session 011419 sous-comptait les READMEs annonceurs (14 → 16)
Défaut réel (classe prose-facts-vs-numeric-drift) présent dans DEUX surfaces — daily_reports/2026-08-06.md (l.48-54, canal stakeholder) ET 05_activity_log/2026-08-06.md (entrée 011419) : l'« axe de vérification objectif » annonçait « concordance totale sur les 14 READMEs annonceurs » mais son énumération omettait 2 modules qui annoncent pourtant un compte de tests dans leur README, tous deux concordants avec le réel — frontend/portails 19 (19 def test_) et demo/scenarios 39 (39 def test_). Le vrai total est 16 annonceurs / 9 sans annonce, corroboré par l'en-tête faisant autorité de ci/check_readme_claims.sh (l.96 : « 27 claims sur 16 modules »). Le « 11 sans annonce » était le complément erroné 25−14 → 9. Fix (sweep des 2 surfaces en une passe, cf. prose-facts-vs-numeric-drift : un twin fix balaie TOUTES les surfaces) : daily_reports 14→16 + ajout des 2 entrées manquantes + 11→9 + ancrage explicite au gate ; journal 14→16 dans l'entrée 011419 (fait courant) avec commentaire de traçabilité + nouvelle entrée documentant la correction. Chiffres recomputés, non saisis (grep READMEs annonceurs=16 · def test_ concordance 16/16 · find tests=25 → complément 9). Écarté au préalable : candidat comment↔code check_regression.sh:17 (« ran/passed/failures ») = FAUX POSITIF — le commentaire décrit ce que l'ARTEFACT porte (le JSON a bien failures:0), pas la ligne d'affichage l.79 ; le contrat réel = diff -q byte-à-byte du fichier entier l.71. 0 prod édité, 0 artefact rebuild, 0 gate ajouté (#5 — la surface README-count est déjà gatée), 0 chiffre inventé (#6), 0 VPS (#8). run_ci 33 PASS · 0 FAIL · 0 SKIP avant/après. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
34c8cd2e17 |
[DTP-Worker 20260806_011419] CURRENCY canal stakeholder porté au HEAD a8342e9 · le canal daily_reports s'arrêtait au 2026-08-05 (8903a4b) et ne reflétait pas les 2 jalons du 08-06 — fe61207 (VÉRIF multi-axes CLEAN) et surtout a8342e9 (FIX 1-ligne help argparse mobile/app_config omettant store_listing.json), un vrai changement d'état non encore consigné stakeholder. Rapport daily_reports/2026-08-06.md : tableau des 2 jalons (nature+opposabilité), état courant re-dérivé d'artefacts (33 PASS = 8 statiques + 25 suites · régression 624 exec/607 pass/17 skip=PASS) + AXE OBJECTIF ajouté : bijection compte-de-tests README↔réel (def test_*) → concordance totale 14/14 READMEs annonceurs, 0 dérive. Vérif préalable lecture-seule : docstring↔code publiciste + fiscal/ecf (« 12 invariants »=schéma+2→12 self-consistant, pas un défaut) CLEAN ; couverture CI publiciste confirmée dans gate.needs. 0 prod, 0 artefact rebuild, 0 gate (#5), 0 chiffre inventé (#6 — tout recomputé), 0 VPS (#8). run_ci 33 PASS·0 FAIL·0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
a8342e97e2 |
[DTP-Worker 20260806_004414] FIX docstring↔code — help argparse de la sous-commande build (mobile/app_config_gen.py) omettait store_listing.json
Chasse adversariale ciblée (classe RECURRING docstring↔code, scopée aux modules non balayés
la veille) → 1 vrai défaut ungaté. Le help= de sub.add_parser("build") énumérait 4 sorties
(app_config/eas_build/role_navigation/MANIFEST) alors que cmd_build() en écrit 5 : store_listing.json
(l.243) était omis. Docstring (l.15 « les 5 fichiers ci-dessus ») + README (l.56/68) listent bien
les 5. Nouvelle sous-classe help-text argparse du motif docstring↔code (2e surface prose dans le code,
distincte des open('w') vs docstring déjà balayés). Fix = ajout store_listing.json à sa position
canonique. Aucun gate/test ne fige la chaîne (grep -rn = 0 hit externe) → pas d'oracle à réaligner,
pas de gate ajouté (#5). Non-régression : help n'affecte aucune sortie, artefacts byte-identiques,
run_ci 33 PASS·0 FAIL·0 SKIP avant/après. Reste de l'audit (audit_5d/acceptance/regression/
deploy_runbook/commissions/dossier_vente/ecf/portails/faisabilite) CLEAN. 0 artefact rebuild, 0 VPS (#8).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
fe61207ca6 |
[DTP-Worker 20260806_001412] VÉRIF indépendante multi-axes → CLEAN · 0 édition de production
Session de vérification (pas de currency churn : le canal stakeholder daily_reports attestait |
||
|
|
c196e4183e |
[DTP-Worker 20260805_234409] VÉRIF adversariale ciblée · candidat « MANIFEST.json manquant » de la fiche frontend_console = NON-défaut par design · 0 édition de production
Chasse à un vrai défaut ungaté (agent Explore skeptique) plutôt que répéter le motif de currency (churn). Candidat remonté puis RÉFUTÉ par vérif indépendante : la cellule « Sortie » de 03_agents/frontend_console/AGENT.md omet MANIFEST.json dans les DEUX lignes (portails:28 `out/workspace.json` alors que workspaces_gen.py:219 l'écrit ; chat_otoia:29 `{custom_block,chat_mount}` alors que chat_otoia_gen.py:229 l'écrit) → convention éditoriale (payload listé, manifeste de traçabilité omis), PAS une dérive. L'énumération complète des 3 fichiers est correcte là où elle compte (docstring chat_otoia_gen.py:12/15/18 + README module). Corriger la seule ligne chat = asymétrie ; éditer les deux = churn d'une cellule parsée par ci/check_readme_claims.sh (CO_FI ~L3506/L3576). CLEAN, laissé tel quel (#5/#6, « X not drift, don't fix »).
0 fichier de production édité, 0 artefact reconstruit, 0 gate ajouté (#5), 0 chiffre saisi (#6, 33 recompté de run_ci.sh), 0 VPS (#8). Seule édition in-repo : le journal. Mémoire projet : fiche-sortie-cell-omits-manifest-by-design.md. run_ci 33 PASS·0 FAIL·0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
21f55a9ed7 |
[DTP-Worker 20260805_231404] CURRENCY canal stakeholder porté au HEAD 8903a4b · le rapport roadmap 2026-08-05 attestait à cb3de78 (session 211340) et ne reflétait pas 2 jalons plus tardifs du même jour — d6a8d73 (221354, SWEEP bijection INVERSE out/ = 0 orphelin) et 8903a4b (224359, FIX comment-vs-code ci/validate_json.sh = parse-only, pas de contrôle $schema). Section « Mise à jour de currency · fin de journée (HEAD 8903a4b) » : tableau des 2 jalons (nature + opposabilité) + état de vérif indépendant. Verif primaire = chasse docstring↔code (classe RECURRING) sur tous *_gen.py + helpers *lib/ (sorties/flags/comportement) → CLEAN, 0 dérive haute-confiance ; non-défauts connus ré-écartés (placeholder #6, compat validate -o OUT self-consistant). Structure gate INCHANGÉE : run_ci 33 PASS = 8 statiques (git ls-files ci/*.sh hors lib.sh = 8) + 25 suites, aucun jalon n'ajoute de job. 0 prod, 0 artefact rebuild, 0 gate ajouté (#5), 0 chiffre saisi (#6 — 8/33 recomputés), 0 VPS (#8). run_ci 33 PASS·0 FAIL·0 SKIP.
|
||
|
|
8903a4b774 |
[DTP-Worker 20260805_224359] FIX comment-vs-code — commentaire fantôme dans le gate ci/validate_json.sh
Le gate valide la bonne-formation JSON SEULEMENT (parse strict), mais l.27 portait un commentaire orphelin annonçant un contrôle de conformité $schema/draft que le code n'implemente jamais (branche then imprime juste le check). Nouvelle sous-classe comment-vs-code : les scripts de GATE eux-memes, jamais couverts par les sweeps docstring-vs-code (scopes aux generateurs de prod + helpers *lib/). Isolement verifie : sweep des 8 scripts ci/*.sh + lib.sh = 0 autre derive. Fix 2 volets : (1) suppression de la ligne fantome ; (2) en-tete PERIMETRE explicite (bonne-formation seule ; conformite $schema = oracle jsonschema optionnel de check_regression.sh, 17 skips par design) -> le commentaire retire devient une affirmation positive et vraie du perimetre. 0 changement de logique executable, 0 artefact rebuild, 0 gate ajoute (#5, FIX pas controle neuf), 0 chiffre saisi (#6), 0 VPS (#8). run_ci 33 PASS / 0 FAIL / 0 SKIP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
d6a8d73aec |
[DTP-Worker 20260805_221354] SWEEP vérification — bijection INVERSE des artefacts out/ (0 fichier commité orphelin) · 0 édition de production
Repo VERT/convergé à l'ouverture (run_ci 33 PASS·0 FAIL·0 SKIP). Balayage lecture-seule multi-surface avant tout travail (anti-gate-N+1 #5) : 24/24 modules CI-câblés+régression-couverts+fiche-documentés ; docstring↔code CLEAN (3 classes, sous-agent Explore) ; registre décisions ouvertes D-01..D-05 encore ouverts + citations file:line encore exactes (re-vérifiées) ; publiciste build/ gitignore-d, fiche exacte ; sweep CWD-hétérogène écarté (faux positifs — gate exécute les gen depuis leur module par conception). FINDING — axe robustesse non couvert : check_artifacts prouve la direction AVANT (produit⊆commité, itère les fichiers produits l.71-93) mais JAMAIS l'INVERSE (un out/ commité orphelin, plus émis par build, passerait silencieusement). Sweep exécuté (lecture seule, rejouable) : 58 fichiers out/ commités, 57 reproduits par build. Le seul « orphelin » = qa/regression/out/regression_run.json, BY DESIGN artefact d'EXÉCUTION (run, pas build) exclu du contrat build (docstring check_artifacts l.21-24) et byte-gaté séparément par check_regression.sh → 0 orphelin réel, bijection inverse tient. PAS un gate (#5) : AVANT déjà gaté ; INVERSE empiriquement propre + transitivement attrapé (tout consommateur reproductible lisant un out/ périmé casse check_artifacts). Consigné comme sweep rejouable, sibling des sweeps hash-seed/locale-TZ/forward-compat. Portée : 0 prod, 0 artefact rebuild, 0 gate ajouté (#5), 0 chiffre saisi (#6 — 8/24/33/58/57 recomputés), 0 VPS (#8). Seule édition : le journal. run_ci 33 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
d4f9289586 |
[DTP-Worker 20260805_214344] CURRENCY canal stakeholder porté au HEAD cb3de78 · le rapport roadmap 2026-08-05 attestait à 27c7d20 (session 201339) et ne reflétait pas 1 jalon plus tardif du même jour — cb3de78 (211340, gate fiche-enumeration-completeness 2ᵉ locus = table §1 de ci/README.md, jumeau ungaté de la fiche QA fermée afa6165)
Canal roadmap (distinct du journal activity_log per discipline « deux canaux ») porté au HEAD courant. Section « Mise à jour de currency · fin de journée (HEAD |
||
|
|
cb3de786f8 |
[DTP-Worker 20260805_211340] GATE — complétude de l'énumération des gates dans la TABLE §1 de ci/README.md (jumeau ungaté de la fiche QA)
La table §1 « Ce que fait le pipeline » de ci/README.md est LA doc canonique des jobs
statiques (une ligne par gate ci/*.sh). Sa complétude était le jumeau exact de la fiche QA
fermée par
|
||
|
|
9c7791f23a |
[DTP-Worker 20260805_204339] CURRENCY canal stakeholder porté au HEAD · le rapport roadmap 2026-08-05 attestait à 1a44dfe (session 181325, 18:13) et ne reflétait pas 2 jalons plus tardifs du même jour — afa6165 (194334, gate neuf fiche-enumeration-completeness) et 27c7d20 (201339, attestation chaîne d'intégrité des constantes) ; canal (distinct du journal activity_log per discipline « deux canaux ») porté au HEAD. Précédent identique 1b99917. Section « Mise à jour de currency · fin de journée (HEAD 27c7d20) » : tableau des 2 jalons (nature + opposabilité au merge) + état de vérification indépendant + portée. Structure du gate INCHANGÉE — run_ci 33 PASS = 8 gates statiques (git ls-files ci/*.sh hors lib.sh = 8) + 25 suites, aucun jalon n'ajoute de job. Balayage lecture-seule multi-surface préalable, 0 dérive : docstring↔code 25 générateurs (sorties+comportement CLEAN) · comptes tests par fiche (CRM 81=trio 25+31+25 + financement 35 · ecf 39 · confotur 44 · seo 36 · portails 19 · chat 31, concordants+gatés) · ancrage #9/#10 (check_readme_claims:5355+ re-dérive 3%/8.5%/52% de CLAUDE.md) · Expo 51 actuel/54 cible cohérent partout · regression 624 ran = 650 méthodes − 26 (suite qa-regression exclue de son méta-run, byte-gaté check_artifacts) · fiche QA cite 8/8 gates. 0 prod, 0 artefact rebuild (rapport non scoré audit_4big), 0 gate ajouté (#5), 0 chiffre saisi (#6 — 8/33/624 recomputés), 0 VPS (#8). run_ci 33 PASS·0 FAIL·0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
27c7d20449 |
[DTP-Worker 20260805_201339] ATTESTATION bout-en-bout · chaîne d'intégrité des constantes mandataires CLOSE CLEAN · 0 édition de production
Roadmap livrée+gatée, baseline verte (33 PASS) : plutôt qu'un gate marginal (#5), preuve end-to-end que la classe de bug latent la plus coûteuse — un générateur figeant une constante du mandat en littéral (précédent réel bancable_gen.py 0.52→finance._pct) — n'a AUCUN maillon hardcodé ni ungaté. 3 sondes : (1) Explore fan-out 05_deliverables_mvp/** → 0 littéral non-sourcé ; tous les générateurs lisent 2 sources canoniques uniques (genlib/model.py CANONICAL 6 valeurs #9/#10 ; publiciste/lib/branding.py 4 tokens #4). (2) ces 2 sources sont elles-mêmes ancrées à CLAUDE.md dans check_readme_claims.sh (bloc l.5427 model.py↔#9/#10 ; bloc l.6958 branding.py↔#4 + docstring + README + oracle test + renderer._CANONICAL_MARKERS) → boucle fermée sans trou. (3) les 2 ancres-pivots MORDENT, mutation-prouvé : MUT1 branding COLOR_ACCENT #f0b429→#e0a420 → RED nommant l'écart ; MUT2 model.py marketing 8.5%→9% → RED ; restauration ciblée git checkout -- <path> (JAMAIS git clean) → tree propre, gate re-vert. Faux-positif écarté (settled) : daily 2026-08-05 tête « 624 passés · 0 skip » vs artefact 607/17 = dated-snapshot déjà reconcilié §CURRENCY l.146-171, LAISSÉ. 0 prod, 0 gate (#5), 0 artefact reconstruit, 0 chiffre saisi (#6), 0 VPS (#8). run_ci 33 PASS · 0 FAIL · 0 SKIP · git status propre. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
afa61657cb |
[DTP-Worker 20260805_194334] GATE NEUF classe fiche-enumeration-completeness : le tableau des gates statiques de la fiche QA se déclare « l'état courant » de git ls-files 'ci/*.sh' mais OMETTAIT le 8ᵉ gate check_mobile_workflow.sh (livré le jour même, cité NULLE PART dans la fiche · grep=0) — check_ci_integrity verrouille le CÂBLAGE CI (ci/*.sh↔gate.needs) mais ignore la fiche, check_readme_claims ne recomputait aucune énumération de gates → surface ungatée. Fix 2 volets : (1) ajout de la ligne manquante (rôle fidèle à l'en-tête du gate, placée après check_ci_integrity) ; (2) extension de check_readme_claims.sh (bloc Python avant sys.exit, réutilise subprocess/bad/good, 0 nouveau gate #5) re-dérivant l'ensemble de git ls-files 'ci/*.sh' (hors lib.sh, #6) et exigeant que chaque basename soit cité (backtické) dans la fiche ; un gate absent échoue. Teeth mutation-prouvés 2 axes : MUT1 retrait de la ligne → RED nommant check_mobile_workflow ; MUT2 ajout d'un 9ᵉ ci/*.sh factice (index seul) → RED (forward-protection : le prochain gate ne pourra être omis) puis --cached retiré, arbre byte-restauré (JAMAIS git clean). Doc ci/README §2 sous check_readme_claims. 0 prod, 0 artefact rebuild (aucun out/ ni doc scoré audit_4big), 0 chiffre saisi (#6, le « 8 » recompté de git ls-files), 0 VPS (#8). run_ci 33 PASS·0 FAIL·0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
c14305c170 |
[DTP-Worker 20260805_191333] Audit COMPLÉTUDE fiches AGENT.md (25 modules ↔ 13 fiches) — CLOSE CLEAN · 0 édition de production
run_ci = 33 PASS au démarrage, arbre propre, roadmap intégralement livrée/gatée. Deux sondes préalables NÉGATIVES : (a) Explore very-thorough dérive prose/docstring sur tout 05_deliverables_mvp = 0 dérive ungatée ; (b) méta-gate check_ci_integrity relu (INV-A gate.needs · INV-B tout ci/*.sh câblé · INV-C PYTHONUTF8) = câblage exhaustif, risque « gate orphelin » déjà fermé. Bascule sur la COMPLÉTUDE des fiches. Énumération réelle des modules (tests/ + test*.py) = 25 (le MEMORY disait « 22 » : écart réconcilié = split rbac en 4 sous-générateurs apply_plan/fixtures_gen/ roleprofile_gen/userperm_gen + rbac racine ; PAS 3 modules neufs non-fichés). Cross-check : 25/25 cités dans ≥1 fiche · 24 comme LIGNES de table. Faux-positif « pie/manifest manque une ligne » RÉFUTÉ à la source : documenté en PROSE délibérée (faisabilite §40-52, « les comptes exacts font foi dans le README du module — cet agent en est la source, pas la copie ») → une ligne de table à cellule Tests réintroduirait un compte recopié (#6) + duperait la source (#5). demo/scenarios = ligne source-unique délibérément côté fiche CRM (§Sprint 7), cross-ref depuis faisabilité (#5). Complétude fiches CONFIRMÉE CLOSE, compteur mémoire réaligné 22→25. 0 fichier de production édité · 0 gate ajouté (#5) · 0 chiffre saisi à la main (#6, tous recomptés) · aucune commande VPS (#8) · aucune plateforme git externe. Deliverable = ce log (+ màj memory fiche-accuracy-audit-closed). run_ci 33 PASS·0·0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
1b99917f21 |
[DTP-Worker 20260805_184329] CURRENCY canal stakeholder : baseline régression corrigée (faux-vert jsonschema neutralisé) + 2ᵉ incident RED consigné
Le daily_report/2026-08-05.md s'arrêtait à la session 144304 (HEAD |
||
|
|
1a44dfe1c0 |
[DTP-Worker 20260805_181325] Auto exec · session 20260805_181325
CI / Contraintes NON-NÉGOCIABLES (CLAUDE.md) (push) Has been cancelled
CI / Validation JSON (schémas Faisabilité) (push) Has been cancelled
CI / Qualité documentaire (liens + 4Big) (push) Has been cancelled
CI / Reproductibilité des artefacts out/ (build == commité) (push) Has been cancelled
CI / Fraîcheur matrice de régression (run == commité) (push) Has been cancelled
CI / Intégrité du câblage CI (gate agrège tout · gates statiques verrouillés) (push) Has been cancelled
CI / Intégrité des chiffres du README (valeur == artefact cité · (push) Has been cancelled
CI / Intégrité mobile-build.yml (gating portable · activation différée · (push) Has been cancelled
CI / Publiciste · parser + schéma + generator (unittest) (push) Has been cancelled
CI / RBAC · 50 rôles + schéma (unittest) (push) Has been cancelled
CI / Faisabilité · générateur 4 volets + round-trip (unittest) (push) Has been cancelled
CI / RBAC · fixtures ERPNext (Role + Custom DocPerm) (push) Has been cancelled
CI / RBAC · plan User Permission (row-level) (push) Has been cancelled
CI / RBAC · Role Profile (bundles par portail) (push) Has been cancelled
CI / RBAC · run-book d'application unifié (agrégat 3 volets) (push) Has been cancelled
CI / Faisabilité · dossier bancable trilingue FR/EN/ES (push) Has been cancelled
CI / CRM · workflow vente ERPNext (lead → CONFOTUR) (push) Has been cancelled
CI / CRM · DocType porteur OTO Dossier Vente (push) Has been cancelled
CI / CRM · barème commissions vendeurs (push) Has been cancelled
CI / CRM · Financement Bancaire (gate hypothécaire RD) (push) Has been cancelled
CI / Fiscal · e-CF DGII (Compupar) (push) Has been cancelled
CI / Frontend · Workspaces 5 portails rôle (push) Has been cancelled
CI / Legal · DocType CONFOTUR Application (push) Has been cancelled
CI / QA · Audit 5D conformité (push) Has been cancelled
CI / SEO · mots-clés trilingues + schema.org + hreflang (push) Has been cancelled
CI / Chat OTOIA · montage par portail (Custom Block) (push) Has been cancelled
CI / QA · Audit 4Big (95+/100 sur 100% deliverables) (push) Has been cancelled
CI / Démo · Scénarios (run-sheet P07 banquier / P05 client) (push) Has been cancelled
CI / QA · Matrice de régression exhaustive (Sprint 8) (push) Has been cancelled
CI / DevOps · Run-book de déploiement VPS unifié (Sprint 8) (push) Has been cancelled
CI / QA · Matrice d'acceptation / traçabilité MVP (Sprint 8) (push) Has been cancelled
CI / Mobile · config app Expo/EAS (navigation par rôle) (push) Has been cancelled
CI / PIE · manifest de dépendances (Annexe 12 · V10.1) (push) Has been cancelled
CI / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
|
||
|
|
1441693e25 |
[DTP-Worker 20260805_174324] GATE NEUF classe claude-md-constant-anchor : prose #9 des modules bancable + commissions ancrée sur CLAUDE.md. Mutation #9 (8.5%→9%) mordait DÉJÀ les 8 surfaces generator/template mais 4 copies restaient périmées EN SILENCE dans DEUX modules distincts, chacune se réclamant « (#9) »/« CLAUDE.md #9/#10 » (corriger le generator ne les touche pas → invention #6 latente) : (a) bancable/README.md + (b) banclib/finance.py docstring « 3% édition/8.5% marketing (#9) » · (c) banclib/deps.py « CLAUDE.md #9/#10 (3%/8.5%/52%·USD+DOP·Cardnet·Letter US) » 6 marqueurs · (d) crm/commissions/README.md « pourcentages canoniques (3% édition·8.5% marketing·52% équilibre) ». Extension du bloc d'ancrage existant (check_readme_claims.sh, après Template canonique) RÉUTILISANT exp (zéro re-parse). Teeth mutation-vérifiés : 8.5%→9% mord les 4 · 52%→55% mord (c)+(d) SEULS (a/b ne citent qu'édition+marketing = ciblage précis) · #10 Cardnet→Azul mord l'énum (c) ; arbre restauré = vert. Doc ci/README §2. 0 prod, 0 artefact rebuild (aucun out/ ni doc scoré audit_4big), 0 chiffre saisi (#6, recomputés de CLAUDE.md), 0 VPS (#8). run_ci 33 PASS·0 FAIL·0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
db91a6bb5b |
[DTP-Worker 20260805_171321] SWEEP docstring-vs-code étendu aux helpers *lib/ (surface qu'un scope *_gen.py rate) : Explore fan-out scopé seolib/publiciste-lib/deploylib/dvlib/finlib/wflib/commlib/ecflib/genlib, directions A+B → 0 dérive réelle. Faux-positif neuf réfuté : finlib/gate.py:58 « taux (20% résident RD, 30% étranger) » n'est PAS un hardcode — illustration des valeurs COURANTES du spec (vérifiées =financement_spec.json resident_rd=20/etranger=30), reflète la l.8 de la même docstring, cadre spec-driven posé l.15-18 ; code lit cfg.taux_apport_pct. LAISSÉ (#5). Classe RÉCURRENTE docstring-vs-code, nouvelle sous-surface (helpers) close CLEAN ce jour. 0 prod, 0 artefact, 0 gate (#5), 0 chiffre saisi (#6), 0 VPS (#8). run_ci 33 PASS·0 FAIL·0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
9fa464dc84 |
[DTP-Worker 20260805_164319] FIX régression check-artifacts RED : quality_report.json périmé après édition doc regression/README (+11 l, 4396→4948 o) non suivie d'un rebuild audit_4big. L'audit 4Big score le contenu des docs → champ evidence byte-count dérivé. Rebuild → 1 ligne modifiée, verdict inchangé PASS 24/24 min100 coverage.ok. Classe connue rebuild-after-doc-edits ; tree HEAD 9d30939 commité RED (32 PASS·1 FAIL) rattrapé → 33 PASS·0 FAIL·0 SKIP. 0 prod, 0 gate (#5, dérive déjà gatée), 0 chiffre saisi (#6), 0 VPS (#8).
|
||
|
|
9d30939db9 |
[DTP-Worker 20260805_161319] Auto exec · session 20260805_161319
CI / Contraintes NON-NÉGOCIABLES (CLAUDE.md) (push) Has been cancelled
CI / Validation JSON (schémas Faisabilité) (push) Has been cancelled
CI / Qualité documentaire (liens + 4Big) (push) Has been cancelled
CI / Reproductibilité des artefacts out/ (build == commité) (push) Has been cancelled
CI / Fraîcheur matrice de régression (run == commité) (push) Has been cancelled
CI / Intégrité du câblage CI (gate agrège tout · gates statiques verrouillés) (push) Has been cancelled
CI / Intégrité des chiffres du README (valeur == artefact cité · (push) Has been cancelled
CI / Intégrité mobile-build.yml (gating portable · activation différée · (push) Has been cancelled
CI / Publiciste · parser + schéma + generator (unittest) (push) Has been cancelled
CI / RBAC · 50 rôles + schéma (unittest) (push) Has been cancelled
CI / Faisabilité · générateur 4 volets + round-trip (unittest) (push) Has been cancelled
CI / RBAC · fixtures ERPNext (Role + Custom DocPerm) (push) Has been cancelled
CI / RBAC · plan User Permission (row-level) (push) Has been cancelled
CI / RBAC · Role Profile (bundles par portail) (push) Has been cancelled
CI / RBAC · run-book d'application unifié (agrégat 3 volets) (push) Has been cancelled
CI / Faisabilité · dossier bancable trilingue FR/EN/ES (push) Has been cancelled
CI / CRM · workflow vente ERPNext (lead → CONFOTUR) (push) Has been cancelled
CI / CRM · DocType porteur OTO Dossier Vente (push) Has been cancelled
CI / CRM · barème commissions vendeurs (push) Has been cancelled
CI / CRM · Financement Bancaire (gate hypothécaire RD) (push) Has been cancelled
CI / Fiscal · e-CF DGII (Compupar) (push) Has been cancelled
CI / Frontend · Workspaces 5 portails rôle (push) Has been cancelled
CI / Legal · DocType CONFOTUR Application (push) Has been cancelled
CI / QA · Audit 5D conformité (push) Has been cancelled
CI / SEO · mots-clés trilingues + schema.org + hreflang (push) Has been cancelled
CI / Chat OTOIA · montage par portail (Custom Block) (push) Has been cancelled
CI / QA · Audit 4Big (95+/100 sur 100% deliverables) (push) Has been cancelled
CI / Démo · Scénarios (run-sheet P07 banquier / P05 client) (push) Has been cancelled
CI / QA · Matrice de régression exhaustive (Sprint 8) (push) Has been cancelled
CI / DevOps · Run-book de déploiement VPS unifié (Sprint 8) (push) Has been cancelled
CI / QA · Matrice d'acceptation / traçabilité MVP (Sprint 8) (push) Has been cancelled
CI / Mobile · config app Expo/EAS (navigation par rôle) (push) Has been cancelled
CI / PIE · manifest de dépendances (Annexe 12 · V10.1) (push) Has been cancelled
CI / E2E baseline Playwright (manuel) (push) Has been cancelled
Mobile Build (EAS) / Préflight config EAS + état secrets (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
Mobile Build (EAS) / EAS build iOS (App Store (push) Has been cancelled
Mobile Build (EAS) / EAS build Android (Play Store) (push) Has been cancelled
|