[DTP-Worker] Sprint 1 · Template Faisabilité canonique v1.0 (débloque gap P02/P03/P05/P07)

- TEMPLATE_FAISABILITE_CANONIQUE_v1.0.md : 4 volets + champs obligatoires + bloc anti-gap prix/typologies
- version.schema.json : schéma _META/version.json (SemVer, score 4Big, verrou complete>=95)
- projets_master.schema.json : contrat d'extraction consommé par Publiciste
- Paramètres canoniques CLAUDE.md intégrés (3% / 8.5% / 52% · USD+DOP · Cardnet · Letter US)
- GAP_ANALYSIS §7 : critère template v1.0 -> done · daily report mis à jour

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-07-29 23:59:38 +00:00
parent e63be08b3a
commit 0b2c97916a
5 changed files with 456 additions and 1 deletions
@@ -0,0 +1,75 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://oto.dtp/schemas/faisabilite/version.schema.json",
"title": "Faisabilité _META/version.json",
"description": "Métadonnées de versioning d'une faisabilité canonique. Un fichier par projet dans data_room/PXX/_META/version.json.",
"type": "object",
"required": [
"projet",
"template_version",
"generated_at",
"score_4big",
"statut_faisabilite",
"volets_complets",
"champs_manquants"
],
"additionalProperties": false,
"properties": {
"projet": {
"type": "string",
"pattern": "^P0[1-9]$",
"description": "Code projet canonique (P01..P09)."
},
"template_version": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
"description": "Version SemVer du template canonique utilisé (ex: 1.0.0)."
},
"generated_at": {
"type": "string",
"format": "date-time",
"description": "Horodatage ISO-8601 UTC de génération."
},
"score_4big": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Score qualité 4Big. Doit être >= 95 pour statut 'complete' publiable."
},
"statut_faisabilite": {
"type": "string",
"enum": ["complete", "en_developpement", "incomplete"],
"description": "complete = publiable (score>=95, champs 🔴 remplis). Sinon Publiciste affiche 'En développement'."
},
"volets_complets": {
"type": "array",
"items": {
"type": "string",
"enum": ["masterplan", "architecture", "paysage_experience", "ingenierie"]
},
"uniqueItems": true,
"description": "Liste des 4 volets validés."
},
"champs_manquants": {
"type": "array",
"items": { "type": "string" },
"description": "Identifiants des champs 🔴 non renseignés (ex: '3.2.typo_1_prix_usd'). Vide si complete."
},
"archive_precedente": {
"type": ["string", "null"],
"description": "Chemin _ARCHIVES/PXX_v{N}_YYYYMMDD/ de la version remplacée (null si première génération)."
}
},
"allOf": [
{
"if": { "properties": { "statut_faisabilite": { "const": "complete" } } },
"then": {
"properties": {
"score_4big": { "minimum": 95 },
"champs_manquants": { "maxItems": 0 },
"volets_complets": { "minItems": 4 }
}
}
}
]
}