diff --git a/05_activity_log/2026-07-30.md b/05_activity_log/2026-07-30.md index 49abdd5..961bde7 100644 --- a/05_activity_log/2026-07-30.md +++ b/05_activity_log/2026-07-30.md @@ -1549,3 +1549,58 @@ nouvelles cibles résolvent) · `ci/guard_constraints.sh` EXIT 0. `crm/AGENT.md` (`bim`/`ifc_speckle`/`rendu`/`mobile` = VPS-only, sans livrable in-repo → hors chantier.) **Auto-score 4Big** : 96/100. + +--- + +## Session 20260730_225912 · Buffer S8 · Gate 4Big check_docs : 0 faux positif (fixtures exclues + spec scorée) + +**Tâche** : **Sprint 8 · buffer L75 (corrections finales)**. Le chantier de cross-linking +des fiches agents étant **clos** (commit f68f2e2 : 4 dernières fiches SEO/DevOps/Frontend/ +ONAPI), baseline sain établi : `check_docs.sh` EXIT 0, `guard_constraints.sh` EXIT 0, +`validate_json.sh` EXIT 0. Cible de la session : réduire le **bruit** de la gate +documentaire — la section « 2. Auto-score 4Big (SOFT) » émettait **9 avertissements ⚠**. + +**Diagnostic (analyser avant agir · #1)** : les 9 ⚠ se répartissent en deux natures +**distinctes**, l'une un **faux positif**, l'autre un **vrai manque** : +- **8 sur 9** sous `publiciste/fixtures/data_room/PXX/…` — ce sont des **INPUTS de test + synthétiques** consommés par le parser (`test_publiciste.py:25` `FIXTURES = fixtures/data_room`). + Le README de ces fixtures les déclare explicitement « **DONNÉES SYNTHÉTIQUES DE TEST … + ne doivent JAMAIS être publiés** » (`publiciste/fixtures/README.md:1-5`). Un input de + test n'est **pas un livrable scoré 4Big** — exactement le même statut que + `daily_reports/*`, déjà exclu de cette gate. +- **1 sur 9** — `specs/CHOISIR_MON_UNITE_SPEC.md`, un **vrai livrable** (spec design-complete + validée par Michel, 5 décisions tranchées) qui n'affichait **aucun** auto-score. + +**2 solutions par nature (workflow #4 · toujours 2+ options)** : +- *Fixtures* — A **exclure la racine** (root-cause : les inputs de test ne sont pas des + livrables) vs B ajouter un faux score à des fixtures « fictives ». **Choix A** : B + falsifierait des fichiers explicitement non-publiables. Portée **précise** : + `*/fixtures/data_room/*` (le sous-arbre d'inputs), **pas** `*/fixtures/*` — sinon + `fixtures/README.md` (doc réelle, déjà scorée) perdrait sa surveillance. +- *Spec* — A l'**exclure** (specs = design docs) vs B lui **donner un vrai score**. + **Choix B** : la spec EST un livrable (contrainte #5 « score min 95 sur tout livrable »), + l'exclure masquerait un manque au lieu de l'honorer. + +**Fichiers modifiés (2)** : +1. `ci/check_docs.sh` — nouvelle branche `case` : `05_deliverables_mvp/*/fixtures/data_room/*) + continue ;;` (SOFT gate section 2 uniquement ; liens internes de la section 1 restent + vérifiés partout, fixtures comprises). +2. `05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md` — section **« Auto-score 4Big : + 95/100 »** ajoutée, avec table 4 volets + justification du **−5** (provisionnements + externes DocuSign/Speckle/PROJECT_META non tranchés, à lever au build downstream). + +**Anti-invention (#6)** : le seul chiffre chiffré cité dans le score (P01 = **2.484M USD +Dumar tasación**) est une **citation verbatim** de la spec elle-même (`…:63`, section +« Non-négociables ») — aucun nombre fabriqué. Le score 95 est une **auto-évaluation de +rigueur de la spec**, explicitement **pas** un score d'implémentation (le build +`/choisir-mon-unite` reste hors-périmètre worker · #8). + +**Vérifs post-édition** : +- `check_docs.sh` : **9 ⚠ → 0 ⚠**, EXIT 0 (liens internes toujours OK). +- **Test de non-régression de portée** : `fixtures/README.md` reste **gaté** (✓ score + présent) — seul le sous-arbre `data_room/` est exclu ; la spec affiche désormais ✓. +- `guard_constraints.sh` EXIT 0 · `validate_json.sh` EXIT 0 (inchangés). + +**Hors périmètre worker (VPS · #8)** : néant (changements in-repo : gate CI locale + doc). + +**Auto-score 4Big** : 96/100. diff --git a/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md b/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md index d99c4b8..aee2c41 100644 --- a/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md +++ b/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md @@ -112,3 +112,20 @@ _Conservées pour traçabilité ; chaque point est résolu par la section 3. **Après login** → viewer 3D Speckle bâtiment + fiche unité complète + prix exact + financement 4. **CTA "Réserver cette unité"** → création reservation 10j ouvrables + génération contrat DocuSign 5. **Signature DocuSign** → dépôt 20% (Cardnet) → réservation confirmée → email + notification vendeur + +--- + +## Auto-score 4Big : **95/100** + +Score de la **spec** (rigueur/complétude du design), **pas** d'une implémentation +(le build `/choisir-mon-unite` reste hors-périmètre worker · contrainte #8, cf. en-tête). + +| Volet 4Big | Note | Justification | +|---|---|---| +| Masterplan / parcours | 96 | Parcours vendeur 4 étapes finalisé (projet → bâtiment → étage → unité) + 5 décisions Michel tranchées. | +| Architecture technique | 95 | Speckle iframe/bâtiment, `Unit Reservation` ERPNext, webhook DocuSign, ``/`` spécifiés. | +| Paysage / expérience | 95 | Design luxury `#0a0a12`+`#f0b429` (Fraunces/Cormorant), responsive mobile-first, FR/EN/ES. | +| Ingénierie / conformité | 94 | Cardnet (pas Stripe), rendus réels only, prix vérifiés (P01 = 2.484M USD Dumar), zéro invention (#6). | + +**−5** : provisionnements externes non tranchés (compte DocuSign entreprise, `stream_id` +Speckle par projet, extension `PROJECT_META` à P04/P06/P08/P09) — à lever au build downstream. diff --git a/ci/check_docs.sh b/ci/check_docs.sh index 7d776d5..c958a8c 100755 --- a/ci/check_docs.sh +++ b/ci/check_docs.sh @@ -46,6 +46,7 @@ echo "== 2. Auto-score 4Big sur les livrables (SOFT · CLAUDE.md #5 · ≥95/100 while read -r md; do case "$md" in 05_deliverables_mvp/daily_reports/*) continue ;; # rapports : hors gate score + 05_deliverables_mvp/*/fixtures/data_room/*) continue ;; # fixtures : INPUTS de test synthétiques (cf. publiciste/fixtures/README.md), pas des livrables scorés esac if grep -qiE 'score|/100' "$md"; then ok "$md — mention de score présente"