[DTP-Worker 20260803_043644] Sprint 5/8 · doc · Canal 2 daily_reports remis à jour : snapshot stakeholder du jour s'arrêtait à l'addendum 030641 (fiche store) → 2 livrables manquants ajoutés (P1 workflow CI/CD mobile-build.yml 033642 + fix doc-vs-CODE Mobile 040643) + table launch-readiness fin de journée. Chiffres re-dérivés d'artefacts (569/569 · 22/22 · 15/15). Gate-neutre (daily_reports non gaté) · run_ci.sh 30 PASS 0 FAIL
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -395,3 +395,44 @@ pas re-dérivé par un gate de compte ; le glob README n'est pas un lien Markdow
|
||||
**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP**. **Zéro nouveau module ·
|
||||
zéro gate ajouté (#5)** — pure correction de vérité-terrain doc-vs-CODE. Aucune commande
|
||||
touchant au VPS (#8) · aucun `git clean` <!-- ci-allow : mention de l'interdit absolu, jamais exécuté -->.
|
||||
|
||||
## Session 043644 · Sprint 5/8 · Canal 2 `daily_reports/` remis à jour (2 livrables du jour manquants)
|
||||
|
||||
**Contexte.** `./run_ci.sh` au démarrage : **30 PASS · 0 FAIL · 0 SKIP**, arbre propre.
|
||||
Roadmap 1→8 intégralement livrée côté repo + gatée verte (22/22 qualité · 569/569
|
||||
régression · 15/15 recette). Pas de module à créer (#5 interdit l'invention). Périmètre
|
||||
worker (repo seul · pas de VPS #8). Audit du canal stakeholder
|
||||
`daily_reports/2026-08-03.md`.
|
||||
|
||||
**Constat (dérive de couverture, réelle).** Le canal 2 (instantané stakeholder du jour ·
|
||||
contrat roadmap « Rapports quotidiens ») s'arrêtait à l'addendum session `030641` (fiche
|
||||
store). Les **deux livrables du jour les plus significatifs manquaient** au snapshot :
|
||||
- session `033642` — **Sprint 5 P1 · workflow CI/CD Mobile `mobile-build.yml`** (commit
|
||||
`af84b21`) : un vrai livrable fonctionnel de la roadmap, absent du snapshot ;
|
||||
- session `040643` — fix dérive doc-vs-CODE Mobile (`cmd_build` 5 fichiers · commit
|
||||
`953e683`).
|
||||
Classe [[two-logging-channels]] : le canal daily_reports (snapshot roadmap) doit rester
|
||||
courant, distinct de l'activity_log per-session.
|
||||
|
||||
**Réalisé.** Deux addenda ajoutés à `daily_reports/2026-08-03.md`, 100 % sourcés :
|
||||
- addendum `033642` : workflow `mobile-build.yml` (3 jobs `preflight`/`build-ios`/
|
||||
`build-android` · gardes `if secrets.EAS_TOKEN != '' && vars.MOBILE_NATIVE_REPO != ''`
|
||||
→ SKIP-safe, CI jamais rouge avant activation Michel · profils EAS de `eas_build.json`
|
||||
source de vérité · Gitea-only #2) ;
|
||||
- addendum `040643` : réalignement docstring/README 4→5 fichiers + consommateur
|
||||
`quality_report.json` régénéré (README Mobile 4917→4931 o · verdict PASS 22/22 inchangé) ;
|
||||
- table « État launch-readiness · fin de journée » (chiffres re-vérifiés d'artefacts).
|
||||
|
||||
**Chiffres re-dérivés (aucun saisi à la main).** `regression_run.json.totals` = 22 suites ·
|
||||
**569 ran · 569 passed · 0/0/0** · `quality_report.json` verdict **PASS · 22 modules** ·
|
||||
`acceptance_matrix.json` **15/15 in_repo** · README Mobile **4931 octets** (`wc -c`) ·
|
||||
workflow **3 jobs** (`grep`). Tous concordants.
|
||||
|
||||
**Sûreté du changement.** `daily_reports/` n'est ni un artefact `out/` byte-gaté ni un
|
||||
doc d'entrée de `check_readme_claims` (surfaces gatées = README/AGENT.md, pas les
|
||||
rapports quotidiens) → édition **gate-neutre**. Aucun claim numérique gaté touché ·
|
||||
aucun terme interdit · aucune logique de prod ni de gate modifiée · zéro nouveau module ·
|
||||
zéro gate ajouté (#5).
|
||||
|
||||
**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP**. Aucune commande touchant
|
||||
au VPS (#8) · aucun `git clean` <!-- ci-allow : mention de l'interdit absolu, jamais exécuté -->.
|
||||
|
||||
@@ -129,3 +129,65 @@ invariants** (déterminisme = 15). Schéma étendu (`store_listing` + `$ref`
|
||||
|
||||
**Hors périmètre (inchangé · #8).** `eas build`/`eas submit`, assets binaires
|
||||
(icône/splash 1024²), credentials Apple/Google → agent Mobile (VPS/stores).
|
||||
|
||||
---
|
||||
|
||||
## Addendum · Session `20260803_033642` · Sprint 5 Mobile P1 — workflow CI/CD `mobile-build.yml` (livrable net)
|
||||
|
||||
**Tâche exécutée (livrable fonctionnel, périmètre worker).** Création du workflow
|
||||
Gitea Actions [`.gitea/workflows/mobile-build.yml`](../../.gitea/workflows/mobile-build.yml)
|
||||
— action **P1 · CI/CD Mobile** explicite de `DIRECTIVE_MOBILE_STORES_20260803.md`
|
||||
(« Trigger sur push `main` ou tag `v*` · Job iOS/Android `eas build --profile
|
||||
production --non-interactive` »). Deuxième workflow du repo à côté de `ci.yml`, même
|
||||
runner Gitea (`ubuntu-latest`) — **jamais GitHub** (`CLAUDE.md` #2).
|
||||
|
||||
**Design activation-différée (#6/#8 · zéro credential inventé).** 3 jobs :
|
||||
`preflight` (toujours vert · vérifie la présence de la config EAS versionnée
|
||||
`out/eas_build.json` + rapporte l'état des secrets, sans jamais les logger) puis
|
||||
`build-ios` (App Store #32) et `build-android` (Play Store), **tous deux gardés
|
||||
`if: secrets.EAS_TOKEN != '' && vars.MOBILE_NATIVE_REPO != ''`** → **SKIP** tant que
|
||||
Michel n'a pas fourni le token expo.dev + le dépôt Gitea du code natif Expo. **Le CI
|
||||
n'est donc JAMAIS rendu rouge** avant activation. Aucun identifiant fabriqué : token,
|
||||
repo natif et credentials Apple/Google restent des secrets/variables `a_confirmer`,
|
||||
cohérents avec les champs `null · a_confirmer` du livrable mobile.
|
||||
|
||||
**Source de vérité versionnée.** Le workflow n'invoque que les profils EAS
|
||||
(`development`/`preview`/`production`) de `out/eas_build.json` — le code natif Expo
|
||||
vit dans un dépôt séparé (`/opt/oto/mobile/native/` · Expo 51 → cible 54 roadmap
|
||||
l.56), **cloné au run** depuis `vars.MOBILE_NATIVE_REPO`, jamais recopié ici.
|
||||
|
||||
**Gate-neutre.** Fichier de config CI (hors `out/` byte-gaté, hors `ci/*.sh`) →
|
||||
`./run_ci.sh` **30 PASS · 0 FAIL · 0 SKIP** inchangé. Le README Mobile documente le
|
||||
workflow (table périmètre + § CI/CD). **Zéro nouveau module · zéro gate ajouté (#5).**
|
||||
|
||||
---
|
||||
|
||||
## Addendum · Session `20260803_040643` · Sprint 5 Mobile — fix dérive doc-vs-CODE `cmd_build`
|
||||
|
||||
**Correctif de vérité-terrain (classe `docstring-vs-code-drift`, ungated).**
|
||||
`cmd_build` écrit **5** fichiers (`app_config`, `eas_build`, `role_navigation`,
|
||||
`store_listing`, `MANIFEST` — `app_config_gen.py:239-243`), mais deux surfaces de doc
|
||||
décrivaient encore **4**, le `store_listing.json` (ajouté après coup en session
|
||||
`030641`) y étant omis : docstring `app_config_gen.py:20` (« les **4** fichiers » vs
|
||||
énumération l.11-17 qui liste bien 5) + glob `README.md` § Utilisation
|
||||
(`store_listing` absent). Réalignés sur **5**.
|
||||
|
||||
**Consommateur régénéré (byte-repro · `artifact-reproducibility-gate`).** L'édition
|
||||
du README a fait dériver le byte-count DOC de
|
||||
[`qa/audit_4big/out/quality_report.json`](../qa/audit_4big/out/quality_report.json)
|
||||
(README Mobile 4917 → 4931 octets) → régénéré ; verdict **PASS · 22/22 ≥ 95 (min
|
||||
100)** inchangé (1 insertion / 1 suppression). `./run_ci.sh` **30 PASS · 0 FAIL**.
|
||||
|
||||
## État launch-readiness · fin de journée (inchangé · 100 % sourcé)
|
||||
|
||||
| Dimension | Valeur | Verdict | Source commitée |
|
||||
|---|---|---|---|
|
||||
| Qualité 4Big | **22/22 modules à 100/100** (seuil 95) | `PASS` | [`qa/audit_4big/out/quality_report.json`](../qa/audit_4big/out/quality_report.json) |
|
||||
| Régression (run) | **22 suites · 569 ran · 569 passés · 0/0/0** | `PASS` | [`qa/regression/out/regression_run.json`](../qa/regression/out/regression_run.json) |
|
||||
| Recette roadmap | **15/15 promesses** `status=in_repo` | `true` | [`qa/acceptance/out/acceptance_matrix.json`](../qa/acceptance/out/acceptance_matrix.json) |
|
||||
| CI/CD Mobile (P1) | workflow `mobile-build.yml` · 3 jobs · SKIP-safe sans `EAS_TOKEN` | vert | [`.gitea/workflows/mobile-build.yml`](../../.gitea/workflows/mobile-build.yml) |
|
||||
| Miroir local | `run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** | vert | [`run_ci.sh`](../../run_ci.sh) |
|
||||
|
||||
**Hors périmètre (inchangé · #8).** Exécution serveur `eas build`/`eas submit` (attend
|
||||
`EAS_TOKEN` Michel + `MOBILE_NATIVE_REPO`), déploiement production VPS → agents
|
||||
Mobile/DevOps.
|
||||
|
||||
Reference in New Issue
Block a user