Commit Graph

66 Commits

Author SHA1 Message Date
Claude Code DTP Worker 88d9955f90 [DTP-Worker 20260803_060704] Sprint 3 · fix · Citation roadmap fantôme dans bancable (prose-facts-vs-numeric-drift)
Docstring bancable_gen.py:5 + bancable/README.md:5 attribuaient au fichier
ROADMAP_8_WEEKS_OR_LESS.md un libellé verbatim « 40_llm_outputs/ + rapports
bancables FR/EN/ES » ABSENT de la roadmap (grep = 0 occurrence). Le §Sprint 3
réel dit « Faisabilité Auto » → « génération 4 volets <1h ». Le libellé cité
vient des daily_reports (planif S3 du 2026-07-30), pas de la roadmap : citation
mal-attribuée (même classe que « regression_run.json non commité »).

Fix : §Sprint 3 cité fidèlement + volet financier bancable ré-attribué aux
daily_reports / Portail Bancables 4Big, avec mention « pas un texte roadmap ».
Consommateur qa/audit_4big/quality_report.json régénéré (README bancable
6103 → 6439 octets · verdict PASS 22/22 = 100/100 inchangé). Libellé fantôme
cité par aucun gate. run_ci.sh 30 PASS 0 FAIL. Zéro module, zéro gate (#5).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 06:16:35 +00:00
Claude Code DTP Worker 89eb8e68ad [DTP-Worker 20260803_053701] Sprint 8 · fix · Dérive doc-vs-réalité regression_run.json (classe prose-facts, jumelle du fix root-README)
`regression_gen.py` (docstring l.26) ET `qa/regression/README.md` (§ hand-off VPS
l.76) décrivaient encore la sortie `run` comme « NON déterministe → non commitée »
/ « manuel · non gated push/PR ». Faux sur les trois points, contredit par son
propre gate dédié `ci/check_regression.sh` (step `check-regression` de ci.yml) :
`regression_run.json` EST commité (git ls-files), EST déterministe (aucun
horodatage/hôte → deux `run` byte-identiques, en-tête du gate l.24-25) et EST
byte-gaté à chaque push/PR. Même dérive « regression_run.json non commité » déjà
corrigée dans le README racine (76fb0e7) mais restée dans le module lui-même.

Réalignés sur la réalité + citation du gate. Consommateur `qa/audit_4big/out/
quality_report.json` régénéré (évidence DOC 4236→4396 octets · verdict PASS 22/22
≥95 min 100 inchangé · 1 insertion/1 suppression · artifact-reproducibility-gate).
Docstring .py non byte-gatée (aucun gate n'en lit les octets). run_ci.sh 30 PASS 0 FAIL.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 05:43:06 +00:00
Claude Code DTP Worker b631774160 [DTP-Worker 20260803_043644] Sprint 5/8 · doc · Canal 2 daily_reports remis à jour : snapshot stakeholder du jour s'arrêtait à l'addendum 030641 (fiche store) → 2 livrables manquants ajoutés (P1 workflow CI/CD mobile-build.yml 033642 + fix doc-vs-CODE Mobile 040643) + table launch-readiness fin de journée. Chiffres re-dérivés d'artefacts (569/569 · 22/22 · 15/15). Gate-neutre (daily_reports non gaté) · run_ci.sh 30 PASS 0 FAIL
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 04:41:18 +00:00
Claude Code DTP Worker 953e683be3 [DTP-Worker 20260803_040643] Sprint 5 · fix · Dérive doc-vs-CODE Mobile : cmd_build écrit 5 fichiers (store_listing.json inclus) mais docstring app_config_gen.py « les 4 fichiers » + glob README omettaient store_listing → réalignés sur 5. Consommateur qa/audit_4big/quality_report.json régénéré (évidence DOC byte-count · verdict PASS 22/22 inchangé) · run_ci.sh 30 PASS 0 FAIL 2026-08-03 04:12:15 +00:00
Claude Code DTP Worker af84b21f89 [DTP-Worker 20260803_033642] Sprint 5 P1 · feat · CI/CD Mobile : workflow Gitea Actions mobile-build.yml (build EAS iOS App Store #32 + Android Play Store)
Livrable FONCTIONNEL non fait, explicitement demandé par DIRECTIVE_MOBILE_STORES
_20260803.md P1 (« Créer .gitea/workflows/mobile-build.yml ») — classé non-bloqueur
in-périmètre worker. Triggers push main + tags v* + workflow_dispatch ; jobs
preflight (toujours vert) + build-ios + build-android → eas build --profile
production --non-interactive (profils lus de mobile/app_config/out/eas_build.json).

Activation différée (#6/#8) : builds gardés par `if secrets.EAS_TOKEN != '' &&
vars.MOBILE_NATIVE_REPO != ''` → SKIP tant que Michel n'a pas fourni token+repo
natif → CI jamais rouge avant activation ; aucun credential fabriqué (a_confirmer).
Code Expo natif = autre dépôt Gitea, cloné au run (jamais recopié). Gitea only (#2).

Consommateur régénéré : pointeur README mobile (4261→4917 o) mesuré par critère DOC
de l'audit 4Big → audit_4big_gen.py build régénéré (verdict inchangé 22/22 ≥95).
check_ci_integrity n'inspecte que ci.yml → 2e workflow invisible au gate.
Zéro nouveau module · zéro gate ajouté (#5). run_ci.sh 30 PASS · 0 FAIL.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 03:46:18 +00:00
Claude Code DTP Worker 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
2026-08-03 03:21:42 +00:00
Claude Code DTP Worker 3eec69a87f [DTP-Worker 20260803_023638] Sprint 5 · fix · Dérive ground-truth Mobile résiduelle GAP_ANALYSIS_SPRINT1 : « Existe : Expo 54/RN 0.81.5 » (upgrade abandonné 2026-07-27) → Expo 51/RN 0.74.5 réel + « Rebuild Expo 54 » en reste-à-faire (aligné roadmap L18). Surface manquée par le sweep 94e9365/642643f · prose non gatée · gate-neutre · run_ci.sh 30 PASS 2026-08-03 02:42:16 +00:00
Claude Code DTP Worker 358a95d904 [DTP-Worker 20260803_000623] Sprint 8 · buffer · Audit 2 surfaces d'intégrité inter-artefacts NEUVES (0 dérive) + ouverture canal 2 du jour
Plutôt que re-rejouer le sweep docstring-vs-CODE saturé hier (62 fichiers, 1c3bed3, aucun code modifié depuis), ouverture de deux surfaces inter-artefacts jamais auditées :

1. Chemins-preuve de la matrice recette (acceptance_matrix.json artifacts[].path) : relatifs à DELIVERABLES_ROOT (05_deliverables_mvp/), pas racine repo — un check naïf racine donne un FAUX MISMATCH sur GAP_ANALYSIS_SPRINT1.md. Surface DOUBLEMENT gatée : acceptance_gen.py:198 lève au build si preuve absente + builder.py:62 recalcule exists → check_artifacts prouve transitivement. Garde-fou mémoire acceptance-evidence-paths-deliverables-root (classe faux-positif récurrent).
2. Résolution des 22 ci_job recette vers gate.needs (30) : 0 orphelin, transitivement mono-sourcé.

0 dérive · zéro fichier de production modifié (audit pur) · zéro nouveau module · zéro gate ajouté (#5). Reporting canal 2 : daily_reports/2026-08-03.md ouvert, 4 agrégats re-sourcés par recompute python3 indépendant (22/22 · 564/564 · 15/15 · gate.needs=30). run_ci.sh 30 PASS 0 FAIL 0 SKIP. Aucune commande VPS (#8).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 00:12:07 +00:00
Claude Code DTP Worker 1c3bed3f42 [DTP-Worker 20260802_233620] Sprint 8 · buffer · Sweep docstring-vs-CODE élargi 62 fichiers (22 entrypoints + 40 lib) → aucune dérive résiduelle + reporting canal 2 (7e addendum)
Extension de l'audit docstring-vs-CODE (classe récurrente non gatée) des seuls
entrypoints *_gen.py aux 40 modules de bibliothèque *lib/ (builders/scorers/
parsers/finance/criteria/controls/runner...). 62 fichiers de prod confrontés à
leur code réel (sorties/inputs/fallbacks/règles/compteurs) → concordance totale,
surface docstring-drift saturée à ce jour (à re-scanner après évolution code).

Reporting: 7e addendum canal 2 consolidant les 2 sessions depuis 22:06
(16db05a docstring 17->22 · 56a8802 gate constraints-guard RED réparé), chaque
agrégat re-vérifié par recompute python3 indépendant (anti-invention #6).

run_ci.sh 30 PASS 0 FAIL 0 SKIP. Zéro module · zéro gate (#5) · zéro logique prod.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 23:42:57 +00:00
Claude Code DTP Worker 16db05af20 [DTP-Worker 20260802_223614] Sprint 8 · buffer · Dérive doc-vs-CODE réelle : docstring q4lib/builder.py « 17 modules » périmé (17→22)
Sweep docstring-vs-CODE des sous-paquets lib/ (nouveau périmètre vs les
générateurs de tête déjà balayés). Concordance quasi totale — UNE dérive réelle :
le docstring d'en-tête de qa/audit_4big/q4lib/builder.py annonçait « les 17 modules
atteignent >= 95/100 » alors que l'artefact commité out/quality_report.json porte
totals.modules = 22 (tous PASS). Le compte a grandi 17->22 au fil des livrables gatés.

Preuve d'antériorité : ci/check_readme_claims.sh l.414-417 documente CETTE dérive
exacte — « 17/17 SAISI À LA MAIN … PÉRIMÉ … (17 -> 22) » — et re-calcule le compte
du README de l'auditeur (désormais 22/22), MAIS le gate ne couvre pas le docstring
du module (les docstrings ne sont pas count-checkés · classe docstring-vs-code-drift).
Le même « 17 » gaté dans le README a survécu, non gaté, dans le docstring de prod.

Correction anti-re-dérive : pas de substitution « 22 » (re-dériverait au module #23) ;
reformulé en énonçant la RÈGLE réelle du builder (verdict = coverage.ok AND not below
=> TOUS les modules audités >= 95/100), + note que le compte est DÉRIVÉ (len(modules)
== totals.modules). Aligné fix-vs-gate (décrire depuis l'autorité = le code).

Zéro module · zéro gate (#5) · un seul fichier de prod touché (docstring seul, zéro
logique) · run_ci.sh 30 PASS · README module gaté déjà à 22/22 (concordant).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 22:40:40 +00:00
Claude Code DTP Worker 828fa838e0 [DTP-Worker 20260802_220611] Sprint 8 · buffer · Reporting canal 2 (6e addendum) + sweep doc-vs-CODE sorties générateurs
Rattrapage snapshot daily_reports/2026-08-02 : lapsé de 4 sessions depuis
clôture 200607 (0e76411). 6e addendum ADDITIF (corps + 5 addenda intacts)
consolidant 0e76411/b3f131e/a2c2e0b/12c784c/eae3787 — dont les 2 corrections
doc-vs-CODE réelles du jour (publiciste "fallback prix §5.3" fantôme ;
demo_scenario_gen omettant run_sheet.md). Chaque chiffre re-sourcé par recompute
python3 indépendant : 22/22 scores={100} · 564/564 régression · 15/15 in_repo ·
13 fiches · gate.needs=30.

Vérification indépendante : sweep doc-vs-CODE outil-assisté sur les 22
générateurs (sorties réellement écrites vs commitées dans chaque out/) →
concordance totale, y compris les 2 modules corrigés ce jour. Aucune nouvelle
dérive classe déclaration-de-sortie.

Zéro nouveau module · zéro gate ajouté (#5) · zéro fichier de production modifié
(reporting + vérification pure) · run_ci.sh 30 PASS · aucune commande VPS (#8).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 22:10:11 +00:00
Claude Code DTP Worker eae37875cb [DTP-Worker 20260802_213610] Sprint 8 · buffer · Dérive doc-vs-CODE réelle : docstring/help demo_scenario_gen omettaient un output produit (run_sheet.md)
Chasse ciblée (classe non gatée docstring-vs-code, cf. fix publiciste 210609) via
fan-out 3 audits read-only sur les modules à docstring dense · 3 candidats · 2 réfutés · 1 réel.

RÉEL corrigé — demo/scenarios/demo_scenario_gen.py : le générateur écrit TROIS fichiers
(run_sheet.json + MANIFEST.json l.196 + run_sheet.md l.202-203, le prompteur, annoncé
jusqu'au message stdout l.206) mais la doc intra-module n'en listait que DEUX à 3 endroits :
diagramme docstring (l.19), résumé sous-commande docstring (l.31), help argparse build (l.236).
Le run_sheet.md ajouté au commit aebe9b7 avait mis à jour le README (correct, 3 sorties) mais
laissé le docstring/help du .py en arrière → dérive doc-vs-CODE réelle, non gatée
(check_docs/check_readme_claims ne couvrent pas la prose intra-module). Les 3 emplacements
réalignés sur les 3 sorties réelles. Docstring/help SEULS — zéro logique/signature/test.

RÉFUTÉ (faux-positif de compte) — fiscal/ecf_dgii « 12 invariants » : allégué « pas
d'invariant 1 » car numérotation inline commence à 2. FAUX — invariant 1 = conformité schéma
(maison.validate l.112), 12a/12b = 2 moitiés de l'invariant 12 → 12 exactement, aligné README
ledger + help + tests + stdout. Piège de compte classique. Zéro changement.

Vérifs : run_ci.sh 30 PASS · build réel re-exécuté = 3 fichiers émis · zéro module · zéro
gate (#5) · 1 fichier prod touché (docstring+help) · aucune commande VPS (#8).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 21:42:21 +00:00
Claude Code DTP Worker a2c2e0b097 [DTP-Worker 20260802_210609] Sprint 8 · buffer · Publiciste parser.py : correction d'une dérive doc-vs-CODE réelle DANS le docstring du module de production (classe distincte des dérives README gatées) — l'en-tête « Sources lues » annonçait « 40_llm_outputs/commercial.md → positionnement FR (fallback prix §5.3) » alors qu'AUCUN fallback prix n'existe dans le code (commercial.md n'alimente QUE parse_positionnement_fr ; grep §5.3/fallback-prix = 1 seule occurrence, le docstring lui-même) → reformulé « → positionnement FR (1er paragraphe non-titre) », aligné sur la vraie logique de parse_positionnement_fr · dérive de type comportement-inventé (contraire à l'éthos anti-invention #6) · zéro module · zéro gate (#5) · zéro changement de logique (docstring seul) · aucun sibling README/AGENT.md ne répète la fausse allégation · run_ci.sh 30 PASS
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 21:09:59 +00:00
Claude Code DTP Worker 0e76411459 [DTP-Worker 20260802_200607] Sprint 8 · buffer · Reporting canal 2 + audit doc-vs-réalité : rattrapage snapshot daily_reports/2026-08-02 sur 3 sessions intercalées depuis clôture 180604 (97d3b64/f954cc1/7c79e43/8a08065) → 5e addendum ADDITIF (corps + 4 addenda intacts), chaque chiffre re-sourcé par recompute python3 indépendant (22/22 scores={100} · 564/564 totals · 15/15 in_repo=True · 13 fiches · gate.needs=30) · audit doc-vs-réalité relancé (README racine + ci/README + fiches + module READMEs) = aucune dérive prose-fact · zéro nouveau module · zéro gate ajouté (#5) · zéro fichier de production modifié · run_ci.sh 30 PASS + check_docs/check_readme_claims/guard_constraints verts
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 20:12:40 +00:00
Claude Code DTP Worker f954cc19d1 [DTP-Worker 20260802_183604] Auto exec · session 20260802_183604
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
2026-08-02 18:49:35 +00:00
Claude Code DTP Worker 3ff51d94fb [DTP-Worker 20260802_180604] Sprint 8 · buffer · Reporting stakeholder (canal 2) : rattrapage du snapshot daily_reports/2026-08-02 sur les 3 sessions de retouches doc/outillage depuis la clôture 160601 (59eb4dc/68f8c1a/d2ab269) → 4e addendum ADDITIF (corps + 3 addenda intacts), chaque chiffre re-sourcé par recompute python3 indépendant (22/22 scores={100} · 564/564 · 15/15 in_repo=true · 13 fiches · gate.needs=30) · audit doc-vs-réalité relancé cette session = aucune dérive · zéro nouveau module · zéro gate ajouté (#5) · run_ci.sh 30 PASS + check_docs/check_readme_claims/guard_constraints verts
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 18:12:40 +00:00
Claude Code DTP Worker 4f390b4ee2 [DTP-Worker 20260802_160601] Sprint 8 · buffer · Reporting stakeholder (canal 2) : rattrapage du snapshot daily_reports/2026-08-02 sur les 2 sessions run_ci.sh (49123ec/dcb463e) → 3e addendum ADDITIF (corps+2 addenda intacts), chaque chiffre re-sourcé par recompute python3 indépendant (22/22 scores={100} · 564/564 · 15/15 in_repo=true · 13 fiches · gate.needs=30) · zéro nouveau module · zéro gate ajouté (#5) · seul livrable net = outil DevOps run_ci.sh déjà gaté par construction · run_ci.sh 30 PASS + check_docs conforme
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 16:11:18 +00:00
Claude Code DTP Worker 1c0cb8e973 [DTP-Worker 20260802_143555] Sprint 8 · buffer · Reporting stakeholder : rattrapage du snapshot daily_reports/2026-08-02 sur les 4 sessions buffer intercalées depuis la clôture 120544 (cb8d931/8dcedb0/576e78b/bd3572b) → 2e addendum additif, chaque chiffre re-sourcé par recompute python3 (22/22 · 564/564 · 15/15 · 13 fiches · gate.needs=30) · zéro gate ajouté (#5) · faux positif CLAUDE.md#2 « otov7-platform » écarté (repo plateforme réel ≠ repo mandat, pas une dérive)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 14:42:56 +00:00
Claude Code DTP Worker 2e71c5f51e [DTP-Worker 20260802_120544] Sprint 8 · buffer · Clôture de journée du snapshot daily_reports/2026-08-02 : addendum additif actant la fermeture 13/13 fiches AGENT.md (commit 2bc3afb) → lève la réserve −4 « 2/13 auditées » et la « prochaine tâche #2 » devenues caduques
Snapshot stakeholder du jour (écrit 11:11) rendu véridique sans nouveau fichier
per-session (anti-doublon #5) : corps historique 110539 intact, addendum re-vérifié.
Recompute indépendant concordant (22/22 qualité · 564/564 régression · 15/15 recette
· 13 agents) ; 7 gates CI re-joués exit 0. Aucune action VPS (#8).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 12:10:15 +00:00
Claude Code DTP Worker 519f6dbfee [DTP-Worker 20260802_110539] Sprint 8 · buffer · Reprise du canal daily_reports/ (lapsus depuis 30/07) : instantané MVP launch-readiness 100% sourcé (22/22 qualité · 564/564 régression · 15/15 recette) + audit doc-vs-réalité fiches crm/bim + réconciliation des 2 canaux de journalisation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 11:12:10 +00:00
Claude Code DTP Worker 448c310398 [DTP-Worker 20260802_083529] Sprint 8 · buffer · Faisabilité/bancable : élimination du taux 0.52 codé en dur dans l'oracle _check_derived_arithmetic
Le seul survivant en dur du paramètre canonique #9 (point d'équilibre 52 %)
vivait au cœur de l'oracle anti-invention de bancable_gen.py — alors que le
module PRÊCHE la source unique (deps.py « une seule source de vérité » ;
finance._pct « jamais codé en dur »). Transitivement protégé (donc gate
redondant, #5) mais BUG LATENT inverse : #9 52 %→55 % aurait fait rejeter
en silence un dossier bancable VALIDE. Fix = dériver le taux de
CANONICAL (finance._pct), pas un checker de plus.

Vérif : validate byte-identique à 52 % (pe=21) · 22 tests verts · preuve
levée du bug (source→55 % ⇒ pe=22, invariants OK) · 6 gates CI exit 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 08:43:04 +00:00
Claude Code DTP Worker bcfc0f9a9d [DTP-Worker 20260802_043512] Sprint 8 · buffer · Faisabilité : ancrage du DOMAINE DES CODES PROJET (garde _validate_brief + 2 schémas JSON) sur CLAUDE.md §Projets
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 04:41:54 +00:00
Claude Code DTP Worker 7ce0f7b1e7 [DTP-Worker] Sprint 8 · buffer · RBAC/SPEC §3 : correction DÉFAUT FACTUEL (direction 10→9 · plateforme 5→6) + gate d'identité « Nb rôles » par portail ancré sur rbac_50_roles.json
La table §3 de RBAC_50_ROLES_SPEC.md avait dérivé du contrat en préservant le total
50 (10+5 vs 9+6) → invisible aux gates agrégés. Correction alignée sur la source +
nouveau bloc check_readme_claims recomptant chaque portail (et le total) depuis
rbac_50_roles.json. quality_report.json régénéré (evidence octets SPEC). 7 gates PASS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 09:39:54 +00:00
Claude Code DTP Worker ee421add1d [DTP-Worker] Sprint 8 · buffer · Fiscal/ecf_dgii : le JEU DE DEVISES moneda (USD/DOP) ANCRÉ sur CLAUDE.md #10
Le champ que `Encabezado.TipoMoneda` porte dans chaque e-CF DGII —
`moneda.options = ["USD","DOP"]` — vit dans `ecf_spec.json` ET, byte-gaté par
check_artifacts, dans `out/ecf_plan.json`. C'est une valeur CANONIQUE de CLAUDE.md
#10 (« **USD + DOP** devises ») dont le README se réclame « #10 » (README:37/57/77).
Or byte-gater une constante prouve la REPRODUCTIBILITÉ, PAS l'ANCRAGE :
check_artifacts prouve ecf_plan==build depuis le spec, JAMAIS que spec[moneda]==#10.
Les blocs fiscaux amont gatent le FormaPago (Cardnet · #10) + états/champs
émetteurs, AVEUGLES au jeu de devises ; le bloc « Fiches #10 » ancre les fiches
ERPNext/CRM, AVEUGLE au module fiscal.

Piège #6 : RENOMMER/ÉTENDRE les devises dans CLAUDE.md #10 (`USD + DOP`→`USD + EUR`,
ou +`EUR`) ET dans le spec de façon cohérente reste byte-VERT tout en faisant
émettre à l'e-CF un `TipoMoneda` d'une devise qui CONTREDIT le mandat — « vert
trompeur » de la classe de la marque SEO §Entités, la persona Chat OTOIA ou les
tokens branding #4, qu'aucune suite tests/ (FONCTIONS de génération, jamais l'ancre
à CLAUDE.md) n'attrape. L'agent ERPNext Backend câblerait TipoMoneda hors mandat.

Correctif de déclaration : nouveau champ `moneda.options_source` (ecf_spec.json +
requis dans ecf.schema.json) citant « CLAUDE.md #10 — devises **USD + DOP** »,
DISTINCT de `source` (taux TipoCambio, reste null/a_confirmer côté VPS · #8).
Artefact régénéré (byte-gate re-verte · 39 tests module verts).

Gate ajouté (ci/check_readme_claims.sh, bloc « Fiscal · ecf_dgii — le JEU DE
DEVISES `moneda` … ANCRÉ sur CLAUDE.md #10 ») : RÉUTILISE exp["devises"] déjà
recomputé depuis #10 (zéro duplication) ; (a) spec[moneda].options == devises #10
ORDRE exact ; (b) artefact byte-gaté idem ; (c) options_source cite CLAUDE.md #10 +
chaque devise ; (d) prose README qui se réclame de #10 == jeu exact + toute mention
moneda/devise d'une paire concordante (scan ancré sur contexte, évite le faux
positif `RNC / ITBIS`). 7 morsures vérifiées (CLAUDE.md #10 rename = 4 bites en
cascade · spec options régénéré = le vrai silent green · artefact seul · reorder ·
options_source sans ancre · README ligne #10 · README table), restauré vert, 7
gates re-verts.

ci/README.md (clause récap + paragraphe « 4e surface du MÊME README ») mis à jour.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 07:43:29 +00:00
Claude Code DTP Worker e5f6459e85 [DTP-Worker] Sprint 8 · buffer · DevOps/deploy_runbook (2e surface) : la TABLE « Plan de phases généré » — le GRAPHE de portage VPS ordonné (# · Responsable · Modules · Dépend de) — était un WILDCARD et avait DÉRIVÉ : elle omettait mobile/app_config (phase 5) ET qa/acceptance (phase 7), 20/22 modules listés pendant que la couverture prouvée était bijective 22/22. README corrigé sur l'artefact byte-gaté + gate d'identité par phase (8 morsures).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:40:44 +00:00
Claude Code DTP Worker 9038417db8 [DTP-Worker] Sprint 8 · buffer L75 · « Vert trompeur » ironique : le README de l'auditeur 4Big (le module qui COMPTE les modules) figeait son propre total à la main « 17/17 modules » alors que quality_report.json en dit 22 — non gaté (check_readme_claims ne couvrait que le README d'entrée, pas ce README de module ; auditeur auto-exclu SoD ⇒ 0 signal) → 17→22 + règle L38 rendue count-free + bloc gate recomputant verdict/pass/modules/min_score depuis totals (2 morsures)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 07:07:23 +00:00
Claude Code DTP Worker 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>
2026-07-31 06:12:15 +00:00
Claude Code DTP Worker aebe9b7ba9 [DTP-Worker] Sprint 7/8 · Livrable démo : prompteur Markdown (out/run_sheet.md)
Le seul livrable démo (demo/scenarios) ne produisait qu'un run-sheet JSON
machine — aucun support lisible par un présentateur, alors que le Sprint 7 vise
un scénario « prêt à jouer ». Rendu Markdown in-repo depuis le JSON = même
pattern que faisabilite (rend des .md), zéro écriture VPS.

- scenlib/render.py : render_markdown() PUR/déterministe, ne lit que le
  run-sheet (déjà anti-inventé), aucun chiffre nouveau (#6).
- build émet out/run_sheet.md (prompteur : par beat, table « À dire | Chiffre |
  Source (preuve) » traçant le pointeur RFC 6901 amont).
- Compat vérifiée : HANDOFF 4Big ne json.load que les .json (ignore .md) ;
  check_artifacts diffe tout fichier build → md commité + reproductible.
- Consommateurs régénérés : régression 551→558 (22 suites PASS) ;
  quality_report.json (README 5011→5575 o · 32→39 test_*) PASS 22/22 ;
  03_agents/qa/AGENT.md 551→558 ; README démo auto-score 96→97.
- 7 gates verts · 39 tests démo · 34 tests audit · arbre propre.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 04:09:23 +00:00
Claude Code DTP Worker 1d21a3788d [DTP-Worker 20260731_023000] Auto exec · session 20260731_023000
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 / 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
2026-07-31 02:45:00 +00:00
Claude Code DTP Worker a30ff937f0 [DTP-Worker] Sprint 8 · buffer L75 · Reproductibilité checkout propre : hand-off out/ des 4 générateurs RBAC était .gitignore-é (gate rouge en CI, vert local seulement) + durcissement check_artifacts (build produit ⇒ DOIT être suivi par git)
Défaut réel (même classe que le bug regression_run.json corrigé plus tôt) :
les 4 générateurs RBAC (fixtures_gen/userperm_gen/roleprofile_gen/apply_plan)
.gitignore-aient leur out/, alors qu'ils sont audités en archétype `generator`
(critère HANDOFF). En checkout PROPRE (git archive HEAD = ce que voit le runner
Gitea) leur out/ est absent → qa/audit_4big (dont le build relit le out/ de
CHAQUE module) les note 80<95 ⇒ INV7 ⇒ build refusé ⇒ check-artifacts ET
check-regression ROUGES. Ça ne passait qu'en local via les out/ non suivis
laissés par des build manuels.

Fix : committer le out/ des 4 générateurs (build byte-déterministe prouvé ;
apply_plan lit ses frères en process, pas via out/) → alignement sur les 15
autres générateurs ; audit 100/100 en checkout propre.

Durcissement : check_artifacts.sh exige désormais `git ls-files --error-unmatch`
sur chaque fichier produit → un out/ ignoré/non commité devient une erreur
LOCALE honnête au lieu d'une surprise en CI. Bite-proof : git rm --cached d'un
artefact (laissé sur disque) ⇒ exit 1 ; re-add ⇒ exit 0.

Régénéré : quality_report.json (dérive DOC = taille des 4 README édités).
Vérifs : 6 gates verts sur git archive propre ; 534/21 inchangé ; suites OK.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 01:42:14 +00:00
Claude Code DTP Worker 76fb0e768d [DTP-Worker] Sprint 8 · buffer L75 · Intégrité matrice régression : fix gate check_regression cassé en CI (run baseline commité) + invariant disque→CI (INV4 orphan_tests_dirs)
Défaut #1 (bug CI réel) : ci/check_regression.sh exigeait regression_run.json
commité comme baseline, mais le fichier était .gitignore → absent en checkout
propre → le job Gitea check-regression échouait sur CHAQUE run CI (ne passait
qu'en local via un fichier non suivi). L'artefact run est byte-déterministe
(aucun horodatage/hôte/durée · path relatif) → committer est licite. Fix :
run désormais commité (baseline), .gitignore + README réécrits.

Défaut #2 (invariant manquant) : coverage_report prouvait CI→disque mais pas
l'inverse. Nouveau disk_test_modules() + orphan_tests_dirs dans INV4 : un module
gagnant un tests/ sans job CI fait chuter la couverture (fini la sous-comptée
silencieuse de la matrice). Schéma + 2 tests de morsure.

Consommateur régénéré : qa/audit_4big/quality_report.json (README 3710→4236 o,
24→26 méthodes). Matrice 534/21/PASS inchangée (harnais self-exclu, INV3).
5 gates verts · 26+34 tests OK · YAML valide.
2026-07-31 00:41:16 +00:00
Claude Code DTP Worker e16c4f676d [DTP-Worker] Sprint 8 · buffer · Gate reproductibilité artefacts (ci/check_artifacts.sh) + fix dérive run_sheet demo 18→21
Nouveau gate CI bloquant : régénère chaque 05_deliverables_mvp/**/out/ depuis son
générateur `build` et exige l'égalité byte-for-byte avec le fichier commité
(découverte auto · stdlib pur · zéro pip). Attrape la dérive silencieuse d'un
artefact qui auto-résout une valeur depuis un autre module et devient périmé quand
la source grandit — dérive qu'aucune suite tests/ (fonctions, pas fichier commité)
n'attrapait.

Défaut détecté et corrigé par ce gate : demo/scenarios/out/run_sheet.json
embarquait ci_modules_count=18 (buildé Sprint 7) alors que qa/audit_4big en compte
désormais 21. Régénéré (diff 1 ligne). Consistance live re-vérifiée.

Wiring : job check-artifacts + needs du gate agrégé (.gitea/workflows/ci.yml) ·
doc (ci/README.md). Vérifs : test négatif du gate OK (dérive → EXIT 1), 4 gates
statiques EXIT 0, suites CI-parsing vertes (regression/acceptance/audit_4big/demo),
21/21 suites · 534 tests, compteurs dérivés stables.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 23:38:15 +00:00
Claude Code DTP Worker 535bc83e0d [DTP-Worker] Sprint 8 · buffer L75 · Gate 4Big check_docs 0 faux positif (fixtures data_room exclues + spec CHOISIR scorée 95/100)
- ci/check_docs.sh : exclut */fixtures/data_room/* du gate SOFT auto-score
  (inputs de test synthétiques, cf. publiciste/fixtures/README.md ; même
  statut que daily_reports/*). Portée précise : fixtures/README.md reste gaté.
- specs/CHOISIR_MON_UNITE_SPEC.md : ajoute une section Auto-score 4Big 95/100
  (livrable spec, contrainte #5) ; P01=2.484M USD cité verbatim de la spec (#6).
- Resultat : 9 avertissements documentaires -> 0. Gates vertes (check_docs,
  guard_constraints, validate_json tous EXIT 0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 23:02:54 +00:00
Claude Code DTP Worker a51e17af9a [DTP-Worker] Sprint 8 · buffer L75 · Cohérence spec CHOISIR_MON_UNITE (header stale résolu)
En-tête de specs/CHOISIR_MON_UNITE_SPEC.md se contredisait avec le bas du fichier :
Status affichait 'Attente vision précise Michel · placeholder' + 5 'Questions
ouvertes pour Michel', alors que DÉCISIONS FINALES MICHEL (2026-07-28 · L63-109)
tranchent déjà chacune de ces questions + parcours vendeur finalisé.

- Status → ' Vision finalisée (2026-07-28) · spec design-complete', implémentation
  page /choisir-mon-unite marquée frontend VPS hors-périmètre worker (#8, comme EAS mobile).
- Vision cible : (à confirmer) → ( confirmée · cf. Décisions finales).
- Questions ouvertes : conservées pour traçabilité, chacune mappée à sa décision
  (Speckle 3D / prix public+login / réservation 10j ERPNext / DocuSign / pas de comparateur).

Honnêteté #6 : fichier volontairement non-scoré (soft-warn attendu) — spec dont
l'implémentation est hors-repo, scorer inventerait une qualité de livrable inexistante ;
rationale mis à jour (plus 'placeholder attente vision', framing devenu faux).

Vérifs : check_docs EXIT 0 (0 lien cassé) · guard_constraints EXIT 0 · validate_json
EXIT 0 · régression inchangée 534 tests verts · docs pures, 0 code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 19:31:47 +00:00
Claude Code DTP Worker 2d11a778b2 [DTP-Worker] Sprint 8 · buffer L75 · Fiche agent Faisabilité cross-linke ses livrables in-repo
Seule fiche agent (parmi qa/crm/devops qui en ont une) sans aucun lien vers ses
livrables gated : 03_agents/faisabilite/AGENT.md avait 0 lien 05_deliverables_mvp
vs 3 chez ses pairs. Aucun chemin de la mission vers les artefacts commités qui la
réalisent — vrai gap de finition, non un polish cosmétique.

+ section « Livrables Faisabilité réellement produits » (table calquée sur le
pattern des agents pairs) · 3 entrées TOUTES vérifiées par lecture directe :
TEMPLATE_FAISABILITE_CANONIQUE_v1.0.md [S1 · check-docs] · generator/ [S2 ·
faisabilite_gen score/scaffold/generate/batch · faisabilite-gen-tests · 16t] ·
bancable/ [S3 · bancable_gen build/validate · bancable-tests · 22t].

Anti-invention #6 : sprints lus dans en-têtes README/CLI, sous-commandes via --help,
comptes de tests repris du regression run faisant autorité, jobs CI lus dans ci.yml.
Frontière worker/VPS #8 rappelée : générateurs = contrepartie commitée+testable des
composants runtime OTOIA hors périmètre (aucune faisabilité PXX concrète prétendue).

Vérifs : check_docs vert (0 lien cassé · 3 nouveaux liens relatifs résolvent) ·
guard_constraints vert (exit 0). Doc-only, 0 code · régression inchangée 534 verts.
Auto-score 4Big 96/100.
2026-07-30 19:03:04 +00:00
Claude Code DTP Worker 51a6389fe4 [DTP-Worker] Sprint 8 · buffer L75 · Cohérence auto-score 4Big (2 modules gated : demo/scenarios 32t + legal/confotur 44t → section Auto-score 96/100 comme tous leurs frères · check_docs conforme, seuls fixtures data_room [entrées] + CHOISIR [placeholder Attente vision Michel] restent en soft-warn, non-scorés par honnêteté #6 · régression exhaustive 21/21 suites · 534 tests verts · guards verts · docs pures, 0 code) 2026-07-30 18:01:32 +00:00
Claude Code DTP Worker ccda618ea4 [DTP-Worker] Sprint 8 · buffer L75 · Doc agent CRM (stub→doc réelle · 3 modules Sprint 4 sourcés + anti-invention taux null) (Doc · roadmap L75)
- 03_agents/crm/AGENT.md : stub 29 lignes → doc réelle ~90 lignes
- Table 3 livrables CRM (workflow_vente/dossier_vente/commissions) :
  sprint · CLI build|validate · job CI · nb tests (25/31/25 = 81, tous sourcés)
- #3 mis en avant (CRM = ERPNext natif · JAMAIS EspoCRM/HubSpot)
- Anti-invention #6 : taux commission null ; USD+DOP/Letter US cités #10
- Vérifs : guard vert · check_docs vert (liens OK) · 0 réf roadmap morte

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 13:01:09 +00:00
Claude Code DTP Worker 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>
2026-07-30 12:33:28 +00:00
Claude Code DTP Worker 5d9ea5687d [DTP-Worker] Sprint 8 · Générateur Matrice d'acceptation / traçabilité MVP (15 promesses roadmap · 21 modules gated tracés bijectif · partition sprint exacte · 12 hors-périmètre sourcés) (QA · roadmap L75/L80-87)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 12:12:22 +00:00
Claude Code DTP Worker 58ed555db0 [DTP-Worker] Sprint 8 · Générateur Run-book de déploiement VPS unifié (7 phases · 20 modules gated · couverture bijective vs CI) (DevOps · roadmap L73)
Agrégateur de méta-niveau au-dessus du run-book RBAC : ordonne le déploiement
VPS de TOUS les livrables gated en 7 phases (Prérequis → DocTypes → RBAC →
Workflow/métier → Frontend → Contenu → Vérification QA), avec graphe de
dépendances inter-phases acyclique et confirmations préalables sourcées.

Anti-invention (#6) : périmètre dérivé du CI (parse_ci réutilisé), couverture
bijective module→phase (un module gated non planifié OU un module planifié non
gated → refus), SoD (auto-exclusion), zéro chiffre métier (confirmations
sourcées via audit_5d D1.1/D1.2/D1.3/D2.3 + endpoint OTOIA).

Vérifs : 29/29 tests module (dont 14 injections négatives) · audit_4big PASS
20/20 à 100 · régression run 20/20 suites · 503 tests · 0 échec · gate CI local
vert. CI job devops-deploy-runbook-tests + gate ; enregistrement audit_4big
(19→20) ; plan régression régénéré (19→20 suites).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 11:41:43 +00:00
Claude Code DTP Worker 4b0752906d [DTP-Worker] Sprint 8 · Générateur Matrice de régression exhaustive (19 suites · 474 tests · gate méta-niveau) (QA · roadmap L74)
Harnais méta-niveau : agrège l'exécution de toutes les suites gated en une
matrice + verdict PASS/FAIL et fournit le compte agrégé faisant autorité
(N tests verts). Périmètre dérivé du CI (réutilise q4lib/registry.parse_ci ·
zéro duplication) ; anti-invention (#6) : le plan ne contient aucun compteur de
résultat, recomputé à la validation. Enregistré dans l'audit 4Big (18→19
modules · PASS 19/19). run exhaustif : 19/19 suites vertes · 474 tests passés.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 11:09:08 +00:00
Claude Code DTP Worker cac65386ab [DTP-Worker] Sprint 7 · Générateur Scénarios démo (run-sheet P07 banquier / P05 client) (CRM+Faisabilité · roadmap L68)
Orchestrateur méta-niveau : compose les hand-offs out/ des 10 modules déjà
livrés en un run-sheet de démo jouable, via pointeurs RFC 6901 résolus à la
construction (zéro chiffre en dur · #6). Réutilise le validateur Publiciste et
la preuve de couverture CI de l'auditeur 4Big (#5) — une démo ne s'appuie que
sur des modules gated. Enregistre demo/scenarios dans l'audit 4Big (17→18,
verdict PASS 18/18 à 100). 32 tests (9 injections négatives) · régression 474
tests verts · guards CI verts · builds déterministes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 10:39:24 +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
Claude Code DTP Worker 17ad5c0a01 [DTP-Worker] Sprint 6 · Générateur Chat OTOIA embarqué par portail (Custom Block natif) (ERPNext Backend · roadmap L63)
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 / 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 / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
Carrier natif ERPNext v15 (Custom Block) + config runtime par portail.
Ancrage RBAC : roles_allowed/knowledge_scope = surface exacte du portail,
synchronisés avec les Has Role des Workspaces. Endpoint OTOIA null (a_confirmer).
Persona Amélie + capabilities + langues FR/EN/ES sourcés (anti-invention #6).
14 invariants · 31 tests · régression 408 tests verts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 09:37:51 +00:00
Claude Code DTP Worker 0d3b2420c3 [DTP-Worker 20260730_085719] Auto exec · session 20260730_085719
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 / 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 / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
2026-07-30 09:12:19 +00:00
Claude Code DTP Worker c06e15c058 [DTP-Worker] Sprint 5 · Générateur Audit 5D conformité (QA · roadmap L58)
Audit de second niveau : lit les hand-off out/ des livrables (workflow vente,
Dossier Vente, commissions, e-CF DGII, CONFOTUR) et vérifie 17 contrôles en
5 dimensions (D1 Traçabilité/ISA 500 · D2 AML-UAF/Ley 155-17 · D3 Fiscal
e-CF/Ley 32-23 · D4 Intégrité/IFRS · D5 Gouvernance-SoD/ISA 315).

Anti-invention #6 : paramètre réglementaire non confirmé → A_CONFIRMER (open
item assigné au métier), jamais fabriqué. Verdict PASS_WITH_OPEN_ITEMS (13 PASS,
0 FAIL, 4 à confirmer). Réutilise validateur Publiciste + RoleResolver CRM +
roles_targeting CONFOTUR (zéro duplication).

37 tests · 15 invariants · build déterministe · régression 341 tests verts.
Job CI qa-audit-5d-tests + gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 08:41:57 +00:00
Claude Code DTP Worker 35a20247f8 [DTP-Worker] Sprint 5 · Générateur DocType CONFOTUR Application (ONAPI/Legal · roadmap L55)
DocType custom porteur des dossiers d'incitation touristique CONFOTUR (Ley
158-01, RD), référencé par RBAC (3 rôles) et le workflow vente mais jamais
généré. Permissions = permissions_cibles RBAC mot pour mot ; is_submittable
déduit de l'action submit ; estado/dossier_vente dérivés du workflow ; aucun
taux/loi/montant fabriqué (#6). 14 invariants, 44 tests, hand-off dans out/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 08:09:41 +00:00
Claude Code DTP Worker c0d2e21ef3 [DTP-Worker] Sprint 4 · Générateur Workspaces ERPNext 5 portails rôle (Frontend Console · roadmap L49)
Livre le dernier volet ouvert de Sprint 4 : Frontend Console « 5 portails
(Ventes/Construction/Achat/Compta/Direction) ». Contrainte #1 (ERPNext natif) :
le portail de landing par rôle EST le DocType Workspace v15 → 5 Workspaces natifs.

Anti-invention (#6) : rôles et DocTypes dérivés du contrat rbac_50_roles.json ;
chaque lien/raccourci vise un DocType présent dans les permissions_cibles du
portail (droit prouvé) ; couverture exhaustive ; flag custom issu du contrat ;
tokens de marque repris verbatim de CLAUDE.md #4. CLI + 12 invariants + 19 tests
(4 négatifs). Régression 260 tests verts. Hand-off VPS #8 documenté.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 07:38:44 +00:00
Claude Code DTP Worker 7117394651 [DTP-Worker] Sprint 4 · Générateur configuration e-CF DGII (Compupar) (ERPNext Backend · roadmap L51)
Facturation électronique dominicaine cross-cohérente workflow↔DocType↔RBAC :
émission sur état soumis, base Currency réelle, rôle compta-fiscaliste-ecf.
Anti-invention (#6) : RNC/ITBIS/TipoCambio/endpoints Compupar null (a_confirmer,
jamais sans source) ; seules les données de référence DGII encodées avec source.
Composeur e-NCF traçable (E+tipo(2)+seq(10)). 39 tests · 12 invariants · gate CI
(job fiscal-ecf-tests) · 241 tests de régression verts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 07:08:55 +00:00
Claude Code DTP Worker 71c1223cc3 [DTP-Worker] Sprint 4 · Générateur barème commissions vendeurs (ERPNext Backend · roadmap L51)
Plan de commissions cross-cohérent workflow ↔ DocType ↔ RBAC + calcul traçable
commission = base × taux (façon banclib/finance.py). Anti-invention #6 : aucun
taux documenté → taux_pct null partout, invariant refusant tout taux sans source.
Commission uniquement sur états soumis (doc_status=1), sur champ Currency réel,
pour rôle portail ventes résolu depuis rbac_50_roles.json.

- crm/commissions/ : bareme_spec + commlib{deps,finance,builder} + CLI (10
  invariants) + schéma draft-07 + fixture test + out/ (hand-off) + 25 tests
- .gitea/workflows/ci.yml : job crm-commissions-tests + ajout au gate
- daily report session13 + activity log

Vérifs : 25/25 tests · gate CI local vert · régression 202 tests verts.
Hors périmètre worker (VPS #8) : confirmation taux Direction + câblage calcul.
Auto-score 4Big : 96/100.

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