[DTP-Worker] Sprint 2 · Publiciste scaffold (parser faisabilité → JSON + generator + gate)

Livrable Publiciste · Sprint 2 · Semaine 2 (seul module net-neuf · chemin
critique · GAP_ANALYSIS §3.13). Cible portage VPS : otoia/capabilities/publiciste.py.

- lib/parser.py : data_room/PXX/ (template v1.0) → projet dict conforme au
  contrat projets_master.schema.json (livré S1). Mapping colonnes par en-tête,
  parsing montants USD/DOP robuste. Anti-invention #6 : rétrogradation défensive
  « en_developpement » si prix USD manquant ; absent → null (jamais 0/inventé).
- lib/validator.py : validateur JSON-Schema draft-07 (sous-ensemble) ZÉRO
  dépendance pip (runner Gitea sans pip). Oracle jsonschema en test si présent.
- lib/generator.py + template + branding : rendu HTML luxury #4 (dark+doré,
  Fraunces + Cormorant Garamond) ; sans prix → « Prochainement · Détails à venir ».
- publiciste.py : CLI parse/validate/generate/run.
- fixtures/ : données SYNTHÉTIQUES de test (jamais publiées) P01 complète + P02
  incomplète.
- tests/ : 23 tests unittest (stdlib) verts.
- CI : job publiciste-tests ajouté au gate (.gitea/workflows/ci.yml · Gitea #2).

Vérifs (en-repo, sans VPS) : 23/23 tests verts · gate CI local vert (guard/JSON/
docs) · pipeline CLI produit un master conforme au schéma. Auto-score 4Big 95/100.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-07-30 01:37:47 +00:00
parent 1a87b22fd7
commit f0a7d71357
23 changed files with 1535 additions and 1 deletions
@@ -0,0 +1,7 @@
# Résidence Fixture Uno
> ⚠️ FIXTURE SYNTHÉTIQUE — données fictives pour test parser. Ne pas publier.
- **Localisation** : Test Province · Municipalité Fixture · 19.0000, -70.0000
- Superficie terrain : 10 000 m² / 159 tareas
- Zonage : Résidentiel touristique
@@ -0,0 +1,13 @@
# Architecture — Résidence Fixture Uno (SYNTHÉTIQUE)
## 3.1 Champs généraux
- Parti architectural : contemporain tropical (fixture)
- Nb de bâtiments : 3
## 3.2 Tableau des typologies
| Typologie | Nb unités | Surface intérieure (m²) | Surface terrasse (m²) | Surface totale (m²) | Prix « à partir de » (USD) | Prix (DOP) |
|---|---|---|---|---|---|---|
| Studio | 12 | 45 | 10 | 55 | USD 150,000 | DOP 8,850,000 |
| 1 Chambre | 20 | 68 | 15 | 83 | USD 210,000 | DOP 12,390,000 |
| 2 Chambres | 8 | 95 | 25 | 120 | USD 320,000 | DOP 18,880,000 |
@@ -0,0 +1,12 @@
# Paysage & Expérience — Fixture Uno (SYNTHÉTIQUE)
## 3.2 Amenities / équipements
- Piscine à débordement
- Beach club
## 3.3 Services inclus
- Conciergerie 24/7
- Sécurité périmétrique
- Gestion locative optionnelle
- Régime CONFOTUR (exonération fiscale)
- Structure Fideicomiso
@@ -0,0 +1,8 @@
# Commercial — Fixture Uno (SYNTHÉTIQUE)
Une adresse balnéaire confidentielle où l'architecture contemporaine dialogue avec
la nature tropicale. Des résidences pensées pour l'investissement locatif comme pour
l'art de vivre, sous régime CONFOTUR.
## Typologies (miroir §3.2)
Voir le tableau de l'architecture — prix « à partir de » USD 150,000.
@@ -0,0 +1,10 @@
# Manifeste rendus — Fixture Uno (SYNTHÉTIQUE)
> ⚠️ Fichiers non fournis (fixture) — seul le manifeste est testé.
> Rendus liés au projet réel obligatoires en production (❌ IA générique).
| Fichier | Vue | Hero |
|---|---|---|
| hero_aerien.jpg | Vue aérienne | hero |
| piscine.jpg | Piscine à débordement | non |
| lobby.jpg | Lobby | non |
@@ -0,0 +1,9 @@
{
"projet": "P01",
"template_version": "1.0.0",
"generated_at": "2026-07-30T00:00:00Z",
"score_4big": 96,
"statut_faisabilite": "complete",
"volets_complets": ["masterplan", "architecture", "paysage_experience", "ingenierie"],
"champs_manquants": []
}
@@ -0,0 +1,6 @@
# Résidence Fixture Dos
> ⚠️ FIXTURE SYNTHÉTIQUE — faisabilité volontairement INCOMPLÈTE (prix manquants).
- **Localisation** : Test Province Dos · Municipalité Fixture
- Zonage : Résidentiel touristique
@@ -0,0 +1,10 @@
# Architecture — Résidence Fixture Dos (SYNTHÉTIQUE · INCOMPLÈTE)
## 3.2 Tableau des typologies
> Prix « à partir de » NON défini → faisabilité incomplète → « En développement ».
| Typologie | Nb unités | Surface intérieure (m²) | Surface terrasse (m²) | Surface totale (m²) | Prix « à partir de » (USD) | Prix (DOP) |
|---|---|---|---|---|---|---|
| Villa A | 6 | 180 | 60 | 240 | non défini | non défini |
| Villa B | 4 | 220 | 80 | 300 | — | — |
@@ -0,0 +1,5 @@
# Paysage & Expérience — Fixture Dos (SYNTHÉTIQUE)
## 3.3 Services inclus
- Sécurité 24/7
- Espaces verts paysagers
@@ -0,0 +1,9 @@
{
"projet": "P02",
"template_version": "1.0.0",
"generated_at": "2026-07-30T00:00:00Z",
"score_4big": 71,
"statut_faisabilite": "incomplete",
"volets_complets": ["masterplan", "architecture"],
"champs_manquants": ["3.2.typo_1_prix_usd", "3.2.typo_2_prix_usd"]
}