From 1a4813c67f7f3b4d1d76666bf831cdcb40af5cdb Mon Sep 17 00:00:00 2001 From: Claude Code DTP Worker Date: Thu, 30 Jul 2026 20:02:51 +0000 Subject: [PATCH] =?UTF-8?q?[DTP-Worker]=20Sprint=208=20=C2=B7=20buffer=20L?= =?UTF-8?q?75=20=C2=B7=20Fiche=20agent=20Publiciste=20cross-linke=20son=20?= =?UTF-8?q?livrable=20in-repo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Audit cohérence des 13 AGENT.md (grep -c 05_deliverables_mvp) : publiciste = seul agent possédant un vrai module in-repo gaté (publiciste/ · 23 tests · job publiciste-tests) à n'en cross-linker aucun (0), vs pairs >=3. Meme defaut que faisabilite corrige session 36. + section 'Livrable Publiciste reellement produit' (table Module/Sprint/Role/CLI/Job CI/Tests · toutes cellules verifiees) : CLI publiciste.py {parse,validate,generate,run} (--help) · 23 tests (grep + regression) · job au gate (ci.yml) · Sprint 2 source README+GAP §3.13 (pas un n° roadmap qui ne nomme pas le module) · contrat projets_master.json attribue au Faisabilite Agent (source unique #5) · auto-score 95/100 cite depuis README L79. Anti-invention #6 : aucun prix/positionnement fabrique · fixtures data_room = entrees hors auto-score · publication vente.otov7.com hors perimetre VPS #8. check_docs EXIT 0 (0 lien casse · 5 liens resolvent) · guard_constraints EXIT 0 · regression inchangee 534 tests verts (doc-only 0 code) · publiciste/AGENT.md links 0->5. Co-Authored-By: Claude Opus 4.8 (1M context) --- 03_agents/publiciste/AGENT.md | 26 +++++++++++++++++++ 05_activity_log/2026-07-30.md | 48 +++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/03_agents/publiciste/AGENT.md b/03_agents/publiciste/AGENT.md index 535b439..a73dd21 100644 --- a/03_agents/publiciste/AGENT.md +++ b/03_agents/publiciste/AGENT.md @@ -82,6 +82,32 @@ data_room/PXX/ ────► parser.py (extraction) ────► projets_m 4. Watch inotify sur `data_room/*/40_llm_outputs/` (temps réel) 5. Backend Frappe DocType `Publiciste Log` pour audit trail +## Livrable Publiciste réellement produit (`05_deliverables_mvp/publiciste/`) + +Les « Composants à créer » ci-dessus décrivent le runtime **VPS** cible +(`otoia/capabilities/publiciste.py`, systemd/inotify · hors périmètre worker · `CLAUDE.md` #8). +Leur **contrepartie commitée et testable** existe déjà en-repo (périmètre worker) : le scaffold +du générateur, gaté en CI. C'est le **seul module net-neuf** du mandat, sur le chemin critique +(cf. [`../../05_deliverables_mvp/GAP_ANALYSIS_SPRINT1.md`](../../05_deliverables_mvp/GAP_ANALYSIS_SPRINT1.md) §3.13). + +| Module | Sprint | Rôle | Entrée CLI | Job CI | Tests | +|---|---|---|---|---|---| +| [`publiciste/`](../../05_deliverables_mvp/publiciste/README.md) | 2 (README `scaffold (Sprint 2)` · GAP §3.13) | **Pipeline site public** : `data_room/PXX/` → `projets_master.json` → `index.html` luxury (`lib/parser.py` extraction · `lib/validator.py` schéma · `lib/generator.py` + `lib/branding.py` rendu dark+doré `#0a0a12`/`#f0b429` · `templates/site_public.html.tmpl`) | `publiciste.py parse\|validate\|generate\|run` | `publiciste-tests` | 23 | + +Le contrat d'échange `projets_master.json` n'est **pas** défini ici mais par le Faisabilité Agent +([`../../05_deliverables_mvp/faisabilite/projets_master.schema.json`](../../05_deliverables_mvp/faisabilite/projets_master.schema.json), +Sprint 1) — source unique, zéro duplication (#5). Le Publiciste en est le **consommateur** : +`lib/parser.py` extrait, `lib/validator.py` valide contre ce schéma avant tout rendu. + +**Anti-invention (#6)** : le générateur ne **fabrique aucun prix ni positionnement** — chaque +valeur du site est extraite d'une faisabilité `data_room/PXX/` réelle ; un projet dont la +faisabilité est incomplète est marqué « En développement », jamais complété par invention (règles +absolues ci-dessus). Aucun `index.html` de production n'est commité ici : seuls le générateur, le +template et ses **fixtures d'entrée** (`fixtures/data_room/P01…P02`, échantillons d'entrée du +parser — **pas** des livrables, d'où leur exclusion volontaire de l'auto-score) le sont ; la +publication réelle sur `vente.otov7.com` s'exécute côté VPS (#8). Auto-score du livrable : +**95/100** ([`README.md`](../../05_deliverables_mvp/publiciste/README.md)). + ## Livrable Sprint (mandat 8 semaines) - **Semaine 2** : Setup base + parser faisabilité → JSON - **Semaine 3** : Générateur HTML → vente.otov7.com diff --git a/05_activity_log/2026-07-30.md b/05_activity_log/2026-07-30.md index 49fe456..267ede3 100644 --- a/05_activity_log/2026-07-30.md +++ b/05_activity_log/2026-07-30.md @@ -1280,3 +1280,51 @@ data_room + ce spec restent en soft-warn attendu) · `ci/guard_constraints.sh` E inchangée 534 tests verts (docs uniquement). **Auto-score 4Big** : 96/100. + +--- + +## Session 20260730_195844 · Buffer S8 · Fiche agent Publiciste cross-linke son livrable in-repo + +**Contexte** : roadmap fonctionnellement complète — 13/13 agents documentés, 21/21 +suites régression vertes (534 tests · 0 échec), `guard_constraints` / `check_docs` / +`validate_json` tous verts. Sprint 8 « Bufer corrections finales » (roadmap L75). + +**Tâche (finition/cohérence · pas de doc-churn)** : audit de cohérence des 13 +`03_agents/*/AGENT.md` sur le pattern « cross-link vers ses livrables in-repo » +(`grep -c 05_deliverables_mvp`). Résultat : **`publiciste` = 0 lien** — seul agent +possédant un **vrai module in-repo gaté** (`05_deliverables_mvp/publiciste/`, 23 +tests, job `publiciste-tests`) à n'en cross-linker **aucun**, alors que ses pairs en +ont ≥3 (faisabilite 4 depuis session 36, qa/crm/devops/seo 3, etc.). Un lecteur +n'avait aucun chemin de la mission de l'agent vers l'artefact commité qui la réalise. +Défaut réel identique à celui corrigé pour `faisabilite` (session 36) — les 4 agents +restants à faible lien (`bim`/`ifc_speckle`/`rendu`/`mobile`) sont légitimement +VPS-only, sans livrable in-repo propre. + +**Fichier modifié** (doc pure · 0 code) — `03_agents/publiciste/AGENT.md` : + section +**« Livrable Publiciste réellement produit »** (table calquée sur le pattern des pairs : +Module · Sprint · Rôle · Entrée CLI · Job CI · Tests), toutes cellules **vérifiées** : +- [`publiciste/`] — Sprint 2 (sourcé README `scaffold (Sprint 2)` + GAP §3.13, **pas** + d'un n° de ligne roadmap qui ne nomme pas le module — anti-invention) · pipeline + `data_room/PXX/` → `projets_master.json` → `index.html` luxury · CLI + `publiciste.py {parse,validate,generate,run}` (lu via `--help`) · job `publiciste-tests` + (lu dans `ci.yml`, présent au `gate`) · **23 tests** (`grep -c def test_` + confirmé + `regression run`). +- Contrat `projets_master.json` explicitement attribué au **Faisabilité Agent** + (`faisabilite/projets_master.schema.json`, Sprint 1) — source unique, zéro + duplication (#5) ; le Publiciste en est le consommateur. +- Auto-score **95/100** cité depuis `publiciste/README.md` L79 (non fabriqué). + +**Anti-invention (#6)** : la section rappelle que le générateur ne fabrique aucun +prix/positionnement (extraction faisabilité réelle uniquement) ; qu'aucun `index.html` +de prod n'est commité (publication VPS · #8) ; et explicite pourquoi les fixtures +`fixtures/data_room/P01…P02` restent **hors auto-score** (échantillons d'entrée du +parser, pas des livrables — cohérent avec les soft-warns `check_docs` attendus). + +**Vérifs** : `ci/check_docs.sh` EXIT 0 (**0 lien interne cassé** — les 5 cibles +`../../05_deliverables_mvp/*` [README publiciste, GAP_ANALYSIS §3.13, schema faisabilité] +résolvent) · `ci/guard_constraints.sh` EXIT 0 · régression inchangée 534 tests verts +(doc-only, 0 code). `publiciste/AGENT.md` : links 0 → **5**. + +**Hors périmètre worker (VPS · #8)** : néant (changement doc-only en-repo). + +**Auto-score 4Big** : 96/100.