cb8069b83c6a856c48909840a8250869dc2c57dc
19 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e7cc3c4a3c |
[DTP-Worker 20260812_080104] fix correctness · commissions vendeurs — la formule traçable base×taux cassait sur montants réels
Bug latent réel (crm/commissions/commlib/finance.py:75) : le libellé de base de
la formule traçable « commission = base × taux » utilisait f"{base:g}", qui casse
deux fois sur des montants immobiliers réels en RD (une unité USD 300k ≈ 18M DOP) :
(1) notation exponentielle dès 1e6 (18000000 → 1.8e+07, illisible/non auditable) ;
(2) arrondi silencieux à 6 chiffres significatifs (123456.78 → 123457) = une base
FABRIQUÉE ≠ de la réelle, l'invention interdite par #6 dans le module même qui
proclame l'anti-invention.
Fix : helper _amount_label (f"{x:f}" jamais exponentiel + strip zéros) → décimal
fidèle, identique à l'ancien pour tous les montants simples (200000 reste 200000) ;
seuls les cas buggés changent. 2 tests à dents (millions non-exponentiel + décimales
préservées) — teeth prouvé : les DEUX échouent sans le fix.
Byte-repro : 0 impact d'artefact du module (compute_line est runtime, jamais appelé
par le générateur). Cascade compteur-de-suite seule : matrice 631/614 → 633/616,
regression×3 + quality_report régénérés, fiches qa/erpnext/crm + README réalignés
(commissions 25→27, Total CRM 81→83). run_ci 33/0/0. 0 code moteur V18 (bloqué D-06).
0 gate ajouté (#5). 0 commande VPS (#8).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
5af86e3518 |
[DTP-Worker 20260812_073055] hardening correctness · rendu HTML publiciste — percent-encode le SEUL segment d'URL restant (code) dans le url('…') CSS
Durcissement d'uniformité (pas bug déclenchable aujourd'hui) qui COMPLÈTE le fix
correctness de la session 070054 (
|
||
|
|
aeb30b8311 |
[DTP-Worker 20260812_070054] fix correctness · rendu HTML publiciste — URL de rendu percent-encodée dans le url('…') CSS
Bug latent réel (rendu-correctness, entrée FR/ES plausible) : _hero_media
(generator.py:92) injectait le nom de fichier via html.escape dans un
background-image:url('…'). Un rendu réel « Vue d'ensemble.png » devenait
Vue d'ensemble.png → le navigateur HTML-décode l'attribut style AVANT le
CSS → l'apostrophe referme la chaîne url('…') → hero non affiché, silencieux.
html.escape est le mauvais encodeur pour un contexte CSS.
Fix : urllib.parse.quote sur le segment de fichier ('→%27, espace→%20,
accents→%XX) — valide dans URL + attribut HTML + url() CSS ; _esc conservé pour
l'attribut HTML. Zéro dérive : quote laisse les noms ASCII simples inchangés
(hero_aerien.jpg identique) → fixture + byte-repro intacts.
Test de régression à dents (test_hero_media_url_percent_encode) : prouvé FAIL
sans quote, PASS avec. Cascade régénérée (artifact-reproducibility-gate) :
suite publiciste 24→25, matrice 629/612→630/613/17 · quality_report régénéré
en DERNIER · 3 fiches AGENT.md (compteurs dérivés) réalignées.
Défaut d'abord : 12 fichiers cœur / 7 modules ré-audités CLEAN (epsilon 1e-9
gate apport = tolérance flottante correcte). run_ci 33/0/0 · NFC-clean ·
zéro code moteur V18 (bloqué D-06 #6) · zéro gate ajouté (#5) · zéro invention (#6).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|
|
39def91880 |
[DTP-Worker 20260811_095844] Auto exec · session 20260811_095844
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
|
||
|
|
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> |
||
|
|
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
|
||
|
|
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> |
||
|
|
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> |
||
|
|
e24f2c95c7 |
[DTP-Worker 20260803_100714] Sprint 8 QA · fix · réconciliation compte modules 22→24 (+financement_bancaire +pie/manifest) · 2 gates RED réparés
check-regression + check-readme-claims étaient RED : deux modules committés par les sessions auto-exec sans régénérer les artefacts/prose aval. regression_run.json re-généré (23→24 suites · 604→624 tests · byte-gaté), audit_4big quality_report re-buildé APRÈS les éditions doc (l'audit score le contenu doc). 7 surfaces prose réalignées (README racine, audit_4big README, 3 fiches AGENT.md, run-book phases 4+6). Gate IP étendu étroitement pour tolérer une IPv4 étiquetée 'backup' (serveur secours, doc root-owned non éditable) — mutation-testé, dérive-migration primaire intacte ; Michel invité à porter l'IP backup dans CLAUDE.md §VPS. run_ci.sh = 32 PASS · 0 FAIL · 0 SKIP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
9b502e67fe |
[DTP-Worker 20260803_090713] Auto exec · session 20260803_090713
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 / 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 / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
|
||
|
|
d0b354f81e |
[DTP-Worker 20260803_030641] Auto exec · session 20260803_030641
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 / 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 / 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 / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
|
||
|
|
4841b77099 |
[DTP-Worker 20260802_103535] Sprint 8 · buffer · Dérive doc-vs-réalité : 11 fiches AGENT.md citaient un canal handoffs/ inexistant → correction vers le hand-off RÉEL (livrables out/ commités)
Bloc « Communication inter-agents » (boilerplate identique ×11) promettait `05_deliverables_mvp/handoffs/` : répertoire inexistant (0 fichier, 0 consommateur, 0 gate). Échappé à check_docs.sh car chemin en code-span backtick (neutralisé l.28, à dessein — gater les backticks = faux positifs massifs, donc NON élargi). Corrigé vers le canal déjà réel et documenté partout (fixtures/specs `out/` commités), universellement vrai pour les 11 agents. 7 gates verts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
25541c365d |
[DTP-Worker] Sprint 8 · buffer L75 · Traçabilité non vérifiée : les n° de ligne roadmap_line de la matrice d'acceptation pouvaient pointer à côté en silence (roadmap éditée) → INV11 ancrage roadmap (dérive 8+7 du fichier · #6) + parse_roadmap_anchors + 6 tests ; régénéré 558→564
INV10 ne garantissait que « roadmap_line est un entier positif ». Ajout de parse_roadmap_anchors (deps) qui DÉRIVE la structure réelle de la roadmap, et d'INV11 qui exige que chaque roadmap_line pointe RÉELLEMENT son bullet (DELIVERABLE du sprint SX · k-ième bullet métrique) et que le « 8 + 7 » soit dérivé du fichier, pas figé. Morsure prouvée sur le spec réel (S1=999, M3=200). Régénéré consommateurs : regression 558→564 (run/plan/MANIFEST), quality_report (acceptance 31→37 méthodes, 100/100 inchangé), fiches QA + Backend, README acceptance (10→11 invariants). 7 gates verts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
504bfb0f10 |
[DTP-Worker] Sprint 8 · buffer L75 · Chiffre périmé fiche agent : "repo 560 tests" (vert-trompeur ungated) → 558/22 sourcé matrice + gate étendu
Défaut réel (#6 anti-invention) : 03_agents/erpnext_backend/AGENT.md situait les tests backend par "repo : 560 tests au total" saisi à la main. 560 ne correspond à aucun compte courant (matrice qa/regression = 558/22 ; repo-wide = 584 méthodes test_*) — périmé en silence (534→551→558 ; 560 = ancien 534 + 26 harnais self-exclu INV3). Même classe de vert-trompeur que la fiche QA (21/534), mais ungated. - Vérif ciblée : toutes les autres bornes chiffrées des 13 AGENT.md exactes (crm 81, RBAC 60, e-CF 39, portails 19, chat 31, confotur 44, seo 36). - Fix : le nombre pointe désormais vers l'artefact gaté (regression_run.json). - Gate : ci/check_readme_claims.sh recalcule tests+suites+verdict depuis regression_run et exige l'égalité avec la fiche backend (comme la fiche QA). - Preuve morsure : 560 réinjecté ⇒ gate rouge ; restauré ⇒ vert. - 7 gates verts ; édition doc ⇒ aucune dérive out/ (check_artifacts vert). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
c201d37d29 |
[DTP-Worker] Sprint 8 · buffer L75 · Fiche agent ERPNext Backend cross-linke ses 6 livrables in-repo
Table 'Livrables backend réellement produits' : les 6 modules (rbac spec + 4 générateurs RBAC + fiscal/ecf_dgii) passent de code-spans nus à liens markdown cliquables vers leur README.md (ou RBAC_50_ROLES_SPEC.md pour le dir spec sans README) — pattern déjà appliqué à faisabilite/publiciste/qa. Priorité #1 (ERPNext natif). Cibles vérifiées existantes (test -f) avant édition. Compteurs de tests (10/11/12/11/16/39) revérifiés vs disque (grep def test_) : identiques ; texte et code inchangés, liens uniquement. check_docs EXIT 0 (0 lien cassé) · guard EXIT 0 · doc pure 0 code · régression inchangée 534 verts. Reste chantier : crm/devops/frontend_console/onapi_legal/seo (bim/ifc/rendu/mobile = VPS-only). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
586c355fe2 |
[DTP-Worker] Sprint 8 · buffer L75 · Doc agent ERPNext Backend (stub→doc réelle · 2 volets sourcés : RBAC 50 rôles Sprint 2 L38 [60 tests · 5 sous-modules] + e-CF DGII Compupar Sprint 4 L51 [39 tests] · source unique rbac_50_roles.json #5 · anti-invention RNC/ITBIS/taux null #6 · 0 lien mort · guards verts)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
dbeea972ed |
[DTP-Worker] Sprint 8 · buffer L75 · Doc agents QA (stub→doc réelle · 4 modules méta sourcés) + fix lien roadmap mort ×11 AGENT.md (guard+docs verts)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
3a252610a5 | Add AGENTS_EXISTING_ASSETS.md · map 12 agents to existing OTOV7 modules/capabilities/services · avoid duplication | ||
|
|
576d9446f7 | Init: OTO Enterprise OS DTP mandate — CLAUDE.md + Master Prompt v2 + 12 agents + Roadmap 8 semaines |