Files
oto-enterprise-os-dtp/05_deliverables_mvp/qa/acceptance/out/acceptance_matrix.json
T
Claude Code DTP Worker caa3b90556 [DTP-Worker 20260805_064201] FIX RÉEL : fenêtre de sprint roadmap-globale de faisabilite/generator corrigée S2→S3
Défaut (1re vraie édition de prod après plusieurs sessions de sondes « 0 édition ») :
quality_spec.json:66 attribuait au générateur de faisabilité 4 volets la fenêtre roadmap
« S2 » avec un source falsifiable-faux (« roadmap Sprint 2 · Faisabilité… »), alors que la
roadmap n'a AUCUNE faisabilité au Sprint 2 (Console/CRM/RBAC) et place « génération 4 volets »
au Sprint 3 (L43, livrable L46 « P07 faisabilité complète auto-générée »). Cause racine :
confusion de 2 cadres de sprint — le label agent-interne « S2 » (AGENT.md §130-133 : phases
S1 template/S2 générateur/S3 versioning, toutes ancrées roadmap Sprint 3) recopié dans le
champ roadmap-global (seul quality_spec le porte, toutes ses entrées sourcent « roadmap
Sprint N »). Effet : le livrable-phare S3 était prouvé SANS son propre générateur, ce dernier
mal-classé comme preuve du S2 (dashboards/CRM/RBAC) sans rapport.

Correctif coordonné 2-spec + régénération byte-gatée :
- quality_spec.json:66 : sprint S2→S3 + source recitée « roadmap Sprint 3 » (style aligné sur
  le jumeau bancable, déjà S3).
- acceptance_spec.json : generator retiré de evidence_modules S2, ajouté à S3
  (sinon invariant 5 « partition exacte » casse : want lu dans quality_spec ≠ have déclaré).
- régénération audit_4big PUIS acceptance (lit la fenêtre depuis quality_spec).

Vérif : partition_ok=True · bijective=True · S2=6 (publiciste+5 rbac) · S3={bancable,generator}
· run_ci 33 PASS · score 4Big générateur inchangé 100/100 (le champ sprint ne sert qu'au tri+méta,
pas d'oracle de scoring). Portée honnête : 5 fichiers (2 specs + 3 artefacts régénérés) + log.
0 doc de module éditée (les ~10 « S2 » ailleurs = cadre agent-interne, corrects, #5) · daily_reports
= historique non réécrit · 0 gate ajouté (déjà gaté par inv5) · 0 chiffre inventé (#6) · 0 VPS (#8).

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

498 lines
14 KiB
JSON

{
"matrix": [
{
"id": "S1",
"kind": "sprint_deliverable",
"sprint": "S1",
"roadmap_line": 33,
"statement": "Repo Gitea live · gap analysis complète · baseline tests OK",
"status": "in_repo",
"modules": [],
"artifacts": [
{
"path": "GAP_ANALYSIS_SPRINT1.md",
"exists": true
}
],
"out_of_scope": [
{
"item": "baseline Playwright /crm · /waf-home · /qa (dépend du site LIVE) et push initial VPS",
"source": "CLAUDE.md #8 (VPS pour TOUS projets · worker n'écrit jamais sur le VPS)"
}
],
"n_modules": 0,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "S2",
"kind": "sprint_deliverable",
"sprint": "S2",
"roadmap_line": 39,
"statement": "7 dashboards uniformes · CRM avec pipeline live · RBAC 50 rôles",
"status": "in_repo",
"modules": [
{
"module": "publiciste",
"ci_job": "publiciste-tests",
"gated": true
},
{
"module": "rbac",
"ci_job": "rbac-tests",
"gated": true
},
{
"module": "rbac/fixtures_gen",
"ci_job": "rbac-fixtures-tests",
"gated": true
},
{
"module": "rbac/userperm_gen",
"ci_job": "rbac-userperm-tests",
"gated": true
},
{
"module": "rbac/roleprofile_gen",
"ci_job": "rbac-roleprofile-tests",
"gated": true
},
{
"module": "rbac/apply_plan",
"ci_job": "rbac-applyplan-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "import réel des fixtures RBAC + rendu HTML des dashboards sur le desk ERPNext LIVE",
"source": "CLAUDE.md #8 (VPS) · #1 (ERPNext natif = priorité — import via bench par agent Backend)"
}
],
"n_modules": 6,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "S3",
"kind": "sprint_deliverable",
"sprint": "S3",
"roadmap_line": 46,
"statement": "P07 Aqua Terra faisabilité complète auto-générée en <1h",
"status": "in_repo",
"modules": [
{
"module": "faisabilite/bancable",
"ci_job": "bancable-tests",
"gated": true
},
{
"module": "faisabilite/generator",
"ci_job": "faisabilite-gen-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "pipeline Blender→IFC→Speckle→Flux (aec.py) exécuté sur runtime BIM VPS + viewer 3D console LIVE",
"source": "CLAUDE.md #8 (VPS) — le rendu 3D/BIM tourne hors repo (bim-cloud.otov7.com)"
}
],
"n_modules": 2,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "S4",
"kind": "sprint_deliverable",
"sprint": "S4",
"roadmap_line": 52,
"statement": "5 portails RBAC live · workflow vente end-to-end",
"status": "in_repo",
"modules": [
{
"module": "crm/workflow_vente",
"ci_job": "crm-workflow-vente-tests",
"gated": true
},
{
"module": "crm/dossier_vente",
"ci_job": "crm-dossier-vente-tests",
"gated": true
},
{
"module": "crm/commissions",
"ci_job": "crm-commissions-tests",
"gated": true
},
{
"module": "crm/financement_bancaire",
"ci_job": "crm-financement-bancaire-tests",
"gated": true
},
{
"module": "fiscal/ecf_dgii",
"ci_job": "fiscal-ecf-tests",
"gated": true
},
{
"module": "frontend/portails",
"ci_job": "frontend-portails-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "création module + import DocTypes/Workflow + transmission e-CF réelle DGII (Compupar) sur ERPNext LIVE",
"source": "CLAUDE.md #8 (VPS) · #10 (Cardnet/DGII endpoints prod)"
},
{
"item": "Financement Bancaire Phase 2 : vrais formulaires PDF officiels des 6 banques + implémentation runtime des endpoints /api/hypotheque/* et de renderHypotheque sur le VPS",
"source": "DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md (Phase 2 · démarche relationship-manager Michel) · CLAUDE.md #8"
}
],
"n_modules": 6,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "S5",
"kind": "sprint_deliverable",
"sprint": "S5",
"roadmap_line": 58,
"statement": "Dépôts P05/P07 ONAPI · Apps mobile live 2 stores",
"status": "in_repo",
"modules": [
{
"module": "legal/confotur",
"ci_job": "legal-confotur-tests",
"gated": true
},
{
"module": "qa/audit_5d",
"ci_job": "qa-audit-5d-tests",
"gated": true
},
{
"module": "mobile/app_config",
"ci_job": "mobile-app-config-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "dépôt ONAPI/CONFOTUR réel + builds Expo 54 et submit App Store / Play Store",
"source": "roadmap Sprint 5 · Mobile (L57) — builds & submissions stores hors repo · CLAUDE.md #8"
}
],
"n_modules": 3,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "S6",
"kind": "sprint_deliverable",
"sprint": "S6",
"roadmap_line": 64,
"statement": "Indexation Google trilingue · OTOIA voice orchestre AEC",
"status": "in_repo",
"modules": [
{
"module": "seo",
"ci_job": "seo-tests",
"gated": true
},
{
"module": "frontend/chat_otoia",
"ci_job": "chat-otoia-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "indexation Google réelle (crawl runtime) + voix Amélie QC (multilingual_v2) exécutée sur runtime OTOIA VPS",
"source": "CLAUDE.md #8 (VPS) — indexation et TTS sont des services runtime hors repo"
}
],
"n_modules": 2,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "S7",
"kind": "sprint_deliverable",
"sprint": "S7",
"roadmap_line": 70,
"statement": "Plateforme prête pour démo publique (polish · scénarios démo · audit 4Big 95+)",
"status": "in_repo",
"modules": [
{
"module": "demo/scenarios",
"ci_job": "demo-scenario-tests",
"gated": true
},
{
"module": "qa/audit_4big",
"ci_job": "qa-audit-4big-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "polish final du site otov7.com (Hero · nav) sur le site LIVE",
"source": "roadmap Sprint 7 · Frontend « Site otov7.com polish final » (L67) — dépend du site LIVE · CLAUDE.md #8"
}
],
"n_modules": 2,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "S8",
"kind": "sprint_deliverable",
"sprint": "S8",
"roadmap_line": 76,
"statement": "Plateforme démo live · 5 portails · CRM · BIM auto · OTOIA voice",
"status": "in_repo",
"modules": [
{
"module": "qa/regression",
"ci_job": "qa-regression-tests",
"gated": true
},
{
"module": "devops/deploy_runbook",
"ci_job": "devops-deploy-runbook-tests",
"gated": true
},
{
"module": "pie/manifest",
"ci_job": "pie-manifest-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "Project Identity Engine complet (Brand Books/logos Flux, storage /opt/oto/data/pie/, sync ERPNext/Speckle/OTO AI) — seul le P0 (manifest de dépendances faisabilité(SSOT)→downstream) est in_repo ; P1-P4 restent à construire",
"source": "directive PIE (Annexe 12 · V10.1 · 2026-08-03) §160-166 · génération effective côté agents Flux/ERPNext/OTOIA (VPS · CLAUDE.md #8)"
},
{
"item": "déploiement production complet + monitoring exécutés sur le VPS (run-book appliqué)",
"source": "CLAUDE.md #8 (VPS) — l'exécution du run-book de déploiement revient à l'agent DevOps / ERPNext Backend"
}
],
"n_modules": 3,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "M1",
"kind": "mvp_metric",
"sprint": null,
"roadmap_line": 81,
"statement": "Faisabilité auto générée en <1h (vs 3-5 jours actuels)",
"status": "in_repo",
"modules": [
{
"module": "publiciste",
"ci_job": "publiciste-tests",
"gated": true
},
{
"module": "faisabilite/generator",
"ci_job": "faisabilite-gen-tests",
"gated": true
},
{
"module": "faisabilite/bancable",
"ci_job": "bancable-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [],
"n_modules": 3,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "M2",
"kind": "mvp_metric",
"sprint": null,
"roadmap_line": 82,
"statement": "Score 4Big >=95/100 sur 100% deliverables",
"status": "in_repo",
"modules": [
{
"module": "qa/audit_4big",
"ci_job": "qa-audit-4big-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [],
"n_modules": 1,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "M3",
"kind": "mvp_metric",
"sprint": null,
"roadmap_line": 83,
"statement": "7 dashboards entités uniformes luxury",
"status": "in_repo",
"modules": [
{
"module": "frontend/portails",
"ci_job": "frontend-portails-tests",
"gated": true
},
{
"module": "rbac/roleprofile_gen",
"ci_job": "rbac-roleprofile-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "rendu luxury dark+doré sur le desk ERPNext LIVE (Custom HTML)",
"source": "CLAUDE.md #8 (VPS) · #4 (design luxury rendu côté desk)"
}
],
"n_modules": 2,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "M4",
"kind": "mvp_metric",
"sprint": null,
"roadmap_line": 84,
"statement": "CRM ERPNext natif fonctionnel end-to-end",
"status": "in_repo",
"modules": [
{
"module": "crm/workflow_vente",
"ci_job": "crm-workflow-vente-tests",
"gated": true
},
{
"module": "crm/dossier_vente",
"ci_job": "crm-dossier-vente-tests",
"gated": true
},
{
"module": "crm/commissions",
"ci_job": "crm-commissions-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [],
"n_modules": 3,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "M5",
"kind": "mvp_metric",
"sprint": null,
"roadmap_line": 85,
"statement": "Mobile app publié 2 stores",
"status": "in_repo",
"modules": [
{
"module": "mobile/app_config",
"ci_job": "mobile-app-config-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "builds Expo 54 + submit App Store #32 / Play Store — la publication réelle sur les stores est hors repo (le worker produit la config versionnable, jamais le build/submit)",
"source": "roadmap Sprint 5 · Mobile (L56-57) — builds & submissions hors repo · CLAUDE.md #8"
}
],
"n_modules": 1,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "M6",
"kind": "mvp_metric",
"sprint": null,
"roadmap_line": 86,
"statement": "SEO trilingue indexé",
"status": "in_repo",
"modules": [
{
"module": "seo",
"ci_job": "seo-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "indexation Google réelle (soumission sitemaps + crawl)",
"source": "CLAUDE.md #8 (VPS) — worker systemd SEO tourne hors repo"
}
],
"n_modules": 1,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
},
{
"id": "M7",
"kind": "mvp_metric",
"sprint": null,
"roadmap_line": 87,
"statement": "OTOIA voice orchestre bout-en-bout",
"status": "in_repo",
"modules": [
{
"module": "frontend/chat_otoia",
"ci_job": "chat-otoia-tests",
"gated": true
}
],
"artifacts": [],
"out_of_scope": [
{
"item": "voix Amélie QC (multilingual_v2) + orchestration AEC exécutées sur runtime OTOIA VPS",
"source": "CLAUDE.md #8 (VPS) — TTS et pilotage aec.py sont des services runtime hors repo"
}
],
"n_modules": 1,
"all_modules_gated": true,
"all_artifacts_exist": true,
"has_evidence": true
}
],
"verdict": true
}