Files
oto-enterprise-os-dtp/README.md
T
Claude Code DTP Worker e6b89435fd [DTP-Worker 20260803_183728] README indexe la classe d'artefacts DIRECTIVE_*.md → édition doc RÉELLE (pas signal-only)
Sondes préalables 0 dérive : (1) docstring-vs-CODE 22 générateurs + helpers = fidèles aux fichiers réellement écrits/clés lues, aucun phantom ; (2) 4 directives non-auditées (ARCHIVES_DEBLOCAGE/PLANPOINT_STYLE/RENDUS_EXISTANTS/UNBLOCK_NOW) = opérationnelles/inventaire/UI/autorisation, PAS des couples directive→module byte-gaté, rien à gater.

Gap RÉEL : les 8 DIRECTIVE_*.md racine (input-specs formels datés de Michel, cross-linkés depuis crm/financement_bancaire · mobile/app_config · pie/manifest + fiches AGENT) étaient ABSENTS de l'index du README racine — qui se présente pourtant comme « Point d'entrée … indexe les artefacts » (grep DIRECTIVE README.md = 0). Classe entière invisible depuis le point d'entrée.

Édition README.md : ligne de navigation (ancre intra-doc, strippée par check_docs → sûr) + nouvelle section « ## Directives Michel (input-specs datés) » cadrant la nature snapshot (spec=authority comme daily_reports) + exclusion guard_constraints, listant les 8 en 2 groupes honnêtes : pilotent-un-module-byte-gaté (FINANCEMENT/MOBILE_STORES/PIE) vs contexte/inventaire/workflow/gouvernance (V10/ARCHIVES/RENDUS/PLANPOINT/UNBLOCK, pas de module 1:1, runtime hors #8).

Discipline : AUCUN compte agrégé en dur (pas de scalaire qui dérive #6) — l'énumération EST la liste ; tous liens vers fichiers existants (check_docs HARD) ; groupement vérifié sémantiquement (V10 sans module 1:1 → contexte, pas faux-lié). 0 module créé · 0 gate ajouté (#5) · 0 chiffre inventé (#6) · 0 commande VPS (#8).

run_ci.sh --static 7/7 PASS (check-docs liens OK + check-readme-claims vert). Baseline complet 32 PASS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 18:46:32 +00:00

92 lines
6.7 KiB
Markdown

# OTO Enterprise OS · Digital Twin Platform (DTP)
Mandat de refactoring **8 semaines ou moins** : unifier BIM (Blender/Bonsai/IFC/Speckle),
ERPNext v15 natif, la Console Helios (luxury dark+doré) et les faisabilités 4 volets
niveau 4Big, pilotés par l'agent orchestrateur OTOIA. Vision et contraintes
NON-NÉGOCIABLES : [`CLAUDE.md`](CLAUDE.md).
> **Point d'entrée** de ce dépôt de mandat. Il indexe les artefacts et rapporte l'état
> courant. Chaque chiffre ci-dessous est **sourcé** vers un artefact commité (anti-invention
> `CLAUDE.md` #6) ; ce README n'introduit aucune donnée nouvelle.
## Navigation
| Zone | Contenu |
|---|---|
| [`CLAUDE.md`](CLAUDE.md) | Vision · 10 contraintes NON-NÉGOCIABLES · entités · projets · VPS |
| [`04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md`](04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md) | Plan 8 sprints · gains d'accélération (~47%) · métriques succès MVP |
| [`AGENTS_EXISTING_ASSETS.md`](AGENTS_EXISTING_ASSETS.md) | Modules OTOV7 réutilisés par agent (source des refactorings) |
| [`PORTAIL_BANCABLES_4BIG.md`](PORTAIL_BANCABLES_4BIG.md) | Cadre de bancabilité 4Big |
| [`DIRECTIVE_*.md`](#directives-michel-input-specs-datés) | Input-specs datés de Michel (snapshots) qui pilotent les modules — spec commitée = autorité |
| [`02_master_prompt/`](02_master_prompt) | Prompt maître du mandat |
| [`03_agents/`](03_agents) | Fiches des **13 agents** (rôle · livrables · coordination) |
| [`05_deliverables_mvp/`](05_deliverables_mvp) | Livrables (générateurs déterministes + hand-off `out/`) |
| [`05_deliverables_mvp/GAP_ANALYSIS_SPRINT1.md`](05_deliverables_mvp/GAP_ANALYSIS_SPRINT1.md) | Audit d'assets + gap analysis (Sprint 1) |
| [`05_activity_log/`](05_activity_log) | Journal de session horodaté |
| [`.gitea/workflows/ci.yml`](.gitea/workflows/ci.yml) · [`ci/`](ci/README.md) | Gate CI Gitea Actions + guards locaux |
| [`run_ci.sh`](run_ci.sh) | Miroir **local** du gate : rejoue tout `gate.needs` (dérivé de ci.yml, sans liste en dur) |
| [`tests/`](tests) | Baseline E2E Playwright |
## Les 13 agents
Faisabilité & 3D : [`bim`](03_agents/bim/AGENT.md) · [`ifc_speckle`](03_agents/ifc_speckle/AGENT.md) ·
[`rendu`](03_agents/rendu/AGENT.md) · [`faisabilite`](03_agents/faisabilite/AGENT.md) ·
[`publiciste`](03_agents/publiciste/AGENT.md)
Plateforme : [`erpnext_backend`](03_agents/erpnext_backend/AGENT.md) ·
[`frontend_console`](03_agents/frontend_console/AGENT.md) · [`crm`](03_agents/crm/AGENT.md) ·
[`onapi_legal`](03_agents/onapi_legal/AGENT.md) · [`seo`](03_agents/seo/AGENT.md) ·
[`mobile`](03_agents/mobile/AGENT.md)
Transverses : [`devops`](03_agents/devops/AGENT.md) · [`qa`](03_agents/qa/AGENT.md)
## État courant (sourcé)
- **Qualité 4Big** : **24/24 modules gated à 100/100** (seuil 95 · `CLAUDE.md` #5), verdict `PASS`
— source [`qa/audit_4big/out/quality_report.json`](05_deliverables_mvp/qa/audit_4big/out/quality_report.json).
- **Régression** : **24 suites gated** couvertes bijectivement vs CI. Le **compte de tests
agrégé faisant autorité** vit dans [`qa/regression/out/regression_run.json`](05_deliverables_mvp/qa/regression/out/regression_run.json),
artefact **commité et byte-gaté** : `ci/check_regression.sh` régénère un `run` frais et exige
l'identité **byte-for-byte** avec la baseline commitée (verdict `PASS`). Recensement déterministe
des suites : [`qa/regression/out/regression_plan.json`](05_deliverables_mvp/qa/regression/out/regression_plan.json).
- **Recette roadmap** : **15 promesses** (8 livrables sprint + 7 métriques MVP), **15 `in_repo`
prouvées** (chacune traçant ses items hors-périmètre worker · #8 · ex. M5 « app publiée 2 stores »),
verdict `true` — source [`qa/acceptance/out/acceptance_matrix.json`](05_deliverables_mvp/qa/acceptance/out/acceptance_matrix.json).
- **Guards** : [`ci/guard_constraints.sh`](ci/README.md) + [`ci/check_docs.sh`](ci/README.md) verts.
## Périmètre worker (in-repo) vs VPS
Ce dépôt produit des **générateurs déterministes** et leurs **hand-off `out/`**, gatés en CI.
Le **déploiement réel** (bench migrate, import fixtures, câblage nginx/systemd, builds stores,
indexation, voix Amélie) s'exécute sur le **VPS `153.75.250.214`** et reste **hors périmètre
worker** (`CLAUDE.md` #8). Le plan d'activation ordonné est le run-book
[`devops/deploy_runbook`](05_deliverables_mvp/devops/deploy_runbook/README.md).
## Directives Michel (input-specs datés)
Les fichiers `DIRECTIVE_*.md` à la racine sont les **input-specs formels et datés de
Michel** : des snapshots de gouvernance (au même titre que les `daily_reports`) qui
pilotent les modules. Ce README n'y introduit aucune donnée ; la **spec commitée du
module reste l'autorité** (`spec = authority`), les chiffres faisant foi via les artefacts
byte-gatés. Ils sont exclus de [`ci/guard_constraints.sh`](ci/README.md) (prose de
gouvernance énumérant règles et autorisations, pouvant citer des URLs/chemins interdits
ailleurs).
**Pilotent un module byte-gaté** (audité *directive → implémentation*, `CLAUDE.md` #5) :
- [`DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET`](DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md) → [`crm/financement_bancaire`](05_deliverables_mvp/crm/financement_bancaire/README.md)
- [`DIRECTIVE_MOBILE_STORES`](DIRECTIVE_MOBILE_STORES_20260803.md) → [`mobile/app_config`](05_deliverables_mvp/mobile/app_config/README.md)
- [`DIRECTIVE_PIE_PROJECT_IDENTITY_ENGINE`](DIRECTIVE_PIE_PROJECT_IDENTITY_ENGINE_20260803.md) → [`pie/manifest`](05_deliverables_mvp/pie/manifest/README.md)
**Contexte · inventaire · workflow · gouvernance** (pas de module byte-gaté dédié 1:1 ;
exécution runtime/VPS hors périmètre worker · `CLAUDE.md` #8) :
- [`DIRECTIVE_WORKFLOW_FAISABILITE_V10`](DIRECTIVE_WORKFLOW_FAISABILITE_V10_20260803.md) — versionnage du workflow faisabilité + intégration des modules livrés (annexes nuit 2026-08-03).
- [`DIRECTIVE_ARCHIVES_DEBLOCAGE`](DIRECTIVE_ARCHIVES_DEBLOCAGE_20260803.md) — inventaire IFC/plans déjà aux archives (réutiliser l'existant avant de commander).
- [`DIRECTIVE_RENDUS_EXISTANTS`](DIRECTIVE_RENDUS_EXISTANTS_20260803.md) — inventaire des rendus existants (priorité avant regénération Flux).
- [`DIRECTIVE_PLANPOINT_STYLE`](DIRECTIVE_PLANPOINT_STYLE_20260803.md) — exigence UI du configurateur « choisir-mon-unite » (niveau PlanPoint.io).
- [`DIRECTIVE_UNBLOCK_NOW`](DIRECTIVE_UNBLOCK_NOW_20260803.md) — autorisations 24/7 (contrainte #8 levée · cf. [`AUTORISATIONS_MICHEL_20260803.md`](AUTORISATIONS_MICHEL_20260803.md)).
## Git — Gitea uniquement
Dépôt de mandat : `michel/oto-enterprise-os-dtp` sur Gitea (`153.75.250.214:3015`).
**JAMAIS** GitHub / GitLab / Bitbucket (`CLAUDE.md` #2, garde `ci/guard_constraints.sh`).