[DTP-Worker 20260805_091204] FIX de COUVERTURE doc : la fiche MOBILE omettait son propre livrable in-repo gaté crm→mobile/app_config (générateur de config app · 5 fichiers out · job mobile-app-config-tests dans gate.needs · CLI build|validate · 22 tests) — elle n'ancrait le rôle que sur RBAC + acceptance S5 (« deux artefacts in-repo »), jamais sur le générateur
Dernier des 22 modules livrés orphelin de fiche (grep -rl sur 03_agents/*/AGENT.md). Mirroir exact du pattern CRM 071201 : sous-section dédiée + 1 ligne de table AUTO-GATÉE par 3 gates indépendants de check_readme_claims (résolution par cible de lien mobile/app_config ∈ plan.suites) — cellule Tests 22==source · job CI mobile-app-config-tests==ci.yml · verbes CLI build|validate==subparsers. Pas de piège des 2 cadres de sprint : S5 dans les deux (acceptance evidence_modules S5 · roadmap ## SPRINT 5 ligne Mobile L56) → cité L56. 3 énumérations « ancrage in-repo » réconciliées (sinon contradiction avec la nouvelle section), toutes sourcées. 0 out/ régénéré (git status = fiche seule) · 0 gate ajouté (#5) · 0 édition d'autorité · 0 chiffre inventé (#6, 22 lu dans regression_plan) · CI 33 PASS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,14 +22,16 @@ mandat, qui reste un dépôt de **planification et de contrats**. Il n'existe do
|
||||
**aucun binaire, `.ipa`/`.aab` ni bundle OTA diffable commité ici**, et ce
|
||||
document ne prétend pas le contraire : le prétendre serait une invention (#6,
|
||||
« documenter du code sans vérifier son existence courante » est interdit). Le
|
||||
livrable in-repo de l'agent est la **refonte des modules VPS existants** ci-dessous
|
||||
et le **rôle RBAC** qui les gouverne, validés par auto-vérification côté serveur
|
||||
(HTTP + builds EAS).
|
||||
livrable in-repo de l'agent est le **générateur de config app** `mobile/app_config`
|
||||
(§ dédiée ci-dessous · la config **versionnable** de l'app, pas le binaire), la
|
||||
**refonte des modules VPS existants** ci-dessous et le **rôle RBAC** qui les
|
||||
gouverne, validés par auto-vérification côté serveur (HTTP + builds EAS).
|
||||
|
||||
## Points de contact **réellement commités** dans ce dépôt (vérifiés)
|
||||
Contrairement aux binaires (hors-repo), le rôle de cet agent est **ancré dans deux
|
||||
Contrairement aux binaires (hors-repo), le rôle de cet agent est **ancré dans des
|
||||
artefacts in-repo vérifiables** — la preuve que sa place dans la plateforme est
|
||||
contractualisée, pas inventée :
|
||||
contractualisée, pas inventée. Outre son **générateur de config** `mobile/app_config`
|
||||
(§ dédiée ci-dessous), **deux cross-références** l'ancrent côté RBAC et QA :
|
||||
|
||||
| Contact in-repo (vérifié) | Ce qu'il fixe |
|
||||
|---|---|
|
||||
@@ -41,12 +43,32 @@ contractualisée, pas inventée :
|
||||
> **volontairement pas** rattaché au Workspace `OTO Ventes` ni à la liste
|
||||
> `roles_allowed` du chat OTOIA — ces surfaces couvrent les portails
|
||||
> construction/vente. Ne pas revendiquer ici un contact workspace/chat qui
|
||||
> n'existe pas ; l'ancrage in-repo réel est le **rôle RBAC** + la **row QA S5**.
|
||||
> n'existe pas ; l'ancrage in-repo réel est son **générateur de config**
|
||||
> `mobile/app_config` (§ ci-dessous), le **rôle RBAC** et la **row QA S5**.
|
||||
>
|
||||
> Ces deux fichiers existent et sont couverts par la CI (`rbac-tests`,
|
||||
> `qa-acceptance-tests`, dans le `gate`). Le rôle est **spécifié en-repo** ; son
|
||||
> **exécution** (EAS/stores/OTA) reste hors repo (#8).
|
||||
|
||||
## Générateur de config app **in-repo** · `mobile/app_config` (livrable versionnable, gaté CI)
|
||||
|
||||
Au-delà des deux cross-références RBAC/QA ci-dessus, l'agent Mobile a un **livrable
|
||||
in-repo à part entière** : le générateur `05_deliverables_mvp/mobile/app_config/`.
|
||||
Il ne produit **ni binaire ni bundle** (ceux-là restent hors repo · #8) mais la
|
||||
**config versionnable** de l'app compagnon — dérivée à 100 % des sources RBAC/spec
|
||||
(anti-invention #6 ; identifiants de store `null · a_confirmer` tant que Michel ne
|
||||
les fournit pas). C'est le pendant mobile des modules générateurs des autres agents,
|
||||
gaté dans le CI comme eux :
|
||||
|
||||
| Module | Sprint | Rôle | Entrée CLI | Job CI | Tests |
|
||||
|---|---|---|---|---|---|
|
||||
| [`app_config/`](../../05_deliverables_mvp/mobile/app_config/README.md) | 5 (roadmap L56) | Config **versionnable** de l'app compagnon (pas le binaire · #8) : transforme `rbac_50_roles.json` + `mobile_spec.json` + specs portails/seo en **5 fichiers** — `app_config.json` (objet Expo `app.config` · thème dark+doré #4 · locales seo · identifiants store `null · a_confirmer`), `eas_build.json`, `role_navigation.json` (1 onglet par **portail rôle**, surface RBAC exacte), `store_listing.json` (fiche FR/EN/ES), `MANIFEST.json` (traçabilité) ; sortie déterministe re-générable | `app_config_gen.py build\|validate` | `mobile-app-config-tests` | 22 |
|
||||
|
||||
Cette ligne est **auto-gatée** par `ci/check_readme_claims.sh` (résolution par cible
|
||||
de lien, `mobile/app_config ∈` `plan.suites`) : cellule Tests `22 == source`, job CI
|
||||
`mobile-app-config-tests == ci.yml`, verbes CLI `build|validate == subparsers`. Toute
|
||||
dérive du compte/job/CLI mordra désormais.
|
||||
|
||||
## Modules OTOV7 réels refactorés (source : `AGENTS_EXISTING_ASSETS.md §8`)
|
||||
|
||||
| Module VPS (hors-repo) | Fonction | État roadmap |
|
||||
|
||||
@@ -1,5 +1,57 @@
|
||||
# Activity Log · 2026-08-05 · Claude Code DTP Worker
|
||||
|
||||
## Session 091204 · FIX de COUVERTURE doc — la fiche **Mobile** omettait son propre **livrable in-repo gaté** (`mobile/app_config`) : elle n'ancrait le rôle que sur RBAC + acceptance, jamais sur le générateur de config app (22 tests · job CI · CLI) → sous-section dédiée + ligne de table **auto-gatée** (3 gates) + 3 énumérations « ancrage in-repo » réconciliées · 0 édition d'autorité · 0 gate ajouté · 0 chiffre inventé
|
||||
|
||||
**Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **33 PASS · 0 FAIL · 0 SKIP**, arbre
|
||||
propre, roadmap intégralement livrée/gatée (Sprint 8 · launch-readiness). Un Explore read-only sur la
|
||||
classe *docstring-vs-code drift* (récurrente, cf. [[docstring-vs-code-drift]]) n'a **rien remonté de
|
||||
concret** (le « 14 invariants » de `chat_otoia` est correct : les invariants 8 et 9 sont assertés à la
|
||||
fois globalement ET par-mount → 14 numéros distincts, pas une dérive). Classe saturée. Pivot vers la
|
||||
**complétude des fiches** — la classe qui a produit le FIX réel de la session 071201 (CRM omettait son
|
||||
4e module `financement_bancaire`) : *completeness ≠ accuracy* ([[fiche-accuracy-audit-closed]]).
|
||||
|
||||
**Le finding — diff `05_deliverables_mvp/*/` vs les 13 fiches.** Un `grep -rl <module> 03_agents/*/AGENT.md`
|
||||
sur les 22 modules livrés a remonté **un seul orphelin** : `mobile/app_config` → référencé par **AUCUNE**
|
||||
fiche (les 21 autres sont couverts ≥1×). Or `05_deliverables_mvp/mobile/app_config/` est un module
|
||||
générateur **réel, commité et gaté** : 5 fichiers `out/*.json` (`app_config.json`/`eas_build.json`/
|
||||
`role_navigation.json`/`store_listing.json`/`MANIFEST.json`), suite `mobile-app-config-tests` **dans
|
||||
`gate.needs`**, CLI `build|validate`, 22 méthodes de test (`regression_plan.suites[mobile/app_config].
|
||||
test_methods`). C'est le **livrable in-repo propre de l'agent Mobile** (docstring : « Livrable Mobile de
|
||||
la roadmap Sprint 5 »). La fiche `03_agents/mobile/AGENT.md` ne le mentionnait **nulle part** — elle
|
||||
énumérait ses ancrages in-repo comme *uniquement* le **rôle RBAC** + la **row QA acceptance S5**
|
||||
(« ancré dans **deux** artefacts in-repo vérifiables »), en omettant son générateur le plus direct.
|
||||
Ce n'était pas une inexactitude (les 2 ancres RBAC/QA sont justes) mais une **incomplétude** : le
|
||||
livrable in-repo le plus concret de l'agent était absent de sa propre fiche.
|
||||
|
||||
**Pas de piège des deux cadres de sprint (contrairement à 071201/081202).** `mobile/app_config` est
|
||||
Sprint **5** dans les DEUX cadres : `acceptance_spec` le classe en `evidence_modules` de **S5**
|
||||
(`roadmap_line 58`) et la roadmap `## SPRINT 5` porte la ligne **Mobile L56** « Rebuild Expo 54 +
|
||||
submit App Store #32 + Play Store ». J'ai cité **L56** (ligne Mobile, celle qu'ancre la docstring
|
||||
`l.56-57`). Aucun conflit à trancher ([[agent-internal-vs-roadmap-sprint-frames]]).
|
||||
|
||||
**La correction (mirroir exact du pattern CRM 071201).** (a) Nouvelle sous-section « Générateur de
|
||||
config app **in-repo** · `mobile/app_config` » + **1 ligne de table** identique en structure à celle du
|
||||
CRM (`Module | Sprint | Rôle | Entrée CLI | Job CI | Tests`). (b) **3 réconciliations minimales** des
|
||||
énumérations « ancrage in-repo » qui, sans elles, contrediraient la nouvelle section : le « livrable
|
||||
in-repo est [refonte VPS] et [rôle RBAC] » (ajout du générateur), « ancré dans **deux** artefacts »
|
||||
(→ « des artefacts … Outre son générateur … **deux cross-références** RBAC/QA »), et la note d'honnêteté
|
||||
« l'ancrage réel est RBAC + QA S5 » (ajout du générateur). Toutes sourcées, aucune n'invente.
|
||||
|
||||
**Auto-gatage confirmé — le finding devient opposable au merge (3 gates indépendants de
|
||||
`check_readme_claims.sh`, résolution par cible de lien `mobile/app_config ∈ plan.suites`).** `run_ci`
|
||||
final montre les 3 dents mordre sur la nouvelle ligne (`AGENT.md:65`) : (a) cellule Tests `22 == source
|
||||
(22)`, (b) job CI `mobile-app-config-tests == ci.yml`, (c) verbes CLI `build|validate == subparsers`.
|
||||
Une future dérive du compte/job/CLI **mordra** désormais — comme pour la ligne CRM financement.
|
||||
|
||||
**Discipline.** Le `build` du module n'est **pas** régénéré (je n'ai touché aucun `out/`) → `git status`
|
||||
ne montre **que** `03_agents/mobile/AGENT.md`. **0 gate ajouté** (surface déjà couverte par row_re/job/CLI
|
||||
· #5) · **0 édition d'autorité** (roadmap, spec, directive, module intouchés) · **0 chiffre inventé**
|
||||
(#6 : 22 lu dans `regression_plan`, 5 fichiers lus dans `out/` + docstring, Sprint 5/L56 lu dans
|
||||
`acceptance_spec` + roadmap) · aucune commande VPS (#8) · aucun `git clean`. <!-- ci-allow : mention de l'interdit, jamais exécuté -->
|
||||
|
||||
**Bilan.** 1 fiche agent complétée (sous-section + 1 ligne auto-gatée + 3 réconciliations) · **CI 33
|
||||
PASS · 0 FAIL · 0 SKIP** · le dernier module livré orphelin de fiche est désormais documenté et opposable.
|
||||
|
||||
## Session 081202 · FIX RÉEL — le module `crm/financement_bancaire` s'auto-étiquetait « **Sprint 5** » dans une **citation roadmap-globale** (`roadmap L52`) alors que L52 ∈ **Sprint 4** : label corrigé S5→S4 sur ses 2 seules surfaces (README + docstring gen) · directive Michel INTACTE · 0 gate · 0 chiffre inventé
|
||||
|
||||
**Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **33 PASS · 0 FAIL · 0 SKIP**, arbre propre,
|
||||
|
||||
Reference in New Issue
Block a user