Organization ANCRÉE sur CLAUDE.md §Entités — le nom de marque Helios RD (marque publique · « **Helios RD** (marque publique) sous WAG ») et son url == base_url, portés par le nœud racine du graphe JSON-LD seo/out/seo_schema_org.json, étaient byte-gatés pour la REPRODUCTIBILITÉ (check_artifacts prouve la reconstruction depuis seo_spec.json) mais JAMAIS ANCRÉS à CLAUDE.md. Le bloc SEO schema.org amont gate la COMPOSITION (@type + bijection un-listing-par-projet), aveugle à l'IDENTITÉ de la marque que Google indexe. Piège #6 : renommer la marque dans seo_spec.json[schema_org.organization.name] (ou dans CLAUDE.md §Entités) puis régénérer laisse le JSON-LD PUBLIC de vente.otov7.com émettre un nom qui CONTREDIT le mandat pendant que la byte-gate reste VERTE (l'artefact se reconstruit fidèlement… depuis un spec dérivé) — « vert trompeur » de la classe des tokens branding ancrés sur #4. Aucune suite tests/ (FONCTIONS de génération, jamais l'ancrage à CLAUDE.md) ne l'attrape.
Gate ajouté (bloc « SEO org » après la composition schema.org) : marque re-dérivée de la parenthèse « (marque publique) » de CLAUDE.md §Entités (1× exactement · zéro duplication), puis (a) `Organization.name` == marque CLAUDE.md ; (b) `Organization.url` == `MANIFEST.base_url` & `@id` sous base_url ; (c) chaque listing rattaché à CETTE Organization (`brand.@id` == `org.@id`) sous base_url ; (d) `addressCountry` UNIFORME == `country_code` du spec (ISO 2 lettres, géo-ciblage à l'identique) ; (e) le spec DÉCLARE l'ancrage (`organization.name` == marque + `source` cite CLAUDE.md). Racine `Organization` exigée singleton en pré-requis. 6 morsures vérifiées (restauré vert après chacune) : artefact `name`→Helios DR (a) · CLAUDE.md §Entités rename Helios RD→Helios Dominicana → mord SIMULTANÉMENT artefact (a) ET spec (e), l'ancre est vive · artefact `url` divergent (b) · un `addressCountry` DO→US (d) · spec `source` supprime l'ancre CLAUDE.md (e) · un listing `brand.@id`→#phantom (c). Restauré = green, exit 0. Working tree byte-restauré (`git checkout --`, JAMAIS `git clean`). 7 gates re-verts (check_readme_claims/check_ci_integrity/check_docs/guard_constraints/check_artifacts/check_regression/validate_json). ci/README.md (clause table récap + paragraphe détaillé) mis à jour. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Organization ANCRÉE sur CLAUDE.md §Entités — le nom de marque Helios RD (marque publique · « **Helios RD** (marque publique) sous WAG ») et son url == base_url, portés par le nœud racine du graphe JSON-LD seo/out/seo_schema_org.json, étaient byte-gatés pour la REPRODUCTIBILITÉ (check_artifacts prouve la reconstruction depuis seo_spec.json) mais JAMAIS ANCRÉS à CLAUDE.md. Le bloc SEO schema.org amont gate la COMPOSITION (@type + bijection un-listing-par-projet), aveugle à l'IDENTITÉ de la marque que Google indexe. Piège #6 : renommer la marque dans seo_spec.json[schema_org.organization.name] (ou dans CLAUDE.md §Entités) puis régénérer laisse le JSON-LD PUBLIC de vente.otov7.com émettre un nom qui CONTREDIT le mandat pendant que la byte-gate reste VERTE (l'artefact se reconstruit fidèlement… depuis un spec dérivé) — « vert trompeur » de la classe des tokens branding ancrés sur #4. Aucune suite tests/ (FONCTIONS de génération, jamais l'ancrage à CLAUDE.md) ne l'attrape.
Organization ANCRÉE sur CLAUDE.md §Entités — le nom de marque Helios RD (marque publique · « **Helios RD** (marque publique) sous WAG ») et son url == base_url, portés par le nœud racine du graphe JSON-LD seo/out/seo_schema_org.json, étaient byte-gatés pour la REPRODUCTIBILITÉ (check_artifacts prouve la reconstruction depuis seo_spec.json) mais JAMAIS ANCRÉS à CLAUDE.md. Le bloc SEO schema.org amont gate la COMPOSITION (@type + bijection un-listing-par-projet), aveugle à l'IDENTITÉ de la marque que Google indexe. Piège #6 : renommer la marque dans seo_spec.json[schema_org.organization.name] (ou dans CLAUDE.md §Entités) puis régénérer laisse le JSON-LD PUBLIC de vente.otov7.com émettre un nom qui CONTREDIT le mandat pendant que la byte-gate reste VERTE (l'artefact se reconstruit fidèlement… depuis un spec dérivé) — « vert trompeur » de la classe des tokens branding ancrés sur #4. Aucune suite tests/ (FONCTIONS de génération, jamais l'ancrage à CLAUDE.md) ne l'attrape.
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.
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 |
Vision · 10 contraintes NON-NÉGOCIABLES · entités · projets · VPS |
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 |
Modules OTOV7 réutilisés par agent (source des refactorings) |
PORTAIL_BANCABLES_4BIG.md |
Cadre de bancabilité 4Big |
02_master_prompt/ |
Prompt maître du mandat |
03_agents/ |
Fiches des 13 agents (rôle · livrables · coordination) |
05_deliverables_mvp/ |
Livrables (générateurs déterministes + hand-off out/) |
05_deliverables_mvp/GAP_ANALYSIS_SPRINT1.md |
Audit d'assets + gap analysis (Sprint 1) |
05_activity_log/ |
Journal de session horodaté |
.gitea/workflows/ci.yml · ci/ |
Gate CI Gitea Actions + guards locaux |
tests/ |
Baseline E2E Playwright |
Les 13 agents
Faisabilité & 3D : bim · ifc_speckle ·
rendu · faisabilite ·
publiciste
Plateforme : erpnext_backend ·
frontend_console · crm ·
onapi_legal · seo ·
mobile
Transverses : devops · qa
État courant (sourcé)
- Qualité 4Big : 22/22 modules gated à 100/100 (seuil 95 ·
CLAUDE.md#5), verdictPASS— sourceqa/audit_4big/out/quality_report.json. - Régression : 22 suites gated couvertes bijectivement vs CI ; le compte de tests
agrégé faisant autorité est produit par
qa/regression run(non commité par design) — planqa/regression/out/regression_plan.json. - Recette roadmap : 15 promesses (8 livrables sprint + 7 métriques MVP), 15
in_repoprouvées (chacune traçant ses items hors-périmètre worker · #8 · ex. M5 « app publiée 2 stores »), verdicttrue— sourceqa/acceptance/out/acceptance_matrix.json. - Guards :
ci/guard_constraints.sh+ci/check_docs.shverts.
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.
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).