58ed555db0
Agrégateur de méta-niveau au-dessus du run-book RBAC : ordonne le déploiement VPS de TOUS les livrables gated en 7 phases (Prérequis → DocTypes → RBAC → Workflow/métier → Frontend → Contenu → Vérification QA), avec graphe de dépendances inter-phases acyclique et confirmations préalables sourcées. Anti-invention (#6) : périmètre dérivé du CI (parse_ci réutilisé), couverture bijective module→phase (un module gated non planifié OU un module planifié non gated → refus), SoD (auto-exclusion), zéro chiffre métier (confirmations sourcées via audit_5d D1.1/D1.2/D1.3/D2.3 + endpoint OTOIA). Vérifs : 29/29 tests module (dont 14 injections négatives) · audit_4big PASS 20/20 à 100 · régression run 20/20 suites · 503 tests · 0 échec · gate CI local vert. CI job devops-deploy-runbook-tests + gate ; enregistrement audit_4big (19→20) ; plan régression régénéré (19→20 suites). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
222 lines
6.8 KiB
JSON
222 lines
6.8 KiB
JSON
[
|
|
{
|
|
"order": 1,
|
|
"id": "prerequis",
|
|
"titre": "Prérequis VPS : modules custom OTOV7 + spec RBAC validée",
|
|
"responsable": "vps",
|
|
"rationale": "Rien ne s'importe tant que les modules d'application custom (OTOV7 Ventes, OTOV7 CONFOTUR, …) n'existent pas et que le contrat RBAC 50 rôles n'est pas validé comme source de vérité unique.",
|
|
"depends_on": [],
|
|
"modules": [
|
|
{
|
|
"module": "rbac",
|
|
"ci_job": "rbac-tests"
|
|
}
|
|
],
|
|
"confirmations": [
|
|
{
|
|
"id": "custom_modules",
|
|
"libelle": "Créer les modules d'application custom (OTOV7 Ventes, OTOV7 CONFOTUR, …) avant tout import de fixtures",
|
|
"owner": "ERPNext Backend",
|
|
"source": "sessions 12/15/16 · création module OTO Ventes / OTOV7 CONFOTUR (hors périmètre worker · CLAUDE.md #8)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"order": 2,
|
|
"id": "doctypes",
|
|
"titre": "DocTypes custom (structure) avant tout ce qui les référence",
|
|
"responsable": "vps",
|
|
"rationale": "Les Custom DocPerm, le Workflow vente et les Workspaces référencent des DocTypes custom qui doivent exister au préalable (contrainte dure ERPNext v15).",
|
|
"depends_on": [
|
|
"prerequis"
|
|
],
|
|
"modules": [
|
|
{
|
|
"module": "crm/dossier_vente",
|
|
"ci_job": "crm-dossier-vente-tests"
|
|
},
|
|
{
|
|
"module": "legal/confotur",
|
|
"ci_job": "legal-confotur-tests"
|
|
}
|
|
],
|
|
"confirmations": [
|
|
{
|
|
"id": "custom_doctypes",
|
|
"libelle": "Créer les DocTypes custom (OTO Dossier Vente, CONFOTUR Application, Faisabilité, Publiciste Log) avant l'import des Workspaces et du Workflow",
|
|
"owner": "ERPNext Backend",
|
|
"source": "session 15 · DocTypes custom à créer avant import Workspaces (run-book RBAC)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"order": 3,
|
|
"id": "rbac-apply",
|
|
"titre": "RBAC : Role + Custom DocPerm + User Permission + Role Profile",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Le run-book RBAC (rbac/apply_plan) ordonne déjà ce volet ; on l'insère ici en bloc car les Has Role d'un Role Profile et les DocPerm référencent des Role/DocTypes qui doivent préexister.",
|
|
"depends_on": [
|
|
"doctypes"
|
|
],
|
|
"modules": [
|
|
{
|
|
"module": "rbac/apply_plan",
|
|
"ci_job": "rbac-applyplan-tests"
|
|
},
|
|
{
|
|
"module": "rbac/fixtures_gen",
|
|
"ci_job": "rbac-fixtures-tests"
|
|
},
|
|
{
|
|
"module": "rbac/roleprofile_gen",
|
|
"ci_job": "rbac-roleprofile-tests"
|
|
},
|
|
{
|
|
"module": "rbac/userperm_gen",
|
|
"ci_job": "rbac-userperm-tests"
|
|
}
|
|
],
|
|
"confirmations": []
|
|
},
|
|
{
|
|
"order": 4,
|
|
"id": "workflow-metier",
|
|
"titre": "Workflow vente + règles métier (commissions, e-CF DGII, dépôts CONFOTUR)",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Le Workflow pilote le DocType Dossier Vente et s'appuie sur les rôles ; commissions et e-CF se déclenchent sur ses états soumis. Paramètres réglementaires à confirmer avant activation.",
|
|
"depends_on": [
|
|
"doctypes",
|
|
"rbac-apply"
|
|
],
|
|
"modules": [
|
|
{
|
|
"module": "crm/commissions",
|
|
"ci_job": "crm-commissions-tests"
|
|
},
|
|
{
|
|
"module": "crm/workflow_vente",
|
|
"ci_job": "crm-workflow-vente-tests"
|
|
},
|
|
{
|
|
"module": "fiscal/ecf_dgii",
|
|
"ci_job": "fiscal-ecf-tests"
|
|
}
|
|
],
|
|
"confirmations": [
|
|
{
|
|
"id": "taux_commission",
|
|
"libelle": "Confirmer les taux de commission vendeurs (barème reste taux_pct null tant que non confirmé)",
|
|
"owner": "Direction",
|
|
"source": "qa/audit_5d contrôle D1.1 (A_CONFIRMER)"
|
|
},
|
|
{
|
|
"id": "rnc_emisor",
|
|
"libelle": "Confirmer le RNC émetteur pour l'émission e-CF DGII",
|
|
"owner": "Compta",
|
|
"source": "qa/audit_5d contrôle D1.2 (A_CONFIRMER)"
|
|
},
|
|
{
|
|
"id": "itbis_tipocambio",
|
|
"libelle": "Confirmer le taux ITBIS et le TipoCambio USD/DOP pour l'e-CF",
|
|
"owner": "Compta Fiscaliste eCF",
|
|
"source": "qa/audit_5d contrôle D1.3 (A_CONFIRMER)"
|
|
},
|
|
{
|
|
"id": "seuil_uaf",
|
|
"libelle": "Confirmer le seuil d'opération de déclaration UAF (Ley 155-17)",
|
|
"owner": "Oficial de Cumplimiento",
|
|
"source": "qa/audit_5d contrôle D2.3 (A_CONFIRMER)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"order": 5,
|
|
"id": "frontend",
|
|
"titre": "Frontend desk : Workspaces portails + Custom Block chat OTOIA",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Les Workspaces (Has Role) et le Custom Block de chat s'ancrent sur les rôles RBAC et les DocTypes déjà en place ; l'endpoint OTOIA reste à renseigner.",
|
|
"depends_on": [
|
|
"rbac-apply"
|
|
],
|
|
"modules": [
|
|
{
|
|
"module": "frontend/chat_otoia",
|
|
"ci_job": "chat-otoia-tests"
|
|
},
|
|
{
|
|
"module": "frontend/portails",
|
|
"ci_job": "frontend-portails-tests"
|
|
}
|
|
],
|
|
"confirmations": [
|
|
{
|
|
"id": "endpoint_otoia",
|
|
"libelle": "Renseigner l'endpoint runtime du chat OTOIA (reste null / a_confirmer côté livrable)",
|
|
"owner": "ERPNext Backend",
|
|
"source": "session 19 · endpoint OTOIA = null (a_confirmer)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"order": 6,
|
|
"id": "contenu",
|
|
"titre": "Contenu projets & publication : Publiciste, Faisabilité, Bancable, SEO, Démo",
|
|
"responsable": "worker+vps",
|
|
"rationale": "Génération et publication du contenu projet (data_room, dossiers bancables, balises SEO, run-sheet de démo) une fois la plateforme et le frontend en place.",
|
|
"depends_on": [
|
|
"workflow-metier",
|
|
"frontend"
|
|
],
|
|
"modules": [
|
|
{
|
|
"module": "demo/scenarios",
|
|
"ci_job": "demo-scenario-tests"
|
|
},
|
|
{
|
|
"module": "faisabilite/bancable",
|
|
"ci_job": "bancable-tests"
|
|
},
|
|
{
|
|
"module": "faisabilite/generator",
|
|
"ci_job": "faisabilite-gen-tests"
|
|
},
|
|
{
|
|
"module": "publiciste",
|
|
"ci_job": "publiciste-tests"
|
|
},
|
|
{
|
|
"module": "seo",
|
|
"ci_job": "seo-tests"
|
|
}
|
|
],
|
|
"confirmations": []
|
|
},
|
|
{
|
|
"order": 7,
|
|
"id": "verification-qa",
|
|
"titre": "Vérification post-déploiement : HTTP + audits QA (5D · 4Big · régression)",
|
|
"responsable": "vps",
|
|
"rationale": "Gate final : vérification HTTP puis exécution des audits de conformité 5D, de qualité 4Big (≥95/100) et de la matrice de régression sur le desk réel.",
|
|
"depends_on": [
|
|
"workflow-metier",
|
|
"frontend",
|
|
"contenu"
|
|
],
|
|
"modules": [
|
|
{
|
|
"module": "qa/audit_4big",
|
|
"ci_job": "qa-audit-4big-tests"
|
|
},
|
|
{
|
|
"module": "qa/audit_5d",
|
|
"ci_job": "qa-audit-5d-tests"
|
|
},
|
|
{
|
|
"module": "qa/regression",
|
|
"ci_job": "qa-regression-tests"
|
|
}
|
|
],
|
|
"confirmations": []
|
|
}
|
|
]
|