[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>
This commit is contained in:
Claude Code DTP Worker
2026-07-31 04:09:23 +00:00
parent c858e193e0
commit aebe9b7ba9
11 changed files with 364 additions and 27 deletions
@@ -0,0 +1,130 @@
# OTO · Run-sheet démo (méta-livrable)
> Prompteur généré **automatiquement** depuis `out/run_sheet.json` (`demo_scenario_gen build`). Chaque chiffre est une **preuve re-résolue** depuis un hand-off `out/` d'un module gaté — jamais saisi à la main (anti-invention · CLAUDE.md #6). **Ne pas éditer à la main** : régénérer.
- **Roadmap** : 04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md · Sprint 7 l.68 « CRM + Faisabilité : Scénarios démo (P07 pitch banquier · P05 client ready) »
- **Version du spec** : 1.0.0
- **2 scénario(s)** · durée cumulée 24 min
---
## P07 Aqua Terra — Pitch banquier (bancabilité & gouvernance)
- **Scénario** : `S-P07-BANQUIER` · **audience** : banquier · **projet** : P07 — Aqua Terra Las Terrenas
- **Durée** : 12 min · 6 temps forts
- **Objectif** : Démontrer qu'un dossier de vente OTO est bancable : pipeline structuré, conformité fiscale e-CF DGII, incitation CONFOTUR, gouvernance RBAC et gate qualité 4Big.
### 1. Un pipeline de vente verrouillé de bout en bout · 2 min
> Ouvrir sur la traçabilité : la vente n'est pas un tableur, c'est un workflow ERPNext soumis (docstatus) piloté par rôle.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Nom du pipeline | OTO Vente Pipeline | `crm/workflow_vente` · `out/workflow.json#/0/workflow_name` |
| DocType piloté | OTO Dossier Vente | `crm/workflow_vente` · `out/workflow.json#/0/document_type` |
### 2. Facturation fiscale conforme DGII (e-CF · Compupar) · 2 min
> Rassurer sur le risque fiscal : chaque encaissement est un e-CF certifié, pas une facture maison.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Fournisseur e-CF | Compupar | `fiscal/ecf_dgii` · `out/MANIFEST.json#/provider` |
| Types e-CF en périmètre | 5 | `fiscal/ecf_dgii` · `out/MANIFEST.json#/counts/tipos_en_scope` |
### 3. Incitation CONFOTUR dé-risquée et outillée · 2 min
> Montrer l'avantage fiscal touristique comme un actif documenté : DocType soumis, dépôt outillé.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| DocType CONFOTUR | CONFOTUR Application | `legal/confotur` · `out/MANIFEST.json#/doctype_name` |
| Soumissible (verrou légal) | oui | `legal/confotur` · `out/MANIFEST.json#/is_submittable` |
| Étapes de dépôt outillées | 2 | `legal/confotur` · `out/MANIFEST.json#/counts/depot_events` |
### 4. Séparation des pouvoirs (RBAC 50 rôles) · 2 min
> Répondre à la question d'audit du banquier : qui peut faire quoi ? Permissions dérivées, pas ad hoc.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Rôles RBAC | 50 | `rbac/apply_plan` · `out/MANIFEST.json#/counts/roles` |
| Permissions DocType (Custom DocPerm) | 116 | `rbac/apply_plan` · `out/MANIFEST.json#/counts/custom_docperm` |
### 5. Un gate qualité 4Big, pas une promesse · 2 min
> Clore la confiance : la plateforme s'auto-note et bloque sous 95/100 sur 100 % des livrables.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Seuil bloquant 4Big | 95 | `qa/audit_4big` · `out/quality_report.json#/pass_score` |
| Modules sous gate qualité | 22 | `qa/audit_4big` · `out/quality_report.json#/coverage/ci_modules_count` |
### 6. Le dossier de vente, pièce bancable finale · 2 min
> Refermer sur l'objet concret que le banquier instruira : un DocType riche et soumis.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Champs du dossier de vente | 30 | `crm/dossier_vente` · `out/MANIFEST.json#/counts/fields` |
| États de pipeline couverts | 9 | `crm/dossier_vente` · `out/MANIFEST.json#/counts/pipeline_states` |
---
## P05 Las Colinas Najayo Arriba — Parcours client (réservation prête)
- **Scénario** : `S-P05-CLIENT` · **audience** : client · **projet** : P05 — Las Colinas Najayo Arriba
- **Durée** : 12 min · 6 temps forts
- **Objectif** : Faire vivre le parcours d'un acheteur : découverte du portail, assistance OTOIA, pipeline lisible, dossier transparent, et comment le client nous a trouvés (SEO trilingue).
### 1. « Choisir mon unité » — 5 portails luxury · 2 min
> Poser l'expérience d'entrée : un portail par rôle, cohérent et couvert.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Portails (workspaces) | 5 | `frontend/portails` · `out/MANIFEST.json#/counts/workspaces` |
| Rôles couverts par les portails | 44 | `frontend/portails` · `out/MANIFEST.json#/counts/roles_couverts` |
### 2. OTOIA répond dans le portail · 2 min
> Montrer l'assistance embarquée : le client n'est jamais seul face à l'écran.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Assistant embarqué | Chat OTOIA embarqué par portail | `frontend/chat_otoia` · `out/MANIFEST.json#/deliverable` |
### 3. Du premier contact à la réservation · 2 min
> Dérouler le pipeline côté client : Lead → … → Réservation confirmée, lisible et rassurant.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Première étape | Lead | `crm/workflow_vente` · `out/workflow.json#/0/states/0/state` |
| Étape réservation | Réservation confirmée | `crm/workflow_vente` · `out/workflow.json#/0/states/3/state` |
### 4. Un dossier de vente transparent · 2 min
> Donner confiance : tout est consigné dans un dossier structuré que le client peut suivre.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Champs du dossier de vente | 30 | `crm/dossier_vente` · `out/MANIFEST.json#/counts/fields` |
### 5. Un conseiller rémunéré à la transparence · 2 min
> Aligner l'intérêt du conseiller et du client : barème de commissions traçable par événement.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Barème de commissions | OTO Barème Commissions Ventes | `crm/commissions` · `out/MANIFEST.json#/bareme_name` |
| Événements déclencheurs | 5 | `crm/commissions` · `out/MANIFEST.json#/counts/evenements` |
### 6. Comment le client nous a trouvés (SEO trilingue) · 2 min
> Refermer la boucle acquisition : indexation FR/EN/ES, le parcours commence bien avant le portail.
| À dire | Chiffre | Source (preuve) |
|---|---|---|
| Mots-clés indexés | 258 | `seo` · `out/MANIFEST.json#/counts/keywords_total` |
| Langues | fr, en, es | `seo` · `out/MANIFEST.json#/langs` |