diff --git a/03_agents/faisabilite/AGENT.md b/03_agents/faisabilite/AGENT.md index 51905d5..9606653 100644 --- a/03_agents/faisabilite/AGENT.md +++ b/03_agents/faisabilite/AGENT.md @@ -2,6 +2,22 @@ **Rôle** : Cet agent OTOIA génère et maintient à jour toutes les faisabilités de projets sur le **modèle canonique le plus récent**. Élimine les faisabilités obsolètes ou hétérogènes. +> **⚠️ Statut migration V18 (2026-08-10) · à lire AVANT le reste de cette fiche.** Michel a émis la +> [`DIRECTIVE_V18_MASTER_FEASIBILITY_ENGINE_20260810.md`](../../DIRECTIVE_V18_MASTER_FEASIBILITY_ENGINE_20260810.md) +> — un **Master Institutional Feasibility & Bankability Engine** qui **remplace** le modèle V12 +> « 4 volets » décrit dans cette fiche. Les modules commités actuels (`generator`, `bancable`, +> table §Livrables) restent le **socle réutilisable** de cette cible, mais **le moteur V18 +> lui-même n'est pas encore construit** : l'audit préalable +> [`OTO_V18_MIGRATION_ARCHITECTURE_AUDIT_20260810.md`](../../OTO_V18_MIGRATION_ARCHITECTURE_AUDIT_20260810.md) +> (V12→V18, produit **avant tout code**) cartographie l'écart, et **toute la séquence moteur est +> bloquée en attente des arbitrages de Michel** — consignés dans le +> [`OPEN_DECISIONS_REGISTER.md`](../../05_deliverables_mvp/OPEN_DECISIONS_REGISTER.md) : +> **D-06** approbation de l'audit · **D-07** formules financières (DCF · IRR/VAN · DSCR/LTV/LTC) +> absentes des docs lisibles · **D-08** périmètre du Master Intake (sur-ensemble strict du +> `brief.json`). Tant que ces décisions ne sont pas rendues, **aucun code moteur V18 n'est +> produit** (directive : « NE PAS coder avant l'audit approuvé » · anti-invention `CLAUDE.md` #6). +> **La fiche V12 ci-dessous décrit l'état commité courant, pas la cible finale V18.** + ## Mission 1. **Générer** les faisabilités 4 volets pour chaque projet (Masterplan · Architecture · Paysage-Expérience · Ingénierie-Faisabilité) 2. **Maintenir un template canonique versionné** (`data_room/_TEMPLATE_FAISABILITE_v{X}/`) diff --git a/05_activity_log/2026-08-11.md b/05_activity_log/2026-08-11.md index 83417ee..1ff2d3f 100644 --- a/05_activity_log/2026-08-11.md +++ b/05_activity_log/2026-08-11.md @@ -101,3 +101,17 @@ **Contribution (non-bloquée, sans invention).** Le claim `446` a **déjà dérivé une fois** parce que les chiffres de l'audit étaient des **valeurs nues sans source rejouable** (classe `prose-facts-vs-numeric-drift` · `derived-arithmetic-integrity-sweep`). Ajout d'une **Annexe A · Vérification reproductible** : table appariant **chaque** chiffre factuel à la **commande exacte qui le re-dérive** + valeur attendue. Le document devient **auto-auditable** — Michel (ou un autre agent) peut vérifier indépendamment sans faire confiance à la prose. Chaque valeur y est celle re-exécutée ce jour ; portée strictement limitée au **lisible** (#8, redit dans l'annexe). Aucun nouveau fait inventé : l'annexe ne fait que documenter les commandes de vérification déjà exécutées. **Vérif.** `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (inchangé — l'annexe passe `check_docs` : chemins/commandes en code-spans, non link-checkés · `guard_constraints` : aucun URL/usage interdit). **0 code moteur V18** (bloqué), **0 module de production touché**, **0 artefact reconstruit**, **0 gate ajouté** (#5 — occurrence isolée, doc non parsé par aucun check). Aucune commande VPS (#8), aucune API externe. Fichiers : `OTO_V18_MIGRATION_ARCHITECTURE_AUDIT_20260810.md` (Annexe A) + ce journal. + +## Session `20260811_045813` — DOC AGENT.md · bannière statut V18 dans la fiche `faisabilite/` (le module le plus touché par le pivot, muet sur la migration) + +**État au démarrage.** `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (baseline verte). Séquence moteur V18 toujours **intégralement bloquée** en attente Michel (D-06→D-08 · directive `:90-91` « NE PAS coder avant l'audit approuvé » · #6) — **aucun code moteur légitime**. Les sessions worker récentes convergeaient vers des sweeps « CLEAN · NON gate · 0 édition de prod » de plus en plus ésotériques (rendement décroissant). Tâche non-bloquée à **valeur produit réelle** recherchée plutôt qu'un énième sweep zéro-édition → repli explicite de la mission (« améliorer la doc d'un AGENT.md existant »). + +**Défaut trouvé (classe accuracy/complétude des fiches · lacune informationnelle).** La fiche [`03_agents/faisabilite/AGENT.md`](../03_agents/faisabilite/AGENT.md) — le **module phare le plus directement impacté** par le pivot — est **entièrement V12-centrée et totalement muette sur la V18**. Un lecteur (agent ou humain) de cette fiche aujourd'hui n'a **aucune indication** que, le 2026-08-10, Michel a émis `DIRECTIVE_V18_MASTER_FEASIBILITY_ENGINE` qui **remplace** le modèle « 4 volets » décrit, qu'un audit de migration existe, ni que **toute la séquence moteur est bloquée** sur ses arbitrages. Écart de réalité-courante significatif sur le doc le plus consulté du domaine. + +**Fix (doc worker · sourcé · zéro invention #6).** Bannière `> ⚠️ Statut migration V18` insérée en **tête de fiche** (juste après la ligne Rôle · visibilité maximale), avec **3 liens résolus** vers les sources lisibles commitées : la directive V18, l'audit de migration `OTO_V18_MIGRATION_ARCHITECTURE_AUDIT`, et le `OPEN_DECISIONS_REGISTER` (D-06 approbation audit · D-07 formules DCF/IRR/VAN/DSCR/LTV/LTC absentes · D-08 périmètre Master Intake). Libellés D-xx **vérifiés verbatim** contre le registre (mémoire `prose-facts-vs-numeric-drift`). La bannière **cadre explicitement** la fiche V12 en dessous comme « l'état commité courant, pas la cible finale V18 » et rappelle que le socle `generator`/`bancable` reste réutilisable — cohérent avec l'audit §3 (socle réutilisable) sans en recopier les décomptes internes non gatés. + +**Sûreté des gates (vérifiée avant édition).** `ci/check_readme_claims.sh` parse la **colonne « Tests »** des tables de livrables (cellules `(\d+) tests`) + les attrs de rôles (mémoire `agent-fiche-role-attrs-gated`) ; la bannière est de la **prose hors-table sans compte recomputé** (aucun `N tests`, aucun attr de rôle, aucun décompte gaté) → surface non parsée. `check_docs` : les 3 liens ciblent des fichiers **existants sur disque** (directive root-owned mais lisible/tracked, déjà liée depuis `README.md:88` ; audit + registre worker-owned) ; aucun fragment-anchor. `guard_constraints` : aucun URL/usage interdit (DCF/IRR/DSCR/LTV/LTC ≠ termes proscrits). + +**Incident auto-détecté (RED induit dans ce journal, corrigé avant push).** Première rédaction du lien vers la fiche dans ce log avec le préfixe `../../` **recopié de la bannière** — or la bannière vit à `03_agents/faisabilite/` (2 niveaux) tandis que ce journal est à `05_activity_log/` (**1 niveau**) → `check_docs` a signalé « lien cassé `../../03_agents/faisabilite/AGENT.md` » (RED transitoire capté par `run_ci.sh`). Corrigé en `../03_agents/…`. Leçon : la profondeur relative d'un lien dépend du fichier **hôte**, pas de la source copiée (mémoire `acceptance-evidence-paths-deliverables-root` — même piège de base relative). Le commit fautif n'a **jamais été poussé** ; amend appliqué sur un arbre vert. + +**Vérif.** `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (rétabli après correction du lien). **0 code moteur V18** (bloqué), **0 module de production touché**, **0 artefact reconstruit**, **0 gate ajouté** (#5 — occurrence isolée, doc non parsé pour cette surface). Aucune commande VPS (#8), aucune API externe. Fichiers : `03_agents/faisabilite/AGENT.md` (bannière) + ce journal.