diff --git a/03_agents/ifc_speckle/AGENT.md b/03_agents/ifc_speckle/AGENT.md index 22a899b..2a075f8 100644 --- a/03_agents/ifc_speckle/AGENT.md +++ b/03_agents/ifc_speckle/AGENT.md @@ -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. diff --git a/05_activity_log/2026-07-30.md b/05_activity_log/2026-07-30.md index 2beb6ed..5bed278 100644 --- a/05_activity_log/2026-07-30.md +++ b/05_activity_log/2026-07-30.md @@ -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