aebe9b7ba9
Le seul livrable démo (demo/scenarios) ne produisait qu'un run-sheet JSON machine — aucun support lisible par un présentateur, alors que le Sprint 7 vise un scénario « prêt à jouer ». Rendu Markdown in-repo depuis le JSON = même pattern que faisabilite (rend des .md), zéro écriture VPS. - scenlib/render.py : render_markdown() PUR/déterministe, ne lit que le run-sheet (déjà anti-inventé), aucun chiffre nouveau (#6). - build émet out/run_sheet.md (prompteur : par beat, table « À dire | Chiffre | Source (preuve) » traçant le pointeur RFC 6901 amont). - Compat vérifiée : HANDOFF 4Big ne json.load que les .json (ignore .md) ; check_artifacts diffe tout fichier build → md commité + reproductible. - Consommateurs régénérés : régression 551→558 (22 suites PASS) ; quality_report.json (README 5011→5575 o · 32→39 test_*) PASS 22/22 ; 03_agents/qa/AGENT.md 551→558 ; README démo auto-score 96→97. - 7 gates verts · 39 tests démo · 34 tests audit · arbre propre. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
283 lines
5.5 KiB
JSON
283 lines
5.5 KiB
JSON
{
|
|
"matrix": "OTO QA · Matrice de régression exhaustive",
|
|
"version": "1.0",
|
|
"self_module": "qa/regression",
|
|
"suites": [
|
|
{
|
|
"id": "crm.commissions",
|
|
"path": "crm/commissions",
|
|
"expected_methods": 25,
|
|
"ran": 25,
|
|
"passed": 25,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "crm.dossier_vente",
|
|
"path": "crm/dossier_vente",
|
|
"expected_methods": 31,
|
|
"ran": 31,
|
|
"passed": 31,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "crm.workflow_vente",
|
|
"path": "crm/workflow_vente",
|
|
"expected_methods": 25,
|
|
"ran": 25,
|
|
"passed": 25,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "demo.scenarios",
|
|
"path": "demo/scenarios",
|
|
"expected_methods": 39,
|
|
"ran": 39,
|
|
"passed": 39,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "devops.deploy_runbook",
|
|
"path": "devops/deploy_runbook",
|
|
"expected_methods": 29,
|
|
"ran": 29,
|
|
"passed": 29,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "faisabilite.bancable",
|
|
"path": "faisabilite/bancable",
|
|
"expected_methods": 22,
|
|
"ran": 22,
|
|
"passed": 22,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "faisabilite.generator",
|
|
"path": "faisabilite/generator",
|
|
"expected_methods": 16,
|
|
"ran": 16,
|
|
"passed": 16,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "fiscal.ecf_dgii",
|
|
"path": "fiscal/ecf_dgii",
|
|
"expected_methods": 39,
|
|
"ran": 39,
|
|
"passed": 39,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "frontend.chat_otoia",
|
|
"path": "frontend/chat_otoia",
|
|
"expected_methods": 31,
|
|
"ran": 31,
|
|
"passed": 31,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "frontend.portails",
|
|
"path": "frontend/portails",
|
|
"expected_methods": 19,
|
|
"ran": 19,
|
|
"passed": 19,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "legal.confotur",
|
|
"path": "legal/confotur",
|
|
"expected_methods": 44,
|
|
"ran": 44,
|
|
"passed": 44,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "mobile.app_config",
|
|
"path": "mobile/app_config",
|
|
"expected_methods": 17,
|
|
"ran": 17,
|
|
"passed": 17,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "publiciste",
|
|
"path": "publiciste",
|
|
"expected_methods": 23,
|
|
"ran": 23,
|
|
"passed": 23,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "qa.acceptance",
|
|
"path": "qa/acceptance",
|
|
"expected_methods": 31,
|
|
"ran": 31,
|
|
"passed": 31,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "qa.audit_4big",
|
|
"path": "qa/audit_4big",
|
|
"expected_methods": 34,
|
|
"ran": 34,
|
|
"passed": 34,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "qa.audit_5d",
|
|
"path": "qa/audit_5d",
|
|
"expected_methods": 37,
|
|
"ran": 37,
|
|
"passed": 37,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "rbac",
|
|
"path": "rbac",
|
|
"expected_methods": 10,
|
|
"ran": 10,
|
|
"passed": 10,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "rbac.apply_plan",
|
|
"path": "rbac/apply_plan",
|
|
"expected_methods": 16,
|
|
"ran": 16,
|
|
"passed": 16,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "rbac.fixtures_gen",
|
|
"path": "rbac/fixtures_gen",
|
|
"expected_methods": 11,
|
|
"ran": 11,
|
|
"passed": 11,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "rbac.roleprofile_gen",
|
|
"path": "rbac/roleprofile_gen",
|
|
"expected_methods": 11,
|
|
"ran": 11,
|
|
"passed": 11,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "rbac.userperm_gen",
|
|
"path": "rbac/userperm_gen",
|
|
"expected_methods": 12,
|
|
"ran": 12,
|
|
"passed": 12,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
},
|
|
{
|
|
"id": "seo",
|
|
"path": "seo",
|
|
"expected_methods": 36,
|
|
"ran": 36,
|
|
"passed": 36,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0,
|
|
"ok": true,
|
|
"returncode": 0
|
|
}
|
|
],
|
|
"totals": {
|
|
"suites": 22,
|
|
"green": 22,
|
|
"red": 0,
|
|
"ran": 558,
|
|
"passed": 558,
|
|
"failures": 0,
|
|
"errors": 0,
|
|
"skipped": 0
|
|
},
|
|
"verdict": "PASS"
|
|
}
|