[DTP-Worker] Sprint 8 · Générateur Matrice d'acceptation / traçabilité MVP (15 promesses roadmap · 21 modules gated tracés bijectif · partition sprint exacte · 12 hors-périmètre sourcés) (QA · roadmap L75/L80-87)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
{
|
||||
"generated_from": "acceptance_spec.json v1.0",
|
||||
"reference_cadre": "Roadmap 04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md · livrables de sprint (L33..L76) + métriques succès MVP (L81..L87) · CLAUDE.md #8 (VPS pour TOUS projets · le worker n'écrit jamais sur le VPS) · Sprint 8 « Bufer pour corrections finales » (L75)",
|
||||
"roadmap_ref": "04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md",
|
||||
"cible_portage": "Michel / comité de recette — document de recette (hand-off démo publique)",
|
||||
"self_module": "qa/acceptance",
|
||||
"counts": {
|
||||
"sprint_deliverables": 8,
|
||||
"mvp_metrics": 7,
|
||||
"deliverables_total": 15,
|
||||
"in_repo": 14,
|
||||
"out_of_scope_full": 1,
|
||||
"gated_modules": 21,
|
||||
"cited_modules": 21,
|
||||
"out_of_scope_items": 12
|
||||
},
|
||||
"coverage": {
|
||||
"ci_modules_count": 21,
|
||||
"cited_modules_count": 21,
|
||||
"bijective": true,
|
||||
"missing_in_matrix": [],
|
||||
"phantom_evidence": [],
|
||||
"partition_ok": true,
|
||||
"sprint_partition": [
|
||||
{
|
||||
"sprint": "S1",
|
||||
"expected": [],
|
||||
"cited": [],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"sprint": "S2",
|
||||
"expected": [
|
||||
"faisabilite/generator",
|
||||
"publiciste",
|
||||
"rbac",
|
||||
"rbac/apply_plan",
|
||||
"rbac/fixtures_gen",
|
||||
"rbac/roleprofile_gen",
|
||||
"rbac/userperm_gen"
|
||||
],
|
||||
"cited": [
|
||||
"faisabilite/generator",
|
||||
"publiciste",
|
||||
"rbac",
|
||||
"rbac/apply_plan",
|
||||
"rbac/fixtures_gen",
|
||||
"rbac/roleprofile_gen",
|
||||
"rbac/userperm_gen"
|
||||
],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"sprint": "S3",
|
||||
"expected": [
|
||||
"faisabilite/bancable"
|
||||
],
|
||||
"cited": [
|
||||
"faisabilite/bancable"
|
||||
],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"sprint": "S4",
|
||||
"expected": [
|
||||
"crm/commissions",
|
||||
"crm/dossier_vente",
|
||||
"crm/workflow_vente",
|
||||
"fiscal/ecf_dgii",
|
||||
"frontend/portails"
|
||||
],
|
||||
"cited": [
|
||||
"crm/commissions",
|
||||
"crm/dossier_vente",
|
||||
"crm/workflow_vente",
|
||||
"fiscal/ecf_dgii",
|
||||
"frontend/portails"
|
||||
],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"sprint": "S5",
|
||||
"expected": [
|
||||
"legal/confotur",
|
||||
"qa/audit_5d"
|
||||
],
|
||||
"cited": [
|
||||
"legal/confotur",
|
||||
"qa/audit_5d"
|
||||
],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"sprint": "S6",
|
||||
"expected": [
|
||||
"frontend/chat_otoia",
|
||||
"seo"
|
||||
],
|
||||
"cited": [
|
||||
"frontend/chat_otoia",
|
||||
"seo"
|
||||
],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"sprint": "S7",
|
||||
"expected": [
|
||||
"demo/scenarios",
|
||||
"qa/audit_4big"
|
||||
],
|
||||
"cited": [
|
||||
"demo/scenarios",
|
||||
"qa/audit_4big"
|
||||
],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
},
|
||||
{
|
||||
"sprint": "S8",
|
||||
"expected": [
|
||||
"devops/deploy_runbook",
|
||||
"qa/regression"
|
||||
],
|
||||
"cited": [
|
||||
"devops/deploy_runbook",
|
||||
"qa/regression"
|
||||
],
|
||||
"missing": [],
|
||||
"extra": [],
|
||||
"exact": true
|
||||
}
|
||||
],
|
||||
"unknown_sprint": [],
|
||||
"missing_artifacts": [],
|
||||
"self_module_excluded": "qa/acceptance"
|
||||
},
|
||||
"roadmap": {
|
||||
"sprint_ids": [
|
||||
"S1",
|
||||
"S2",
|
||||
"S3",
|
||||
"S4",
|
||||
"S5",
|
||||
"S6",
|
||||
"S7",
|
||||
"S8"
|
||||
],
|
||||
"metric_ids": [
|
||||
"M1",
|
||||
"M2",
|
||||
"M3",
|
||||
"M4",
|
||||
"M5",
|
||||
"M6",
|
||||
"M7"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,468 @@
|
||||
{
|
||||
"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
|
||||
},
|
||||
{
|
||||
"module": "faisabilite/generator",
|
||||
"ci_job": "faisabilite-gen-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": 7,
|
||||
"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
|
||||
}
|
||||
],
|
||||
"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": 1,
|
||||
"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": "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)"
|
||||
}
|
||||
],
|
||||
"n_modules": 5,
|
||||
"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
|
||||
}
|
||||
],
|
||||
"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": 2,
|
||||
"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
|
||||
}
|
||||
],
|
||||
"artifacts": [],
|
||||
"out_of_scope": [
|
||||
{
|
||||
"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": 2,
|
||||
"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": "out_of_scope",
|
||||
"modules": [],
|
||||
"artifacts": [],
|
||||
"out_of_scope": [
|
||||
{
|
||||
"item": "builds Expo 54 + submit App Store #32 / Play Store — aucune fabrication en repo",
|
||||
"source": "roadmap Sprint 5 · Mobile (L56-57) — builds & submissions hors repo · CLAUDE.md #8"
|
||||
}
|
||||
],
|
||||
"n_modules": 0,
|
||||
"all_modules_gated": true,
|
||||
"all_artifacts_exist": true,
|
||||
"has_evidence": false
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
Reference in New Issue
Block a user