diff --git a/03_agents/erpnext_backend/AGENT.md b/03_agents/erpnext_backend/AGENT.md index 6f6b51d..5177f85 100644 --- a/03_agents/erpnext_backend/AGENT.md +++ b/03_agents/erpnext_backend/AGENT.md @@ -25,12 +25,12 @@ le VPS reçoit — jamais l'inverse. | Module | Sprint | Rôle | Entrée CLI | Job CI | Tests | |---|---|---|---|---|---| -| `rbac/` (spec + `rbac_50_roles.json`) | 2 (roadmap L38) | Design machine-lisible des **50 rôles** RBAC natifs Frappe (`Role` + scope données) · source unique consommée par tout le repo | `—` (contrat + schéma `rbac.schema.json`) | `rbac-tests` | 10 | -| `rbac/fixtures_gen/` | 2 (roadmap L38) | `rbac_50_roles.json` → fixtures Frappe **`Role` + `Custom DocPerm`** | `rbac_fixtures_gen.py build\|validate` | `rbac-fixtures-tests` | 11 | -| `rbac/userperm_gen/` | 2 (roadmap L38) | `scope_donnees` → plan **User Permission** (row-level, mécanisme Frappe natif) | `userperm_gen.py build\|validate` | `rbac-userperm-tests` | 12 | -| `rbac/roleprofile_gen/` | 2 (roadmap L38) | Un **`Role Profile`** ERPNext v15 par portail (bundles de rôles) | `roleprofile_gen.py build\|validate` | `rbac-roleprofile-tests` | 11 | -| `rbac/apply_plan/` | 2 (roadmap L38) | **Run-book d'application unifié** — recoud les 3 volets RBAC en un plan d'import ordonné | `rbac_apply_plan.py build\|validate` | `rbac-applyplan-tests` | 16 | -| `fiscal/ecf_dgii/` | 4 (roadmap L51) | **e-CF DGII (Compupar)** : quel évènement du pipeline émet un e-CF, quel type DGII, quel montant, quel rôle Compta + composeur d'e-NCF traçable `E + tipoeCF(2) + secuencia(10)` | `ecf_dgii_gen.py build\|validate` | `fiscal-ecf-tests` | 39 | +| [`rbac/`](../../05_deliverables_mvp/rbac/RBAC_50_ROLES_SPEC.md) (spec + `rbac_50_roles.json`) | 2 (roadmap L38) | Design machine-lisible des **50 rôles** RBAC natifs Frappe (`Role` + scope données) · source unique consommée par tout le repo | `—` (contrat + schéma `rbac.schema.json`) | `rbac-tests` | 10 | +| [`rbac/fixtures_gen/`](../../05_deliverables_mvp/rbac/fixtures_gen/README.md) | 2 (roadmap L38) | `rbac_50_roles.json` → fixtures Frappe **`Role` + `Custom DocPerm`** | `rbac_fixtures_gen.py build\|validate` | `rbac-fixtures-tests` | 11 | +| [`rbac/userperm_gen/`](../../05_deliverables_mvp/rbac/userperm_gen/README.md) | 2 (roadmap L38) | `scope_donnees` → plan **User Permission** (row-level, mécanisme Frappe natif) | `userperm_gen.py build\|validate` | `rbac-userperm-tests` | 12 | +| [`rbac/roleprofile_gen/`](../../05_deliverables_mvp/rbac/roleprofile_gen/README.md) | 2 (roadmap L38) | Un **`Role Profile`** ERPNext v15 par portail (bundles de rôles) | `roleprofile_gen.py build\|validate` | `rbac-roleprofile-tests` | 11 | +| [`rbac/apply_plan/`](../../05_deliverables_mvp/rbac/apply_plan/README.md) | 2 (roadmap L38) | **Run-book d'application unifié** — recoud les 3 volets RBAC en un plan d'import ordonné | `rbac_apply_plan.py build\|validate` | `rbac-applyplan-tests` | 16 | +| [`fiscal/ecf_dgii/`](../../05_deliverables_mvp/fiscal/ecf_dgii/README.md) | 4 (roadmap L51) | **e-CF DGII (Compupar)** : quel évènement du pipeline émet un e-CF, quel type DGII, quel montant, quel rôle Compta + composeur d'e-NCF traçable `E + tipoeCF(2) + secuencia(10)` | `ecf_dgii_gen.py build\|validate` | `fiscal-ecf-tests` | 39 | **Une source unique, tout le reste en dérive** (CLAUDE.md #5 · éliminer les doublons) : `rbac_50_roles.json` est le **référentiel de rôles de tout le repo** — le workflow diff --git a/05_activity_log/2026-07-30.md b/05_activity_log/2026-07-30.md index f96eed2..1f8d23d 100644 --- a/05_activity_log/2026-07-30.md +++ b/05_activity_log/2026-07-30.md @@ -1,5 +1,45 @@ # Activity Log · 2026-07-30 · Claude Code DTP +## Session `20260730_212901` + +**Tâche** : **Sprint 8 · buffer L75 (corrections finales · doc)** — roadmap +fonctionnellement close ; poursuite du **chantier cross-linking** ouvert par les +sessions précédentes (fiches `faisabilite`/`publiciste`/`qa` déjà traitées, commits +`2d11a77`/`1a4813c`/`0ab3683`). Ces sessions ont explicitement recensé le **reste du +chantier** : `crm/devops/erpnext_backend/frontend_console/onapi_legal/seo` +(`bim/ifc/rendu/mobile` = VPS-only, hors chantier). Par contrainte **#1 (ERPNext +natif = priorité absolue)**, l'agent traité en priorité est **`erpnext_backend`**. + +**Gap comblé** : dans `03_agents/erpnext_backend/AGENT.md`, la table « Livrables +backend réellement produits » listait ses **6 modules** en **code-spans nus** — un +lecteur n'avait aucun chemin cliquable de la fiche vers les livrables gated in-repo +qui la réalisent. Passage aux **liens markdown cliquables** vers le README.md (ou la +spec) de chaque module, pattern déjà appliqué à faisabilite/publiciste/qa. + +**Fichier modifié** — `03_agents/erpnext_backend/AGENT.md` : 6 cellules Module de la +table transformées en liens relatifs `../../05_deliverables_mvp/…` : +- [`rbac/`] → `rbac/RBAC_50_ROLES_SPEC.md` (dir spec sans README — lien vers la + spec, cible réelle du contrat) ; +- [`rbac/fixtures_gen/`] · [`rbac/userperm_gen/`] · [`rbac/roleprofile_gen/`] · + [`rbac/apply_plan/`] → leur `README.md` respectif ; +- [`fiscal/ecf_dgii/`] → `fiscal/ecf_dgii/README.md`. + +**Anti-invention (#6)** : cibles **vérifiées existantes** (`test -f`) avant édition ; +compteurs de tests de la table (**10/11/12/11/16/39**) **revérifiés vs disque** +(`grep -rc 'def test_'`) — identiques, aucun chiffre touché. Édition **liens +uniquement**, 0 texte descriptif modifié, 0 code. + +**Vérifs** : `ci/check_docs.sh` **exit 0** (0 lien interne cassé — les 6 nouvelles +cibles résolvent) ; `ci/guard_constraints.sh` **exit 0** ; `AGENT.md` hors périmètre +SOFT-check 4Big. Changement **doc-only** ; régression inchangée (534 verts). + +**Hors périmètre worker (VPS · #8)** : néant (doc-only en-repo). + +**Reste chantier** : `crm/devops/frontend_console/onapi_legal/seo` (mêmes tables, +prochaines sessions buffer). + +**Auto-score 4Big** : 96/100. + ## Session `20260730_185825` (session 36) **Tâche** : **Sprint 8 · buffer L75 (corrections finales · doc)** — roadmap