Claude Code DTP Worker c0da3dfeec [DTP-Worker] Sprint 8 · buffer L75 · Domaine Fiscal/e-CF : le CONTRAT DE FORMAT de l'e-NCF (« E + tipoeCF(2) + secuencia(10) » = 13) était retranscrit À LA MAIN dans QUATRE endroits de prose (README ×3 + fiche agent erpnext_backend) sans AUCUN gate d'IDENTITÉ. Le bloc racine de check_readme_claims ne gate que le COMPTE de tests e-CF (« 39 ») — surface distincte du MÊME module. Ce format — préfixe · longueur du segment tipo · longueur du segment secuencia · longueur TOTALE — est le CŒUR du module (le « composeur traçable ») et dérive du bloc e_ncf de fiscal/ecf_dgii/out/ecf_plan.json (byte-gaté par check_artifacts) : prefix (« E »), longueur (13), regex (^E[0-9]{12}$), structure (« E + tipoeCF (2 chiffres) + secuencia (10 chiffres) »). Format e-NCF standard DGII (Ley 32-23) porté avec source — pas un chiffre inventé (#6). Aucun gate ne comparait la LONGUEUR des segments à l'artefact : allonger la secuencia (rango DGII à 12 chiffres → longueur 15, regex 14 digits) OU changer le préfixe ferait dériver les QUATRE proses en silence pendant que l'ecf_plan byte-gaté dit autre chose — « vert trompeur » qu'aucune suite tests/ (qui teste les FONCTIONS compose_encf/parse_encf, pas la prose) n'attrape → nouveau bloc recomputant (prefix, tipo_len, seq_len, total) depuis le SEUL bloc e_ncf (zéro duplication du format du générateur #6) et exigeant que CHAQUE prose l'encode EXACTEMENT (4 sous-checks numérotés, patron du bloc DevOps). Cohérences croisées en bonus (mordent un artefact INTERNEMENT incohérent) : 1 + tipo_len + seq_len == longueur (1+2+10==13) ET |regex digits| == tipo_len + seq_len (12 == 2+10). Un claim absent échoue AUSSI. 5 morsures vérifiées : drift de l'artefact source (secuencia 10→12, les 4 proses mordues) · résumé README tipo 2→3 · invariant README total 13→14 (aveugle au segment) · fiche erpnext_backend secuencia 10→9 · composition README supprimée (INTROUVABLE) ; plus la morsure d'incohérence d'artefact (regex {11} désaligné du segment tipo+seq=12) ; restauré = green : E + tipo(2) + secuencia(10) = 13 == e_ncf. État courant : aucun segment périmé (anti-invention #6, rien à réécrire) — le défaut est la surface ungated. ci/README.md (table + détail) mis à jour · 7 gates re-verts.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 16:09:13 +00:00
[DTP-Worker] Sprint 8 · buffer L75 · Domaine Fiscal/e-CF : le CONTRAT DE FORMAT de l'e-NCF (« E + tipoeCF(2) + secuencia(10) » = 13) était retranscrit À LA MAIN dans QUATRE endroits de prose (README ×3 + fiche agent erpnext_backend) sans AUCUN gate d'IDENTITÉ. Le bloc racine de check_readme_claims ne gate que le COMPTE de tests e-CF (« 39 ») — surface distincte du MÊME module. Ce format — préfixe · longueur du segment tipo · longueur du segment secuencia · longueur TOTALE — est le CŒUR du module (le « composeur traçable ») et dérive du bloc e_ncf de fiscal/ecf_dgii/out/ecf_plan.json (byte-gaté par check_artifacts) : prefix (« E »), longueur (13), regex (^E[0-9]{12}$), structure (« E + tipoeCF (2 chiffres) + secuencia (10 chiffres) »). Format e-NCF standard DGII (Ley 32-23) porté avec source — pas un chiffre inventé (#6). Aucun gate ne comparait la LONGUEUR des segments à l'artefact : allonger la secuencia (rango DGII à 12 chiffres → longueur 15, regex 14 digits) OU changer le préfixe ferait dériver les QUATRE proses en silence pendant que l'ecf_plan byte-gaté dit autre chose — « vert trompeur » qu'aucune suite tests/ (qui teste les FONCTIONS compose_encf/parse_encf, pas la prose) n'attrape → nouveau bloc recomputant (prefix, tipo_len, seq_len, total) depuis le SEUL bloc e_ncf (zéro duplication du format du générateur #6) et exigeant que CHAQUE prose l'encode EXACTEMENT (4 sous-checks numérotés, patron du bloc DevOps). Cohérences croisées en bonus (mordent un artefact INTERNEMENT incohérent) : 1 + tipo_len + seq_len == longueur (1+2+10==13) ET |regex digits| == tipo_len + seq_len (12 == 2+10). Un claim absent échoue AUSSI. 5 morsures vérifiées : drift de l'artefact source (secuencia 10→12, les 4 proses mordues) · résumé README tipo 2→3 · invariant README total 13→14 (aveugle au segment) · fiche erpnext_backend secuencia 10→9 · composition README supprimée (INTROUVABLE) ; plus la morsure d'incohérence d'artefact (regex {11} désaligné du segment tipo+seq=12) ; restauré = green : E + tipo(2) + secuencia(10) = 13 == e_ncf. État courant : aucun segment périmé (anti-invention #6, rien à réécrire) — le défaut est la surface ungated. ci/README.md (table + détail) mis à jour · 7 gates re-verts.
2026-07-31 16:09:13 +00:00
[DTP-Worker] Sprint 8 · buffer L75 · Domaine Fiscal/e-CF : le CONTRAT DE FORMAT de l'e-NCF (« E + tipoeCF(2) + secuencia(10) » = 13) était retranscrit À LA MAIN dans QUATRE endroits de prose (README ×3 + fiche agent erpnext_backend) sans AUCUN gate d'IDENTITÉ. Le bloc racine de check_readme_claims ne gate que le COMPTE de tests e-CF (« 39 ») — surface distincte du MÊME module. Ce format — préfixe · longueur du segment tipo · longueur du segment secuencia · longueur TOTALE — est le CŒUR du module (le « composeur traçable ») et dérive du bloc e_ncf de fiscal/ecf_dgii/out/ecf_plan.json (byte-gaté par check_artifacts) : prefix (« E »), longueur (13), regex (^E[0-9]{12}$), structure (« E + tipoeCF (2 chiffres) + secuencia (10 chiffres) »). Format e-NCF standard DGII (Ley 32-23) porté avec source — pas un chiffre inventé (#6). Aucun gate ne comparait la LONGUEUR des segments à l'artefact : allonger la secuencia (rango DGII à 12 chiffres → longueur 15, regex 14 digits) OU changer le préfixe ferait dériver les QUATRE proses en silence pendant que l'ecf_plan byte-gaté dit autre chose — « vert trompeur » qu'aucune suite tests/ (qui teste les FONCTIONS compose_encf/parse_encf, pas la prose) n'attrape → nouveau bloc recomputant (prefix, tipo_len, seq_len, total) depuis le SEUL bloc e_ncf (zéro duplication du format du générateur #6) et exigeant que CHAQUE prose l'encode EXACTEMENT (4 sous-checks numérotés, patron du bloc DevOps). Cohérences croisées en bonus (mordent un artefact INTERNEMENT incohérent) : 1 + tipo_len + seq_len == longueur (1+2+10==13) ET |regex digits| == tipo_len + seq_len (12 == 2+10). Un claim absent échoue AUSSI. 5 morsures vérifiées : drift de l'artefact source (secuencia 10→12, les 4 proses mordues) · résumé README tipo 2→3 · invariant README total 13→14 (aveugle au segment) · fiche erpnext_backend secuencia 10→9 · composition README supprimée (INTROUVABLE) ; plus la morsure d'incohérence d'artefact (regex {11} désaligné du segment tipo+seq=12) ; restauré = green : E + tipo(2) + secuencia(10) = 13 == e_ncf. État courant : aucun segment périmé (anti-invention #6, rien à réécrire) — le défaut est la surface ungated. ci/README.md (table + détail) mis à jour · 7 gates re-verts.
2026-07-31 16:09:13 +00:00

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é)

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).

S
Description
OTO Enterprise OS · Digital Twin Platform MVP · 8 semaines OU MOINS
Readme 8.1 MiB
Languages
Python 58.7%
Shell 40.5%
TypeScript 0.6%
Go Template 0.2%