[DTP-Worker 20260803_133718] Fix drift · inventaire-vs-filesystem AGENTS_EXISTING_ASSETS · 5 assets pyc-only non annotés « (compilé pyc) » alignés sur la convention propre du doc (L18-19/68) + réalité filesystem vérifiée · 2 items (chat.py absent vs CLAUDE.md canonique · projets_editor API VPS) surfacés à Michel
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1025,3 +1025,66 @@ reste **ouverte** ([[docstring-vs-code-drift]]) pour tout code NEUF, mais le par
|
||||
**Réalisé.** **Zéro fichier de production modifié** (aucune dérive réelle). Audit + vérification
|
||||
manuelle des 2 faux positifs + inspection du gate ecf. `./run_ci.sh` = **32 PASS · 0 FAIL · 0 SKIP**
|
||||
(inchangé). Session de vérification → commit log-only (rythme établi, cf. `f0827a7`).
|
||||
|
||||
---
|
||||
|
||||
## Session `20260803_133718` · QA drift-hunt — inventaire d'assets vs réalité filesystem (classe NEUVE) · 1 fix
|
||||
|
||||
**État d'entrée.** Tous sprints livrés ; `./run_ci.sh` = **32 PASS · 0 FAIL · 0 SKIP**. Artefacts vivants
|
||||
concordants (`regression_run.json` = 24 suites / 624 ; `quality_report.json` = 24 modules). La classe
|
||||
[[docstring-vs-code-drift]] a été balayée exhaustivement (parc `*_gen.py` propre, sessions `123715`/`130717`).
|
||||
Cette session ouvre une **surface plus fraîche, jamais auditée** : les **documents prose racine**
|
||||
(README, `PORTAIL_*`, `DIRECTIVE_*`, `AGENTS_EXISTING_ASSETS.md`, `AUTORISATIONS_*`) — leurs claims
|
||||
factuels **présent-de-l'indicatif** vs état réel du repo / filesystem.
|
||||
|
||||
**Méthode.** Agent `Explore` read-only (extraction des claims présent-tense) + **vérification manuelle
|
||||
filesystem** de chaque candidat (jamais confiance aveugle à l'agent). Distinctions appliquées
|
||||
(cf. [[prose-facts-vs-numeric-drift]], [[mobile-runtime-actual-vs-rebuild-target]]) : snapshots
|
||||
historiques append-only ≠ dérive · cibles roadmap ≠ runtime actuel · claims sur API VPS live
|
||||
non-réfutables par simple absence de source.
|
||||
|
||||
**Candidats agent écartés (faux positifs après vérif manuelle) :**
|
||||
- **README.md, CLAUDE.md, `AUTORISATIONS_*`, la plupart des `DIRECTIVE_*`** = propres (24/24, 624, 13
|
||||
agents, constantes CLAUDE.md tous vérifiés exacts).
|
||||
- **`AGENTS_EXISTING_ASSETS.md` L18-19 « (compilé pyc) »** = **exact** : les `.py` sources sont absents
|
||||
mais `/opt/oto/__pycache__/oto_agent_faisabilite.cpython-310.pyc` (+ orchestrateur) **existent**.
|
||||
L'agent avait raté le `__pycache__`. Annotation fidèle.
|
||||
- **`DIRECTIVE_RENDUS_EXISTANTS` L36 « Rendus totaux par projet »** = **NON touché**. Directive
|
||||
**écrite par Michel** décrivant le `data_room` **externe** ; le recompte de l'agent (`60_photos_site/`
|
||||
top-level) ≠ la méthodo du doc (agrège plusieurs sous-dossiers + `static/renders` + `portal/img`).
|
||||
Réécrire les chiffres de Michel sur une base de comptage ambiguë = invention → **exclu** (garde-fou
|
||||
« ne pas écraser un doc-source sur base incertaine »).
|
||||
- **`PORTAIL_BANCABLES` L12 « 3.4 MB »** vs 3.3M réel = arrondi cosmétique, hors périmètre (fichier VPS
|
||||
externe) → non touché.
|
||||
|
||||
**Dérive RÉELLE confirmée & corrigée (classe neuve : inventaire-vs-filesystem).** La **convention
|
||||
propre du doc** (L18-19, L68 annotent « (compilé pyc) » les assets dont seul le `.pyc` subsiste) était
|
||||
appliquée de façon **incohérente** : classification filesystem exhaustive des 22 chemins `.py` du doc →
|
||||
**5 entrées pyc-only NON annotées** (source absente au chemin exact indiqué, seul le `.pyc` présent) :
|
||||
L20 `oto_module_etudes_faisabilite_real`, L21 `oto_module_execution_faisabilite`,
|
||||
L22 `oto_module_faisabilites_pages`, L23 `oto_module_faisabilites_viewer`, L59 `oto_module_mobile_api`.
|
||||
**Correctif : ajout de « (compilé pyc) »** sur ces 5 lignes — alignement sur la **convention propre du
|
||||
doc** + la **réalité filesystem vérifiée** (strictement analogue au fix `financement_bancaire`/`2e4ff2d`
|
||||
qui alignait une docstring sur la convention de ses pairs). **Zéro invention.** Assets `.py` avec source
|
||||
réelle (`aec.py`, `knowledge.py`, `prompt_engine.py`, `otoia_batch_projets.py`, `gen_renders_flux.py`,
|
||||
`mobile_download.py`, `seed_mobile_rbac.py`, `confotur_application.py`, `bim_compras.py`, `ifc_to_glb.py`,
|
||||
`worker_tasks_queue.py`, `executive_hero_flux.py`) = laissés sans annotation (correct).
|
||||
|
||||
**⚠️ Deux items SURFACÉS à Michel (NON édités — contredisent une source d'autorité / non-réfutables) :**
|
||||
1. **`otoia/capabilities/chat.py` (L102) est ABSENT** au chemin indiqué (ni `.py` ni `.pyc`), **alors
|
||||
que CLAUDE.md le liste comme capability OTOIA canonique** (« aec.py + knowledge.py + prompt_engine.py
|
||||
+ chat.py »). Incohérence doc-inventaire ↔ constitution → je **ne réécris pas** l'inventaire pour
|
||||
contredire CLAUDE.md ; **à trancher par Michel** (chat.py à recréer, ou capability à retirer de la
|
||||
liste canonique ?). Note : le footer L128 du même doc **omet déjà** chat.py (« aec + knowledge +
|
||||
prompt_engine » seulement) — inventaire déjà auto-incohérent sur ce point.
|
||||
2. **`config/projets_editor.py` (L127) « (API GET/POST déjà en place)»** — source absente au chemin,
|
||||
**mais** le claim porte sur une **API VPS live**, non réfutable par la seule absence de source
|
||||
in-`/opt/oto` (peut tourner déployée ailleurs) → **non touché**, signalé pour confirmation.
|
||||
|
||||
**Gate.** `AGENTS_EXISTING_ASSETS.md` est référencé par `ci/check_readme_claims.sh` **uniquement** pour
|
||||
l'endpoint RunPod (§1) et des titres — **aucune annotation `(compilé pyc)` n'est pinnée**. `./run_ci.sh`
|
||||
en clôture = **32 PASS · 0 FAIL · 0 SKIP** (inchangé).
|
||||
|
||||
**Réalisé.** 1 fichier prose (5 lignes annotées, convention + réalité). 2 items surfacés à Michel.
|
||||
Classe inventaire-vs-filesystem = **nouvelle**, distincte de docstring-vs-CODE et README-counts ;
|
||||
reste **ouverte** pour les claims filesystem des docs racine.
|
||||
|
||||
Reference in New Issue
Block a user