[DTP-Worker] Sprint 8 · buffer L75 · Doc agent CRM (stub→doc réelle · 3 modules Sprint 4 sourcés + anti-invention taux null) (Doc · roadmap L75)

- 03_agents/crm/AGENT.md : stub 29 lignes → doc réelle ~90 lignes
- Table 3 livrables CRM (workflow_vente/dossier_vente/commissions) :
  sprint · CLI build|validate · job CI · nb tests (25/31/25 = 81, tous sourcés)
- #3 mis en avant (CRM = ERPNext natif · JAMAIS EspoCRM/HubSpot)
- Anti-invention #6 : taux commission null ; USD+DOP/Letter US cités #10
- Vérifs : guard vert · check_docs vert (liens OK) · 0 réf roadmap morte

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-07-30 13:01:09 +00:00
parent dbeea972ed
commit ccda618ea4
3 changed files with 169 additions and 6 deletions
+56 -6
View File
@@ -1,17 +1,67 @@
# CRM Agent · ERPNext CRM natif
# 🤝 CRM Agent · Pipeline vente ERPNext natif (score 95+/100)
**Rôle** : Cet agent construit le **CRM comme ERPNext natif** (CLAUDE.md #3
**JAMAIS** EspoCRM ni HubSpot). Il ne produit pas de code applicatif jetable : il
génère, de façon **déterministe et sans jamais fabriquer de chiffre**, les
**fixtures Frappe/ERPNext v15** du pipeline commercial — du *lead* jusqu'au dépôt
CONFOTUR — prêtes à appliquer sur le VPS par l'agent ERPNext Backend.
## Scope
Dashboard CRM luxury, workflow lead→contrat, JAMAIS EspoCRM ni HubSpot
Dashboard CRM luxury + pipeline **lead → visite → devis → réservation → contrat →
CONFOTUR** + DocType porteur + commissions vendeurs, **100 % ERPNext natif**.
## Principe directeur : hand-off VPS, jamais d'écriture serveur (#8)
Chaque générateur transforme un **spec métier** (contrat en-repo, zéro chiffre
inventé) en fixtures `out/` **commitées** — le hand-off direct. Le worker **n'écrit
jamais sur le VPS** ; l'application réelle (`bench migrate` / `import-fixtures`)
reste côté **agent ERPNext Backend**. Ordre d'import imposé : **DocType porteur
AVANT le Workflow** qui le cible.
## Livrables CRM réellement produits (`05_deliverables_mvp/crm/`)
| Module | Sprint | Rôle | Entrée CLI | Job CI | Tests |
|---|---|---|---|---|---|
| `workflow_vente/` | 4 (roadmap L51) | Graphe **Workflow** ERPNext : le pipeline `lead → visite → devis → réservation → contrat → CONFOTUR` (states + transitions + actions) | `workflow_vente_gen.py build\|validate` | `crm-workflow-vente-tests` | 25 |
| `dossier_vente/` | 4 (roadmap L51) | **DocType porteur** `OTO Dossier Vente` : le document réel qui circule dans le Workflow ; sans lui le pipeline n'a rien à quoi s'attacher | `doctype_dossier_vente_gen.py build\|validate` | `crm-dossier-vente-tests` | 31 |
| `commissions/` | 4 (roadmap L51) | Barème **commissions vendeurs** : quel évènement du pipeline paie, à quel rôle, sur quel montant + calculateur traçable `commission = base × taux` | `commissions_gen.py build\|validate` | `crm-commissions-tests` | 25 |
**Trois modules cross-cohérents, une source unique** (CLAUDE.md #5 · éliminer les
doublons) : le nom du DocType, son champ d'état, ses valeurs de statut et son
caractère *submittable* sont **dérivés** de `workflow_vente_spec.json` (anti-dérive) ;
les rôles sont **résolus** depuis `rbac/rbac_50_roles.json` — jamais un nom Frappe
en dur. Total CRM : **81 tests** (25 + 31 + 25), tous gated dans le CI.
## Anti-invention (#6) — pourquoi les taux de commission sont `null`
**Aucun taux de commission n'est documenté dans CLAUDE.md.** Les taux du barème
restent donc `null` (**confirmation sourcée** attendue de Michel), jamais une valeur
fabriquée. Idem devises **USD + DOP** et format **Letter US** : cités depuis
CLAUDE.md #10, jamais réinventés. Tout paramètre non confirmé reste une confirmation
tracée (owner + source), pas une supposition.
## Non-négociables (voir CLAUDE.md racine pour la liste complète)
- **CRM = ERPNext natif** — **JAMAIS** EspoCRM ni HubSpot (#3)
- Gitea only (jamais GitHub)
- ERPNext natif en priorité
- ERPNext natif en priorité absolue avant tout outil externe
- Score 4Big 95+/100
- Zéro invention chiffres
- Zéro invention de chiffres — les taux non confirmés restent `null`
- **VPS pour tous projets** — le worker n'écrit jamais sur le serveur (#8)
- Vérifier · Investiguer · Valider · Confirmer
## Livrable attendu semaines 1-8
Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md` pour deliverables par sprint.
## Livrable attendu · roadmap
Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md`. Volets CRM : Sprint 2 (enrichir
`/crm.html` LIVE · pipeline visualization · WhatsApp) · Sprint 4 (workflow vente
end-to-end + commissions vendeurs auto) · Sprint 7 (scénarios démo P07 banquier /
P05 client).
## Coordination inter-agents
- **ERPNext Backend** : destinataire des hand-off `out/` (crée le module `OTO
Ventes`, importe DocType puis Workflow, active le calcul commission en prod).
- **RBAC** : consomme `rbac/rbac_50_roles.json` pour résoudre les permissions du
workflow et les rôles payés par le barème (source unique · anti-duplication).
- **Publiciste** : réutilise le validateur maison Publiciste pour les specs CRM.
- **QA** : les 3 suites CRM sont automatiquement agrégées aux gates de régression
et d'acceptation (découverte CI).
- **Faisabilité** : le CONFOTUR en fin de pipeline consomme le dossier de faisabilité.
## Communication inter-agents
- Rapports quotidiens dans `05_deliverables_mvp/daily_reports/`