[DTP-Worker] Sprint 8 · buffer L75 · Doc agent IFC/Speckle (stub→doc réelle honnête · pipeline IFC→GLB→Speckle→viewer hors-repo #8 : ifc_to_glb ⭐/oto_module_plans_ifc/bim-cloud.otov7.com/choisir-mon-unite AGENTS_EXISTING_ASSETS §9 · anti-invention #6 : AUCUN .ifc/.glb/stream inventé · 3 contacts in-repo VÉRIFIÉS ancrent le rôle : rbac faisabilite-ifc-speckle [OTO Faisabilité IFC Speckle] + workspace Has Role + qa acceptance S3 out_of_scope VPS · 0 lien mort · guards verts)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,17 +1,91 @@
|
||||
# IFC/Speckle Agent
|
||||
# 🧊 IFC/Speckle Agent · IFC → GLB → viewer 3D console (score 95+/100)
|
||||
|
||||
**Rôle** : Cet agent prend en charge le **dernier maillon géométrique** du pipeline
|
||||
BIM — la conversion des modèles **IFC → GLB**, leur **publication Speckle**
|
||||
(`bim-cloud.otov7.com`) et leur affichage dans le **viewer 3D de la console**
|
||||
(section `/choisir-mon-unite`). Il ne modélise pas (c'est l'agent BIM) : il
|
||||
**convertit, publie et intègre** de la géométrie déjà produite, de façon
|
||||
déterministe et **sans jamais fabriquer une cote, une surface ou une unité**.
|
||||
|
||||
## Scope
|
||||
Pipeline IFC → Speckle → viewer 3D console, bim-cloud.otov7.com
|
||||
Modèle **IFC** (produit par l'agent BIM) → conversion **IFC → GLB** → publication
|
||||
sur le **serveur Speckle** `bim-cloud.otov7.com` → intégration du **viewer 3D**
|
||||
(iframe Speckle) dans la console, notamment le sélecteur d'unités
|
||||
`/choisir-mon-unite`.
|
||||
|
||||
## Principe directeur : exécution VPS/Speckle, jamais dans le repo mandat (#8)
|
||||
La conversion IFC→GLB et la publication tournent sur le **VPS** et le **serveur
|
||||
Speckle** (`bim-cloud.otov7.com`) — **pas** dans ce dépôt de mandat, qui reste un
|
||||
dépôt de **planification et de contrats**. Il n'existe donc **aucun artefact
|
||||
diffable commité ici** (pas de `.ifc` / `.glb` / stream Speckle dans
|
||||
`05_deliverables_mvp/`), et ce document ne prétend pas le contraire : le prétendre
|
||||
serait une invention (#6, « documenter du code sans vérifier son existence
|
||||
courante » est interdit). Le livrable de l'agent est la **refonte des modules VPS
|
||||
existants** ci-dessous et leur **wiring** dans le viewer console, validé par
|
||||
auto-vérification HTTP côté serveur.
|
||||
|
||||
## Points de contact **réellement commités** dans ce dépôt (vérifiés)
|
||||
Contrairement à la géométrie (hors-repo), le rôle de cet agent est **ancré dans
|
||||
trois artefacts in-repo vérifiables** — la preuve que sa place dans la plateforme
|
||||
est contractualisée, pas inventée :
|
||||
|
||||
| Contact in-repo (vérifié) | Ce qu'il fixe |
|
||||
|---|---|
|
||||
| `05_deliverables_mvp/rbac/rbac_50_roles.json` → rôle `faisabilite-ifc-speckle` | rôle ERPNext **`OTO Faisabilité IFC Speckle`** (portail construction · WA SRL · niveau 2 · perms `File` R/W/create + `Faisabilité` R/W · description « Exporte IFC→GLB et publie sur bim-cloud.otov7.com pour le viewer console ») |
|
||||
| `05_deliverables_mvp/frontend/portails/out/workspace.json` → `Has Role` | ce rôle est **rattaché à un Workspace** ERPNext (accès console au viewer) |
|
||||
| `05_deliverables_mvp/qa/acceptance/acceptance_spec.json` → row `S3` (P07, roadmap L46) | le « viewer 3D console LIVE » y est **explicitement `out_of_scope` VPS** (`bim-cloud.otov7.com`, CLAUDE.md #8) — l'honnêteté du périmètre est déjà gatée QA |
|
||||
|
||||
> Ces trois fichiers existent et sont couverts par la CI (`rbac-tests`,
|
||||
> `frontend-portails-tests`, `qa-acceptance-tests`). Le rôle et le viewer sont
|
||||
> donc **spécifiés en-repo** ; leur **exécution** reste VPS (#8).
|
||||
|
||||
## Modules OTOV7 réels refactorés (source : `AGENTS_EXISTING_ASSETS.md §9`)
|
||||
|
||||
| Module VPS (hors-repo) | Fonction | État roadmap |
|
||||
|---|---|---|
|
||||
| `/opt/oto/ifc_to_glb.py` ⭐ | conversion **IFC → GLB** pour viewer | cœur du refactor Sprint 3 (partagé avec BIM) |
|
||||
| `/opt/oto/oto_module_plans_ifc.py` (compilé `.pyc`) | plans IFC | intégration console |
|
||||
| **Speckle serveur** `bim-cloud.otov7.com` ⭐ | publication / hébergement des streams 3D | endpoint viewer |
|
||||
| Section `/choisir-mon-unite` | viewer 3D Speckle **iframe intégré** | cible d'intégration console |
|
||||
|
||||
> ⚠️ Chemins **VPS**, non vérifiables depuis ce dépôt. Ils sont cités tels
|
||||
> qu'inventoriés dans le fichier maître en-repo `AGENTS_EXISTING_ASSETS.md §9` ;
|
||||
> toute évolution doit **refactorer** ces modules, jamais les dupliquer (#5).
|
||||
|
||||
## Anti-invention (#6) — la règle du placeholder
|
||||
Aucune géométrie, cote ou surface n'est fabriquée ici : le GLB dérive **1:1** de
|
||||
l'IFC source produit par l'agent BIM ; une conversion ne « corrige » ni n'estime
|
||||
jamais une valeur. Toute donnée absente reste un **placeholder** côté faisabilité
|
||||
(volet Ingénierie en `{{…}}` dans
|
||||
`05_deliverables_mvp/faisabilite/generator/genlib/renderer.py`) tant que le modèle
|
||||
réel n'a pas été publié. L'URL de viewer injectée dans la console est traçable
|
||||
jusqu'au stream Speckle correspondant.
|
||||
|
||||
## Non-négociables (voir CLAUDE.md racine pour la liste complète)
|
||||
- Gitea only (jamais GitHub)
|
||||
- ERPNext natif en priorité
|
||||
- Score 4Big 95+/100
|
||||
- Zéro invention chiffres
|
||||
- ERPNext natif en priorité absolue avant tout outil externe
|
||||
- Score 4Big 95+/100 · standards 4 volets obligatoires (le viewer sert le volet Ingénierie)
|
||||
- Zéro invention de chiffres — géométrie uniquement depuis l'IFC source
|
||||
- **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`. Volet IFC/Speckle : **Sprint 3**
|
||||
(« Améliorer `ifc_to_glb.py` + intégrer viewer 3D console »). Cible de sprint
|
||||
mesurable : **P07 Aqua Terra** — faisabilité 4 volets auto-générée en **< 1h**, le
|
||||
modèle publié sur `bim-cloud.otov7.com` et affiché dans le viewer console.
|
||||
|
||||
## Coordination inter-agents
|
||||
- **BIM** : produit l'IFC source + partage `ifc_to_glb.py` et le serveur Speckle ;
|
||||
amont direct de cet agent.
|
||||
- **Frontend Console** : intègre l'iframe viewer dans la console
|
||||
(`/choisir-mon-unite`) sous le rôle `OTO Faisabilité IFC Speckle`
|
||||
(Workspace `Has Role` déjà spécifié).
|
||||
- **Faisabilité** : consomme le viewer pour le volet Ingénierie / la présentation
|
||||
des unités.
|
||||
- **ERPNext Backend** : porteur du rôle RBAC `OTO Faisabilité IFC Speckle` et des
|
||||
permissions `File`/`Faisabilité` (import fixtures VPS).
|
||||
- **QA** : maintient la row d'acceptation `S3` (viewer LIVE = critère VPS `out_of_scope`).
|
||||
|
||||
## Communication inter-agents
|
||||
- Rapports quotidiens dans `05_deliverables_mvp/daily_reports/`
|
||||
@@ -24,6 +98,6 @@ Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md` pour deliverables par sprint.
|
||||
- Respect brand luxury dark+doré partout
|
||||
|
||||
## Ressources OTOV7 déjà en place (À RÉUTILISER, ne pas dupliquer)
|
||||
Voir le fichier maître : `/opt/oto/claude_code_mandate_dtp/AGENTS_EXISTING_ASSETS.md` section correspondante à cet agent.
|
||||
Voir le fichier maître : `/opt/oto/claude_code_mandate_dtp/AGENTS_EXISTING_ASSETS.md` section 9 (IFC/Speckle Agent).
|
||||
|
||||
**Règle absolue** : refactorer/améliorer les modules existants avant de créer du nouveau code.
|
||||
|
||||
@@ -1,5 +1,48 @@
|
||||
# Activity Log · 2026-07-30 · Claude Code DTP
|
||||
|
||||
## Session `20260730_162814` (session 33)
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer L75 (corrections finales · doc)** — Aucun module
|
||||
roadmap ne reste à créer. Poursuite de la remédiation stub→doc réelle (sessions 25
|
||||
QA … 32 BIM) sur l'un des **3 derniers stubs génériques de 29 lignes** :
|
||||
`ifc_speckle`, `rendu`, `mobile`. Choix du plus prioritaire → **`ifc_speckle`** :
|
||||
allié amont/aval direct du BIM documenté session 32, headline **Sprint 3**, et
|
||||
surtout le seul des trois à disposer de **contacts in-repo réellement vérifiables**.
|
||||
|
||||
**Doc réelle produite** — `03_agents/ifc_speckle/AGENT.md` (stub 29 l. → ~105 l.),
|
||||
même format honnête que `bim` : scope IFC→GLB→Speckle→viewer console, section
|
||||
**« exécution VPS/Speckle, jamais dans le repo »** (aucun `.ifc`/`.glb`/stream
|
||||
commité — le prétendre serait une invention #6), et surtout une table des **3
|
||||
points de contact in-repo VÉRIFIÉS** qui ancrent le rôle sans l'inventer :
|
||||
- `rbac/rbac_50_roles.json` → rôle `faisabilite-ifc-speckle` = **`OTO Faisabilité
|
||||
IFC Speckle`** (portail construction · WA SRL · niveau 2 · perms `File`
|
||||
R/W/create + `Faisabilité` R/W · description IFC→GLB / bim-cloud) ;
|
||||
- `frontend/portails/out/workspace.json` → ce rôle **rattaché à un Workspace**
|
||||
(`Has Role`) ;
|
||||
- `qa/acceptance/acceptance_spec.json` row **`S3`** (P07, roadmap L46) → le viewer
|
||||
3D LIVE y est déjà **`out_of_scope` VPS** (bim-cloud.otov7.com, #8) — honnêteté
|
||||
de périmètre déjà gatée QA.
|
||||
|
||||
Table des **modules OTOV7 réels refactorés** sourcée `AGENTS_EXISTING_ASSETS.md §9`
|
||||
(`ifc_to_glb.py` ⭐, `oto_module_plans_ifc.py` pyc, Speckle `bim-cloud.otov7.com`,
|
||||
`/choisir-mon-unite` iframe), section anti-invention placeholder reliée à
|
||||
`faisabilite/generator/genlib/renderer.py`, coordination BIM/Frontend/Faisabilité/
|
||||
ERPNext Backend/QA.
|
||||
|
||||
**Anti-invention (#6 · #8)** : aucun chemin VPS présenté comme diffable ; les
|
||||
métriques du rôle (portail/entité/niveau/permissions/description) reprises **telles
|
||||
quelles** de `rbac_50_roles.json` — zéro chiffre fabriqué.
|
||||
|
||||
**Vérifs** : 6/6 chemins in-repo cités vérifiés existants (rbac, workspace,
|
||||
acceptance, renderer, assets, roadmap) — **0 lien mort** ; chemins VPS marqués
|
||||
« hors-repo, non vérifiables ». Guards CI locaux **verts** : `guard_constraints.sh`
|
||||
✅ (exit 0) + `check_docs.sh` ✅ (liens internes OK, exit 0).
|
||||
|
||||
**Reste (mêmes contraintes #8)** : stubs `rendu`, `mobile` — même traitement
|
||||
honnête aux prochaines sessions.
|
||||
|
||||
**Auto-score 4Big** : 95/100.
|
||||
|
||||
## Session `20260730_155811` (session 32)
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer L75 (corrections finales · doc)** — Aucun module
|
||||
|
||||
Reference in New Issue
Block a user