[DTP-Worker] Sprint 7/8 · Livrable démo : prompteur Markdown (out/run_sheet.md)
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>
This commit is contained in:
@@ -1,5 +1,64 @@
|
||||
# Activity Log · 2026-07-31 · Claude Code DTP
|
||||
|
||||
## Session `20260731_040004` · Sprint 7/8 · Livrable démo : ajout du **prompteur Markdown** (`out/run_sheet.md`) — le support texte lisible manquait au « scénario démo prêt à jouer »
|
||||
|
||||
**Tâche** : **Sprint 7 l.68** (« CRM + Faisabilité : Scénarios démo P07 banquier ·
|
||||
P05 client ready ») × **Sprint 8 buffer**. Après audit : les 7 gates CI étaient
|
||||
verts, 15 promesses `in_repo`, faisabilité 4 volets complète. Le seul livrable démo
|
||||
(`demo/scenarios`) ne produisait qu'un **run-sheet JSON machine** — aucun support
|
||||
**lisible par un présentateur**. Son propre README plafonnait l'auto-score à 96/100
|
||||
en qualifiant le « prompteur » de **hors périmètre (VPS)**. Or rendre un Markdown
|
||||
in-repo depuis le JSON est exactement le pattern déjà utilisé par `faisabilite`
|
||||
(rend des `.md`) — **aucune écriture VPS**. Gap réel, borné, à forte valeur.
|
||||
|
||||
### Livraison
|
||||
|
||||
- **`scenlib/render.py`** (nouveau) — `render_markdown(run_sheet) -> str` **pur et
|
||||
déterministe**. Ne lit **que** le run-sheet (déjà résolu, déjà anti-inventé) :
|
||||
aucun chiffre nouveau, aucun recalcul (anti-invention #6). `_fmt` : bool→oui/non,
|
||||
liste→jointe, placeholder survivant rendu entre back-ticks (jamais promu en nombre).
|
||||
- **`demo_scenario_gen.py build`** émet désormais `out/run_sheet.md` en plus des deux
|
||||
JSON. Le rendu est un prompteur par scénario : en-tête (audience/projet/durée/
|
||||
objectif), puis chaque beat en table « À dire | Chiffre | Source (preuve) » —
|
||||
chaque ligne trace son pointeur RFC 6901 amont.
|
||||
- **`out/run_sheet.md`** (nouveau, commité) — 2 scénarios · 12 beats · 24 min cumulés.
|
||||
|
||||
### Compatibilité architecture (vérifiée AVANT d'écrire)
|
||||
|
||||
- **HANDOFF 4Big** (`q4lib/criteria.py:91`) ne `json.load` que les fichiers `.json` —
|
||||
un `.md` dans `out/` est **ignoré**, aucune casse du critère.
|
||||
- **`ci/check_artifacts.sh`** diffe **tout** fichier produit par `build` → il exige
|
||||
désormais `run_sheet.md` **commité + reproductible byte-for-byte** (render
|
||||
déterministe ⇒ OK). Preuve de morsure implicite : fichier non suivi ⇒ gate exit 1
|
||||
(constaté puis corrigé par `git add`).
|
||||
|
||||
### Consommateurs régénérés (dérive maîtrisée)
|
||||
|
||||
- +7 méthodes test (`TestRenderMarkdown`) → **régression 551→558 tests** (22 suites,
|
||||
PASS) : `regression run` + `build` régénérés (`regression_run/plan/MANIFEST.json`).
|
||||
- `demo/scenarios` : README `5011→5575` octets + `32→39` test_* → **`quality_report.json`
|
||||
régénéré** (evidence DOC+TESTS) · verdict **PASS · 22/22 · min 100** inchangé.
|
||||
- `03_agents/qa/AGENT.md` : verdict agrégé `551→558` (gate `check_readme_claims` vert).
|
||||
- README démo : Fichiers (+`render.py`, +`run_sheet.md`), chaîne de valeur, « hors
|
||||
périmètre » (seul l'**habillage visuel** reste VPS), auto-score **96→97**.
|
||||
|
||||
### Vérifs
|
||||
|
||||
| Contrôle | Résultat |
|
||||
|---|---|
|
||||
| 7 gates CI (`guard`/`json`/`docs`/`artifacts`/`regression`/`readme_claims`/`ci_integrity`) | ✅ exit 0 |
|
||||
| Tests démo | ✅ 39/39 |
|
||||
| Tests audit_4big | ✅ 34/34 |
|
||||
| Régression exhaustive | ✅ 22/22 suites · 558 tests · PASS |
|
||||
| `run_sheet.md` reproductible (build frais == commité) | ✅ (gate artifacts) |
|
||||
| Arbre de travail | ✅ 0 fichier untracked |
|
||||
|
||||
**Hors périmètre worker (VPS · #8)** : habillage visuel deck / page démo `otov7.com` +
|
||||
branchement `data_room` réel — inchangé. Le prompteur texte est le rendu de référence
|
||||
in-repo que ce visuel habillera.
|
||||
|
||||
**Auto-score 4Big** : 97/100.
|
||||
|
||||
## Session `20260731_033001` · Buffer S8 · « Vert trompeur » : la fiche QA affichait un « verdict agrégé courant » PÉRIMÉ (21/534) en se disant « jamais compté à la main » — hors du périmètre du gate README
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer L75** (DevOps CI/CD · QA). Roadmap fonctionnellement
|
||||
|
||||
Reference in New Issue
Block a user