diff --git a/05_activity_log/2026-08-05.md b/05_activity_log/2026-08-05.md index 97bd98a..dfe64e7 100644 --- a/05_activity_log/2026-08-05.md +++ b/05_activity_log/2026-08-05.md @@ -1,5 +1,50 @@ # Activity Log · 2026-08-05 · Claude Code DTP Worker +## Session 081202 · FIX RÉEL — le module `crm/financement_bancaire` s'auto-étiquetait « **Sprint 5** » dans une **citation roadmap-globale** (`roadmap L52`) alors que L52 ∈ **Sprint 4** : label corrigé S5→S4 sur ses 2 seules surfaces (README + docstring gen) · directive Michel INTACTE · 0 gate · 0 chiffre inventé + +**Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **33 PASS · 0 FAIL · 0 SKIP**, arbre propre, +roadmap intégralement livrée/gatée (Sprint 8 · launch-readiness). Tâche retenue : le **SIGNAL surfacé non +tranché** par la session 071201 — le README du module `crm/financement_bancaire` écrivait « **Sprint 5** · +roadmap L52 » alors que L52 est une ligne **Sprint 4**. Investigué et **résolu comme drift réel** (pas un +cadre agent-interne). + +**Le finding — un vrai conflit de cadres, tranché par la structure roadmap + l'autorité byte-gatée.** +La ligne 3 du README dit « **Sprint 5 · CRM natif ERPNext · roadmap L52 (workflow vente end-to-end · volet +financement)** ». C'est une **citation roadmap-GLOBALE** (elle cite `roadmap L52` + reprend le texte du +deliverable S4 « workflow vente end-to-end »), **pas** un cadre agent-interne de build-phase +([[agent-internal-vs-roadmap-sprint-frames]]). Or : +- Le **fichier roadmap** lui-même : `## SPRINT 4` = L48, deliverable L52 « 5 portails RBAC live · workflow + vente end-to-end » ; `## SPRINT 5` = L54 « ONAPI + Compliance + Mobile » (rien à voir avec le financement). + → « Sprint 5 · roadmap L52 (workflow vente end-to-end) » est **auto-contradictoire**. +- L'**autorité byte-gatée** `qa/acceptance/acceptance_spec.json` (partition INV5) classe + `crm/financement_bancaire` sous **S4 · roadmap_line 52** (`evidence_modules` de S4). +- Les **3 modules frères** du même bucket S4 s'étiquettent tous « **Sprint 4** » (workflow_vente : « Réalise + le deliverable roadmap Sprint 4 » · dossier_vente : « Sprint 4 » · commissions : « Sprint 4 · roadmap + ligne 51 »). `financement_bancaire` était le **seul outlier**. +- La **fiche CRM** `03_agents/crm/AGENT.md` liste déjà correctement ce module en « **4 (roadmap L52)** » + (session 071201, sourcé S4). Le module contredisait donc sa propre fiche. + +**Provenance de l'erreur (surfacée, non éditée).** La **DIRECTIVE de Michel** +`DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md:140` cadre le travail en « `[Sprint 5 · Financement]` » — +c'est **son** cadre d'entrée (snapshot daté, autorité pour son propre contenu · [[directive-vs-implementation]]). +L'auteur du module a transcrit ce « Sprint 5 » directive **dans un slot de citation roadmap-globale**, où il +devient faux (L52 ∈ S4). La directive est **laissée INTACTE** (input immuable de Michel, jamais éditée · comme +`daily_reports`). + +**La correction (2 surfaces, balayées en un passage · [[prose-facts-vs-numeric-drift]]).** Grep exhaustif : +exactement **2** surfaces manuscrites portaient le mauvais label — `README.md:3` (prose) et +`financement_bancaire_gen.py:4` (docstring) ; **aucun** spec/artefact/`out/*.json`/gate ne porte de champ +sprint (vérifié). S5→S4 sur les deux. Le `build` du module ne régénère **aucun** artefact modifié (docstring ++ README non émis dans `out/`) → `check_artifacts` reste vert, `git status` ne montre que mes 2 fichiers source. + +**Pas de gate ajouté (#5).** Le label de sprint des modules est un **piège à deux cadres légitimes** +(agent-interne vs roadmap-global) : un gate aveugle qui re-dériverait chaque label depuis `acceptance_spec` +produirait des faux positifs sur les frames agent-internes légitimes. Je **corrige la prose** (drift réel, +citation roadmap-globale fausse) sans instrumenter la surface. 0 chiffre inventé (#6) · 0 commande VPS (#8). + +**Bilan.** 2 surfaces source alignées S5→S4 · directive Michel INTACTE · 0 édition d'autorité (l'autorité +`acceptance_spec` disait déjà S4) · 0 gate · 0 invention · **CI 33 PASS**. SIGNAL 071201 → **clos**. + ## Session 071201 · FIX de COUVERTURE doc — la fiche CRM omettait son **4e module livré** (`crm/financement_bancaire`) : ajout d'une sous-section dédiée + ligne de table **auto-gatée** (35 tests · job CI · verbes CLI) · 0 édition d'autorité **Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **33 PASS · 0 FAIL · 0 SKIP**, arbre propre. diff --git a/05_deliverables_mvp/crm/financement_bancaire/README.md b/05_deliverables_mvp/crm/financement_bancaire/README.md index 3592138..f25868a 100644 --- a/05_deliverables_mvp/crm/financement_bancaire/README.md +++ b/05_deliverables_mvp/crm/financement_bancaire/README.md @@ -1,6 +1,6 @@ # Financement Bancaire · parcours hypothécaire immobilier RD -**Sprint 5 · CRM natif ERPNext · roadmap L52 (workflow vente end-to-end · volet +**Sprint 4 · CRM natif ERPNext · roadmap L52 (workflow vente end-to-end · volet financement).** Matérialise la [`DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md`](../../../DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md) (Michel, 2026-08-03) : un module **complet** de financement bancaire pour un vrai diff --git a/05_deliverables_mvp/crm/financement_bancaire/financement_bancaire_gen.py b/05_deliverables_mvp/crm/financement_bancaire/financement_bancaire_gen.py index 087dc98..d85ced6 100644 --- a/05_deliverables_mvp/crm/financement_bancaire/financement_bancaire_gen.py +++ b/05_deliverables_mvp/crm/financement_bancaire/financement_bancaire_gen.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Générateur du module Financement Bancaire — parcours hypothécaire RD. -Sprint 5 · CRM natif · roadmap L52 (« workflow vente end-to-end » — volet +Sprint 4 · CRM natif · roadmap L52 (« workflow vente end-to-end » — volet financement) + DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md (Michel). Transforme le contrat `financement_spec.json` en artefacts prêts à consommer