diff --git a/05_activity_log/2026-08-03.md b/05_activity_log/2026-08-03.md index a4d62fb..a050536 100644 --- a/05_activity_log/2026-08-03.md +++ b/05_activity_log/2026-08-03.md @@ -1608,3 +1608,67 @@ gate ajouté (#5) · zéro chiffre inventé (#6) · aucune commande VPS (#8) · **Résultat : 1 édition doc RÉELLE** (README indexe enfin la classe `DIRECTIVE_*.md`), classe [[directive-vs-implementation]] rendue **navigable depuis le point d'entrée**. Gate vert. + +## Session 20260803_190730 · Audit directive-vs-SPEC (couple NEUF) → édition doc RÉELLE + SIGNAL Michel + +**Classe [[directive-vs-implementation]] étendue à un couple encore non audité : +`DIRECTIVE_PLANPOINT_STYLE_20260803.md` (2026-08-03) ↔ `specs/CHOISIR_MON_UNITE_SPEC.md` +(DÉCISIONS FINALES 2026-07-28).** Jusqu'ici seuls FINANCEMENT / MOBILE / PIE / V10 étaient +triangulés ; PLANPOINT était classé « contexte/UI, pas de module byte-gaté » et n'avait donc +jamais été confronté à sa **spec** de destination (qui, elle, existe : `specs/CHOISIR_MON_UNITE_SPEC.md`). + +**Sondes préalables — 3 classes réelles, toutes CLEAN (0 à corriger) :** +1. **docstring/README-vs-CODE** sur les 22 générateurs (Explore dédié) → 0 sortie fantôme, + 0 sortie non documentée, 0 input/fallback fantôme. Classe [[docstring-vs-code-drift]] + (récurrente) confirmée close après la dernière évolution de code. +2. **Réconciliation des comptes README** — « 24 suites gated » ↔ « 32 PASS » CI : réconcilié + par le bloc `coverage` de `regression_plan.json` (`suites_count=24` + `gated_in_ci=25` incluant + le self-module `qa/regression`) ; « 24/24 modules » = `quality_report` (24 modules). Aucun + scalaire présent-tense dérivant. Tous les gates `ci/*.sh` ont bien une ligne dans `ci/README.md` + (0 gate sans doc). +3. **daily_reports/2026-08-03.md** = série temporelle horodatée cohérente (blocs 22/22→24/24 = + snapshots successifs, pas dérive) — pas de chiffre présent-tense périmé. + +**Le gap RÉEL trouvé (et corrigé — édition doc, PAS signal-only).** La spec +`CHOISIR_MON_UNITE_SPEC.md` proclame « **DÉCISIONS FINALES MICHEL (2026-07-28)** · TOUTES +TRANCHÉES », mais la directive **PlanPoint (2026-08-03, postérieure de 6 jours)** en **contredit +deux** — et **rien dans le repo ne reliait ces deux inputs datés de Michel** (`grep` : aucun +signal antérieur dans activity_log / daily_reports ; la spec n'est référencée que depuis +`03_agents/frontend_console/AGENT.md`, en simple lien). La spec sur-affirmait donc la finalité. + +Les **2 contradictions dures** (+ 1 précision) : +| Point | Spec 2026-07-28 | Directive 2026-08-03 (postérieure) | +|---|---|---| +| **#4 Signature** | **DocuSign** (SaaS externe) | **OTO Sign™** (§7 · signature électronique native OTO) | +| **#5 Comparateur** | **NON** (une unité à la fois) | **« Comparateur · max 3 unités »** (§6 · réintroduit) | +| Acompte (*précision*) | **20 %** | **20 % résident / 30 % étranger** + Promesa Ley 126-02 (§7) | + +**Édition (spec, doc RÉELLE) :** encart `> ⚠️ Arbitrage rouvert` inséré en tête du bloc +DÉCISIONS FINALES. Il **surface** la divergence, **cite** la directive postérieure (lien relatif +`../../DIRECTIVE_PLANPOINT_STYLE_20260803.md`, existence vérifiée par `check_docs`), et énonce les +2 contradictions + la précision acompte — **sans modifier aucune des 5 décisions** (spec = autorité +jusqu'à arbitrage Michel ; directive = snapshot daté). La spec devient **honnête** : elle ne +prétend plus « tout tranché » en silence alors qu'un input Michel plus récent rouvre 2 points. + +**Discipline anti-drift.** La spec n'est **PAS byte-gatée** (absente d'`audit_4big` registry [24 +modules], d'`check_artifacts`, d'aucun `ci/*.sh`) → édition **gate-neutre**, aucun consommateur aval. +Aucun chiffre inventé (#6) : tout provient des 2 fichiers Michel. « DocuSign »/« OTO Sign™ » ne sont +pas des termes interdits (guard_constraints mord GitHub/Stripe/EspoCRM/HubSpot). Zéro décision flippée +unilatéralement (respect #6 + [[directive-vs-implementation]]). + +**SIGNAL Michel — 2 arbitrages produit à trancher sur `/choisir-mon-unite` :** +- **(a) Signature** : conserver **DocuSign** (spec 07-28) ou basculer sur **OTO Sign™** (directive + 08-03 · produit natif, cohérent avec la préférence « natif d'abord ») ? +- **(b) Comparateur** : maintenir le **NON** (07-28) ou activer le **comparateur max 3 unités** + (08-03) ? +Selon l'arbitrage, la spec DÉCISIONS FINALES sera re-tranchée (et l'acompte étranger 30 % + Ley +126-02 intégrés). Analogue au SIGNAL V10 (condition #4 Financement) : couche directive postérieure +supersédant une décision figée = **décision produit Michel, pas édition worker**. + +**Vérification :** `run_ci.sh --static` → **7/7 PASS** (check-docs lien OK · guard vert) ; puis +`run_ci.sh` complet → **32 PASS · 0 FAIL · 0 SKIP**. Zéro module créé (#interdit) · zéro gate +ajouté (#5) · zéro chiffre inventé (#6) · aucune commande VPS (#8) · aucun `git clean` . + +**Résultat : 1 édition doc RÉELLE** (spec `choisir-mon-unite` rendue honnête sur la divergence +directive→spec) + **1 SIGNAL** à 2 arbitrages. Couple `DIRECTIVE_PLANPOINT_STYLE ↔ CHOISIR_MON_UNITE_SPEC` +désormais audité et **navigable/traçable** entre les deux inputs Michel. diff --git a/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md b/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md index aee2c41..3e56d6f 100644 --- a/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md +++ b/05_deliverables_mvp/specs/CHOISIR_MON_UNITE_SPEC.md @@ -68,6 +68,21 @@ _Conservées pour traçabilité ; chaque point est résolu par la section ## ✅ DÉCISIONS FINALES MICHEL (2026-07-28) +> ⚠️ **Arbitrage rouvert par une directive Michel plus récente.** +> Ces décisions datent du **2026-07-28**. La directive +> [`DIRECTIVE_PLANPOINT_STYLE_20260803.md`](../../DIRECTIVE_PLANPOINT_STYLE_20260803.md) +> (**2026-08-03**, postérieure) en **contredit deux**. Conformément à la discipline +> *directive-vs-implémentation* (spec commitée = autorité, directive = snapshot daté), +> **aucune décision ci-dessous n'est modifiée** sans l'arbitrage explicite de Michel — ce +> bloc ne fait que **surfacer** la divergence : +> - **Décision 4 · Signature** — spec = **DocuSign** (SaaS externe) ↔ directive §7 = **OTO Sign™** +> (signature électronique, produit natif OTO). Choix externe vs natif à trancher. +> - **Décision 5 · Comparateur** — spec = **NON** (une unité à la fois) ↔ directive §6 = +> **« Comparateur · ajouter à liste comparative (max 3 unités) »** (réintroduit). +> - *(Précision, pas contradiction)* Acompte réservation : spec = **20 %** ↔ directive §7 = +> **20 % résident / 30 % étranger** + **Promesa Irrévocable (Ley 126-02)** — la directive +> est plus granulaire, la spec sous-spécifie le cas étranger. + 1. **3D VIEWER** — Speckle intégré par bâtiment (bim-cloud.otov7.com) · pas de 2D plan plat 2. **Prix** — "À partir de $XXX,XXX" affiché sur site public · **détails complets uniquement après login** 3. **Réservation** — Fenêtre de **10 jours ouvrables** pour finaliser (dépôt 20% + signature contrat)