[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:
Claude Code DTP Worker
2026-07-30 12:12:22 +00:00
parent 58ed555db0
commit 5d9ea5687d
22 changed files with 2281 additions and 19 deletions
@@ -0,0 +1,188 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://oto-enterprise-os-dtp/qa/acceptance.schema.json",
"title": "Matrice d'acceptation / traçabilité MVP (roadmap → livrable → preuve)",
"description": "Contrat de sortie de acceptance_gen.py. Validé par le validateur maison Publiciste (zéro pip) dans le job CI qa-acceptance-tests. Mappe chaque promesse roadmap (livrables de sprint + métriques succès MVP) vers sa preuve gated (module CI) ou un hors-périmètre sourcé. Aucun chiffre métier fabriqué : les nombres des énoncés sont des citations verbatim de la roadmap.",
"type": "object",
"additionalProperties": false,
"required": ["matrix", "manifest", "verdict"],
"properties": {
"matrix": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/row" }
},
"verdict": { "type": "boolean" },
"manifest": {
"type": "object",
"additionalProperties": false,
"required": [
"generated_from",
"reference_cadre",
"roadmap_ref",
"cible_portage",
"self_module",
"counts",
"coverage",
"roadmap"
],
"properties": {
"generated_from": { "type": "string", "minLength": 1 },
"reference_cadre": { "type": "string", "minLength": 1 },
"roadmap_ref": { "type": "string", "minLength": 1 },
"cible_portage": { "type": "string", "minLength": 1 },
"self_module": { "type": "string", "const": "qa/acceptance" },
"counts": {
"type": "object",
"additionalProperties": false,
"required": [
"sprint_deliverables",
"mvp_metrics",
"deliverables_total",
"in_repo",
"out_of_scope_full",
"gated_modules",
"cited_modules",
"out_of_scope_items"
],
"properties": {
"sprint_deliverables": { "type": "integer", "minimum": 1 },
"mvp_metrics": { "type": "integer", "minimum": 1 },
"deliverables_total": { "type": "integer", "minimum": 1 },
"in_repo": { "type": "integer", "minimum": 0 },
"out_of_scope_full": { "type": "integer", "minimum": 0 },
"gated_modules": { "type": "integer", "minimum": 1 },
"cited_modules": { "type": "integer", "minimum": 0 },
"out_of_scope_items": { "type": "integer", "minimum": 0 }
}
},
"coverage": {
"type": "object",
"additionalProperties": false,
"required": [
"ci_modules_count",
"cited_modules_count",
"bijective",
"missing_in_matrix",
"phantom_evidence",
"partition_ok",
"sprint_partition",
"unknown_sprint",
"missing_artifacts",
"self_module_excluded"
],
"properties": {
"ci_modules_count": { "type": "integer", "minimum": 0 },
"cited_modules_count": { "type": "integer", "minimum": 0 },
"bijective": { "type": "boolean" },
"missing_in_matrix": { "type": "array", "items": { "type": "string" } },
"phantom_evidence": { "type": "array", "items": { "type": "string" } },
"partition_ok": { "type": "boolean" },
"sprint_partition": {
"type": "array",
"items": { "$ref": "#/definitions/partition" }
},
"unknown_sprint": { "type": "array", "items": { "type": "string" } },
"missing_artifacts": { "type": "array", "items": { "type": "string" } },
"self_module_excluded": { "type": "string", "const": "qa/acceptance" }
}
},
"roadmap": {
"type": "object",
"additionalProperties": false,
"required": ["sprint_ids", "metric_ids"],
"properties": {
"sprint_ids": { "type": "array", "items": { "type": "string" } },
"metric_ids": { "type": "array", "items": { "type": "string" } }
}
}
}
}
},
"definitions": {
"row": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"kind",
"sprint",
"roadmap_line",
"statement",
"status",
"modules",
"artifacts",
"out_of_scope",
"n_modules",
"all_modules_gated",
"all_artifacts_exist",
"has_evidence"
],
"properties": {
"id": { "type": "string", "minLength": 1 },
"kind": { "type": "string", "enum": ["sprint_deliverable", "mvp_metric"] },
"sprint": { "type": ["string", "null"] },
"roadmap_line": { "type": "integer", "minimum": 1 },
"statement": { "type": "string", "minLength": 1 },
"status": { "type": "string", "enum": ["in_repo", "out_of_scope"] },
"modules": {
"type": "array",
"items": { "$ref": "#/definitions/evmodule" }
},
"artifacts": {
"type": "array",
"items": { "$ref": "#/definitions/evartifact" }
},
"out_of_scope": {
"type": "array",
"items": { "$ref": "#/definitions/oos" }
},
"n_modules": { "type": "integer", "minimum": 0 },
"all_modules_gated": { "type": "boolean" },
"all_artifacts_exist": { "type": "boolean" },
"has_evidence": { "type": "boolean" }
}
},
"evmodule": {
"type": "object",
"additionalProperties": false,
"required": ["module", "ci_job", "gated"],
"properties": {
"module": { "type": "string", "minLength": 1 },
"ci_job": { "type": ["string", "null"] },
"gated": { "type": "boolean" }
}
},
"evartifact": {
"type": "object",
"additionalProperties": false,
"required": ["path", "exists"],
"properties": {
"path": { "type": "string", "minLength": 1 },
"exists": { "type": "boolean" }
}
},
"oos": {
"type": "object",
"additionalProperties": false,
"required": ["item", "source"],
"properties": {
"item": { "type": "string", "minLength": 1 },
"source": { "type": "string", "minLength": 1 }
}
},
"partition": {
"type": "object",
"additionalProperties": false,
"required": ["sprint", "expected", "cited", "missing", "extra", "exact"],
"properties": {
"sprint": { "type": "string", "minLength": 1 },
"expected": { "type": "array", "items": { "type": "string" } },
"cited": { "type": "array", "items": { "type": "string" } },
"missing": { "type": "array", "items": { "type": "string" } },
"extra": { "type": "array", "items": { "type": "string" } },
"exact": { "type": "boolean" }
}
}
}
}