Files
Claude Code DTP Worker cac65386ab [DTP-Worker] Sprint 7 · Générateur Scénarios démo (run-sheet P07 banquier / P05 client) (CRM+Faisabilité · roadmap L68)
Orchestrateur méta-niveau : compose les hand-offs out/ des 10 modules déjà
livrés en un run-sheet de démo jouable, via pointeurs RFC 6901 résolus à la
construction (zéro chiffre en dur · #6). Réutilise le validateur Publiciste et
la preuve de couverture CI de l'auditeur 4Big (#5) — une démo ne s'appuie que
sur des modules gated. Enregistre demo/scenarios dans l'audit 4Big (17→18,
verdict PASS 18/18 à 100). 32 tests (9 injections négatives) · régression 474
tests verts · guards CI verts · builds déterministes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 10:39:24 +00:00

152 lines
8.2 KiB
JSON

{
"spec_version": "1.0.0",
"deliverable": "Scénarios démo · run-sheet de pitch",
"roadmap_ref": "04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md · Sprint 7 l.68 « CRM + Faisabilité : Scénarios démo (P07 pitch banquier · P05 client ready) »",
"self_module": "demo/scenarios",
"audiences": ["banquier", "client"],
"projets": {
"P05": "Las Colinas Najayo Arriba",
"P07": "Aqua Terra Las Terrenas"
},
"note_anti_invention": "Aucune valeur chiffrée n'est écrite dans ce spec. Chaque `evidence` est un POINTEUR (RFC 6901) vers un hand-off `out/` d'un module déjà livré et gated par le CI ; le générateur résout la valeur à la construction. Une valeur non résolue devient un placeholder `{{module:file#pointer}}` — jamais un chiffre fabriqué (CLAUDE.md #6).",
"scenarios": [
{
"id": "S-P07-BANQUIER",
"projet": "P07",
"audience": "banquier",
"titre": "P07 Aqua Terra — Pitch banquier (bancabilité & gouvernance)",
"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.",
"beats": [
{
"id": "b1-pipeline",
"titre": "Un pipeline de vente verrouillé de bout en bout",
"role_narratif": "Ouvrir sur la traçabilité : la vente n'est pas un tableur, c'est un workflow ERPNext soumis (docstatus) piloté par rôle.",
"duree_min": 2,
"evidence": [
{"module": "crm/workflow_vente", "file": "out/workflow.json", "pointer": "/0/workflow_name", "label": "Nom du pipeline"},
{"module": "crm/workflow_vente", "file": "out/workflow.json", "pointer": "/0/document_type", "label": "DocType piloté"}
]
},
{
"id": "b2-ecf",
"titre": "Facturation fiscale conforme DGII (e-CF · Compupar)",
"role_narratif": "Rassurer sur le risque fiscal : chaque encaissement est un e-CF certifié, pas une facture maison.",
"duree_min": 2,
"evidence": [
{"module": "fiscal/ecf_dgii", "file": "out/MANIFEST.json", "pointer": "/provider", "label": "Fournisseur e-CF"},
{"module": "fiscal/ecf_dgii", "file": "out/MANIFEST.json", "pointer": "/counts/tipos_en_scope", "label": "Types e-CF en périmètre"}
]
},
{
"id": "b3-confotur",
"titre": "Incitation CONFOTUR dé-risquée et outillée",
"role_narratif": "Montrer l'avantage fiscal touristique comme un actif documenté : DocType soumis, dépôt outillé.",
"duree_min": 2,
"evidence": [
{"module": "legal/confotur", "file": "out/MANIFEST.json", "pointer": "/doctype_name", "label": "DocType CONFOTUR"},
{"module": "legal/confotur", "file": "out/MANIFEST.json", "pointer": "/is_submittable", "label": "Soumissible (verrou légal)"},
{"module": "legal/confotur", "file": "out/MANIFEST.json", "pointer": "/counts/depot_events", "label": "Étapes de dépôt outillées"}
]
},
{
"id": "b4-rbac",
"titre": "Séparation des pouvoirs (RBAC 50 rôles)",
"role_narratif": "Répondre à la question d'audit du banquier : qui peut faire quoi ? Permissions dérivées, pas ad hoc.",
"duree_min": 2,
"evidence": [
{"module": "rbac/apply_plan", "file": "out/MANIFEST.json", "pointer": "/counts/roles", "label": "Rôles RBAC"},
{"module": "rbac/apply_plan", "file": "out/MANIFEST.json", "pointer": "/counts/custom_docperm", "label": "Permissions DocType (Custom DocPerm)"}
]
},
{
"id": "b5-qualite",
"titre": "Un gate qualité 4Big, pas une promesse",
"role_narratif": "Clore la confiance : la plateforme s'auto-note et bloque sous 95/100 sur 100 % des livrables.",
"duree_min": 2,
"evidence": [
{"module": "qa/audit_4big", "file": "out/quality_report.json", "pointer": "/pass_score", "label": "Seuil bloquant 4Big"},
{"module": "qa/audit_4big", "file": "out/quality_report.json", "pointer": "/coverage/ci_modules_count", "label": "Modules sous gate qualité"}
]
},
{
"id": "b6-dossier",
"titre": "Le dossier de vente, pièce bancable finale",
"role_narratif": "Refermer sur l'objet concret que le banquier instruira : un DocType riche et soumis.",
"duree_min": 2,
"evidence": [
{"module": "crm/dossier_vente", "file": "out/MANIFEST.json", "pointer": "/counts/fields", "label": "Champs du dossier de vente"},
{"module": "crm/dossier_vente", "file": "out/MANIFEST.json", "pointer": "/counts/pipeline_states", "label": "États de pipeline couverts"}
]
}
]
},
{
"id": "S-P05-CLIENT",
"projet": "P05",
"audience": "client",
"titre": "P05 Las Colinas Najayo Arriba — Parcours client (réservation prête)",
"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).",
"beats": [
{
"id": "b1-portail",
"titre": "« Choisir mon unité » — 5 portails luxury",
"role_narratif": "Poser l'expérience d'entrée : un portail par rôle, cohérent et couvert.",
"duree_min": 2,
"evidence": [
{"module": "frontend/portails", "file": "out/MANIFEST.json", "pointer": "/counts/workspaces", "label": "Portails (workspaces)"},
{"module": "frontend/portails", "file": "out/MANIFEST.json", "pointer": "/counts/roles_couverts", "label": "Rôles couverts par les portails"}
]
},
{
"id": "b2-otoia",
"titre": "OTOIA répond dans le portail",
"role_narratif": "Montrer l'assistance embarquée : le client n'est jamais seul face à l'écran.",
"duree_min": 2,
"evidence": [
{"module": "frontend/chat_otoia", "file": "out/MANIFEST.json", "pointer": "/deliverable", "label": "Assistant embarqué"}
]
},
{
"id": "b3-parcours",
"titre": "Du premier contact à la réservation",
"role_narratif": "Dérouler le pipeline côté client : Lead → … → Réservation confirmée, lisible et rassurant.",
"duree_min": 2,
"evidence": [
{"module": "crm/workflow_vente", "file": "out/workflow.json", "pointer": "/0/states/0/state", "label": "Première étape"},
{"module": "crm/workflow_vente", "file": "out/workflow.json", "pointer": "/0/states/3/state", "label": "Étape réservation"}
]
},
{
"id": "b4-dossier",
"titre": "Un dossier de vente transparent",
"role_narratif": "Donner confiance : tout est consigné dans un dossier structuré que le client peut suivre.",
"duree_min": 2,
"evidence": [
{"module": "crm/dossier_vente", "file": "out/MANIFEST.json", "pointer": "/counts/fields", "label": "Champs du dossier de vente"}
]
},
{
"id": "b5-commissions",
"titre": "Un conseiller rémunéré à la transparence",
"role_narratif": "Aligner l'intérêt du conseiller et du client : barème de commissions traçable par événement.",
"duree_min": 2,
"evidence": [
{"module": "crm/commissions", "file": "out/MANIFEST.json", "pointer": "/bareme_name", "label": "Barème de commissions"},
{"module": "crm/commissions", "file": "out/MANIFEST.json", "pointer": "/counts/evenements", "label": "Événements déclencheurs"}
]
},
{
"id": "b6-seo",
"titre": "Comment le client nous a trouvés (SEO trilingue)",
"role_narratif": "Refermer la boucle acquisition : indexation FR/EN/ES, le parcours commence bien avant le portail.",
"duree_min": 2,
"evidence": [
{"module": "seo", "file": "out/MANIFEST.json", "pointer": "/counts/keywords_total", "label": "Mots-clés indexés"},
{"module": "seo", "file": "out/MANIFEST.json", "pointer": "/langs", "label": "Langues"}
]
}
]
}
]
}