[DTP-Worker 20260803_190730] Audit directive-vs-SPEC couple NEUF (DIRECTIVE_PLANPOINT_STYLE 08-03 ↔ specs/CHOISIR_MON_UNITE_SPEC 07-28) → édition doc RÉELLE : encart Arbitrage rouvert surfaçant 2 contradictions dures (#4 Signature DocuSign↔OTO Sign™ · #5 Comparateur NON↔max 3) + précision acompte 20%↔20/30% Ley126-02 · SANS flipper aucune décision (spec=autorité, directive=snapshot daté) · spec rendue honnête (ne prétend plus tout-tranché alors qu'un input Michel postérieur rouvre 2 points) · gate-neutre (spec hors audit_4big/ci/check_artifacts) · 3 sondes préalables CLEAN (docstring-vs-code 22 gen · réconciliation 24/32 · daily_reports série temporelle) · SIGNAL Michel 2 arbitrages produit · run_ci 32 PASS

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-03 19:17:41 +00:00
parent e6b89435fd
commit a9e9ee9f3c
2 changed files with 79 additions and 0 deletions
+64
View File
@@ -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` <!-- ci-allow : mention de l'interdit absolu, jamais exécuté -->.
**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.
@@ -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)