[DTP-Worker] Sprint 4 · Générateur Workspaces ERPNext 5 portails rôle (Frontend Console · roadmap L49)
Livre le dernier volet ouvert de Sprint 4 : Frontend Console « 5 portails (Ventes/Construction/Achat/Compta/Direction) ». Contrainte #1 (ERPNext natif) : le portail de landing par rôle EST le DocType Workspace v15 → 5 Workspaces natifs. Anti-invention (#6) : rôles et DocTypes dérivés du contrat rbac_50_roles.json ; chaque lien/raccourci vise un DocType présent dans les permissions_cibles du portail (droit prouvé) ; couverture exhaustive ; flag custom issu du contrat ; tokens de marque repris verbatim de CLAUDE.md #4. CLI + 12 invariants + 19 tests (4 négatifs). Régression 260 tests verts. Hand-off VPS #8 documenté. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"generated_from": "rbac_50_roles.json (permissions_cibles + portail par rôle)",
|
||||
"spec_version": "1.0.0",
|
||||
"source_version": "1.0.0",
|
||||
"roadmap_ref": "04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md · Sprint 4 l.49 « Frontend Console : 5 portails (Ventes/Construction/Achat/Compta/Direction) »",
|
||||
"counts": {
|
||||
"workspaces": 5,
|
||||
"roles_couverts": 44,
|
||||
"liens_total": 53,
|
||||
"raccourcis_total": 20
|
||||
},
|
||||
"brand": {
|
||||
"note": "Tokens de marque luxury dark+doré (CLAUDE.md #4). Appliqués par la couche thème desk (Website Theme / CSS custom) déposée par l'agent Frontend sur le VPS — HORS de ce worker (#8). Repris ici pour le hand-off, jamais fabriqués.",
|
||||
"fond": {
|
||||
"valeur": "#0a0a12",
|
||||
"source": "CLAUDE.md #4"
|
||||
},
|
||||
"accent": {
|
||||
"valeur": "#f0b429",
|
||||
"source": "CLAUDE.md #4"
|
||||
},
|
||||
"polices": [
|
||||
{
|
||||
"valeur": "Fraunces",
|
||||
"source": "CLAUDE.md #4"
|
||||
},
|
||||
{
|
||||
"valeur": "Cormorant Garamond",
|
||||
"source": "CLAUDE.md #4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"module_note": "Workspace.module laisse a None (a_confirmer) : l'agent ERPNext Backend le fixe au module de l'app OTO a l'import (#8). Le worker ne fabrique pas de nom d'app.",
|
||||
"doctypes_custom_a_creer": [
|
||||
"CONFOTUR Application",
|
||||
"Faisabilité",
|
||||
"Publiciste Log"
|
||||
],
|
||||
"workspaces": [
|
||||
{
|
||||
"portail": "ventes",
|
||||
"workspace": "OTO Ventes",
|
||||
"nb_cartes": 4,
|
||||
"nb_raccourcis": 4,
|
||||
"nb_liens": 11,
|
||||
"nb_roles": 12,
|
||||
"doctypes_custom": [
|
||||
"CONFOTUR Application",
|
||||
"Publiciste Log"
|
||||
]
|
||||
},
|
||||
{
|
||||
"portail": "construction",
|
||||
"workspace": "OTO Construction",
|
||||
"nb_cartes": 4,
|
||||
"nb_raccourcis": 4,
|
||||
"nb_liens": 9,
|
||||
"nb_roles": 10,
|
||||
"doctypes_custom": [
|
||||
"Faisabilité"
|
||||
]
|
||||
},
|
||||
{
|
||||
"portail": "achat",
|
||||
"workspace": "OTO Achat",
|
||||
"nb_cartes": 3,
|
||||
"nb_raccourcis": 4,
|
||||
"nb_liens": 8,
|
||||
"nb_roles": 5,
|
||||
"doctypes_custom": []
|
||||
},
|
||||
{
|
||||
"portail": "compta",
|
||||
"workspace": "OTO Compta",
|
||||
"nb_cartes": 4,
|
||||
"nb_raccourcis": 4,
|
||||
"nb_liens": 11,
|
||||
"nb_roles": 8,
|
||||
"doctypes_custom": []
|
||||
},
|
||||
{
|
||||
"portail": "direction",
|
||||
"workspace": "OTO Direction",
|
||||
"nb_cartes": 4,
|
||||
"nb_raccourcis": 4,
|
||||
"nb_liens": 14,
|
||||
"nb_roles": 9,
|
||||
"doctypes_custom": [
|
||||
"CONFOTUR Application",
|
||||
"Faisabilité"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user