[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>
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
{
|
||||
"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"}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user