Vues STAB — état live + instantanés datés

Page en trois parties : état live et instantané du 05/10 (régénérés par npm run stab-vues) puis instantané du 4 oct. 2026 22:13 (capture historique, non rafraîchie). Heures Europe/Paris.

0 · État live — mesuré le 5 oct. 2026, 08:09 Europe/Paris

Sondé maintenant : /readyz, tags git, file des lots, worktrees. Chaque chiffre est rejouable (source citée).

Live /readyz

4.0.22

Campagne STAB

13/13 livrés · reste 0

main

00af790

IndicateurValeurSource
Live /readyz4.0.22curl jah.vfg.lol/readyz
Dernier tagv4.0.22 · 5 oct. 2026, 07:07 · 1ddd87cgit for-each-ref
Tag précédentv4.0.21 · 5 oct. 2026, 05:20 · 63b3025git for-each-ref
Tag précédentv4.0.20 · 5 oct. 2026, 04:13 · 392cc57git for-each-ref
Tag précédentv4.0.19 · 5 oct. 2026, 01:32 · 36f18ccgit for-each-ref
main00af790git log origin/main
Campagne STAB13/13 livrésfile des lots
Livrés00 · 01 · 02 · 03 · 04 · 05 · 06 · 07A · 07B · 07C · 08 · 09 · 10file des lots
Restantsfile des lots
Worktrees en vol16 / 78 portent des commits hors maingit worktree list

Régénérer cet état : npm run stab-vues -- --out <chemin de cette page> (dépôt Jah).

0.bis · Compteurs — temps, CI, sessions

Mesuré depuis .metrics/runs.json (runs CI) et git log origin/main. Frontière « après fix » = fusion #281 (flake j2), 4 oct. 2026 ~21:11. Runs annulés exclus du taux d'échec.

Échecs CI — avant fix

38 % (16/42)

Échecs CI — après fix

31 % (15/49)

Durée médiane CI

6.7 min vs 6.3 min avant

FenêtreRuns terminésÉchecsMédianeCommits main
Avant fix (≤ 04/10 19:11Z)4216 (38 %)6.3 min—
Après fix (> 04/10 19:11Z)4915 (31 %)6.7 min—
2026-10-03308 (27 %)6.0 min125 commits
2026-10-043210 (31 %)3.4 min19 commits
2026-10-052913 (45 %)7.1 min88 commits

Débit de commits/jour (source git log) et taux d'échec CI par jour : « on développe mieux » se lit ici (moins de rouge, durée stable) — pas dans le nombre de runs, qui suit le nombre de PRs.

1 · Instantané du 5 oct. 2026 — releases & lots

Mesuré le 5 oct. 2026, 08:09 Europe/Paris : contenu réel des tags (git) croisé avec les lots livrés (file). Chaque release ci-dessous dit ce qui est parti dedans, pas ce que les notes racontent.

Live

4.0.22

Lots livrés

13/13 reste

Dernier tag

v4.0.22

TagPubliéSHALots STAB contenus
v4.0.92 oct. 2026, 06:417c5a05f—
v4.0.102 oct. 2026, 07:01fe00e45—
v4.0.112 oct. 2026, 23:20d2d9995—
v4.0.123 oct. 2026, 01:291080950—
v4.0.133 oct. 2026, 03:266ce8a8d—
v4.0.143 oct. 2026, 10:58943a31c—
v4.0.153 oct. 2026, 15:42b2ff9c4—
v4.0.163 oct. 2026, 17:356d8ceef—
v4.0.174 oct. 2026, 21:2192a0cde00
v4.0.184 oct. 2026, 21:38e0c885601 · 02 · 03
v4.0.195 oct. 2026, 01:3236f18cc04 · 05 · 06
v4.0.205 oct. 2026, 04:13392cc5707A · 07B · 07C · 08
v4.0.215 oct. 2026, 05:2063b302509
v4.0.225 oct. 2026, 07:071ddd87c10

Instantané régénéré par npm run stab-vues ; l'instantané du 04/10 ci-dessous reste archivé tel quel.

Instantané du 04/10 — capture temporelle

Les vues 1–8 ci-dessous sont l'instantané daté du 4 oct. 2026 22:13 (live 4.0.18, 4/13 lots). Conservées telles quelles : elles ne se rafraîchissent pas. Auteur git = FG ; Co-authored-by Cursor seulement dès 20:51. Lots 18:32–19:42 = autre session Cursor, sans trailer Cursor.

Impression « déjà 2ᵉ mise à jour / petit bugfix » : les notes 4.0.17 ne citent que Tope-là. Le débogage n’est pas un déblocage magique : 1 critère = 1 PR + ci:full obligatoire = file runners ; le flake j2 (E2E 1/3) rougissait toutes les PRs. Compression 01+02+03 dans #276 + fix #281 a débloqué deux releases rapides.

1 · Global — tout le projet

Campagne STAB 13 lots. Live sondé 21:42.

IndicateurValeur
Live /readyz4.0.18
Tag livee341006 · publié 21:39
Lots mergés / 134/13
%~31 % (400/13)
Reste04…06, 07A/B/C, 08…10 = 0 · file
Précédent live4.0.16 (03/10 17:37) · 4.0.17 (04/10 21:23, ~16 min avant 18)

2 · Temps de production du code (pas l’heure du commit)

Colonne principale = durée agent pour produire le code (mesurée dirty→commit / transcripts quand possible). Horloge début→fin en secondaire. mesuré = fenêtre datée ; estimé = début agent non daté. 00∥01 en parallèle (mur ≠ somme). Reprise 18:53 / vague 2 docs 19:05 = hors prod lot (relais).

Segment Temps prod code Preuve Horloge (Paris) SHA / PR
Plan Codex + explores ~3′ mesuré transcript e21aa2d0 18:25:38 → plan fichier 18:28 18:25→18:28 plan local (pas SHA)
Phase A docs ~4′ mesuré 18:28→commit 18:32:30 18:28→18:32 bd5c1e3 · #275
STAB-01 salons ~5′ mesuré 18:33→commit 18:38:26 · ∥ STAB-00 18:33→18:38 05aa20b · #276
STAB-00 appels ~6′ mesuré 18:33→commit 18:39:22 · ∥ STAB-01 18:33→18:39 8ba7202 · #277
STAB-03 palettes ~24′ mesuré STOP 2ᵉ compte 19:07 → commit principal 19:31:04 19:07→19:31 ab2a104 · #279
STAB-02 HUD ~11′ mesuré après 03 · commit 19:42:30 (séq. 03 puis 02) 19:31→19:42 1e6489b · #280
Fix flake j2 ~15′ estimé 2 commits 20:51→21:02 = 11′ span mesuré ; début agent non daté → ~15′ ~20:36→21:02 46edc49+50ca15a · #281

Somme prod code lots (hors plan/docs, 00∥01 comptés chacun) : 5+6+24+11+(~15) ≈ ~61′ · mur exclusif code session frise 6b = 70′ (18:32–19:42, inclut docs/relais intercalés). Soir j2+ship = autre mur (20:51→21:40).

3 · Releases / versions — contenu RÉEL des tags

C’est ça qui a surpris : 4.0.17 a l’air d’un mini-fix.

TagSHACommit / publiéDans le tag (git)Notes GH / CHANGELOG
v4.0.16 a750c36 03/10 17:35 / 17:37 Place en tipis (#271) W3-F tipis — fidèle
v4.0.17 02aafd0 21:21 / 21:23 j2 Tope-là #281 + STAB-00 #277 (appels). 20 fichiers, +274/−34. Seulement « Mini-jeu J2 · Tope-là ». STAB-00 absent des notes.
v4.0.18 e341006 21:38 / 21:39 STAB-01+02+03 (#276) + docs Phase A empilés. 39 fichiers, +1756/−70. Salons, HUD, palettes — fidèle. Pas STAB-00 (déjà en 17).

PR release #282 mergée 21:24 · #283 mergée 21:40. Écart publié 4.0.17 → 4.0.18 = 16 min.

4 · Lots — 00–03 vs flake

Échelle 13 : 0 / ~30 / ~60 / ~80 / 100. Hors 13 ≠ lot STAB.

Lot%Dans le lotPas le lot
STAB-00 100 2ᵉ appel sonne après raccrochage · live dès 4.0.17 · #277 #273 titre « main rouge CI » (issue CI, pas le critère)
STAB-01 100 Grille salons mobile · live 4.0.18 · code 18:38, mergé via #276 21:37 —
STAB-02 100 HUD Emotes+Plus · live 4.0.18 · #280 fermée sans merge, empilée dans #276 —
STAB-03 100 Palettes hors overflow · live 4.0.18 · #279 fermée, empilée dans #276 —
STAB-04…10 0 pas commencé · file —
j2 Tope-là hors 13 — Fix flake #281 : E2E 1/3 bloquait 275/276/277/279/280. Live 4.0.17.
Phase A docs hors 13 fiches STAB-00…10 #275 FULL vert puis fermée 21:30 (contenu dans #276)

5 · PR — ouvertes / fermées / mergées, FULL payés

PROuverteFinÉtatFULL
#273 issue 03/10 18:28 fermée 21:12 issue, pas une PR —
#275 docs 18:32 fermée 21:30 (pas mergée) CLOSED vert
#276 01 puis 01+02+03 18:38 mergée 21:37 MERGED 1ᵉ vague rouge (j2) · après pile vert
#277 STAB-00 18:39 mergée 21:19 MERGED 1ᵉ vague rouge · après #281 vert
#279 STAB-03 19:31 fermée 21:30 CLOSED rouge E2E 1/3 (payé, pas rejoué)
#280 STAB-02 19:42 fermée 21:30 CLOSED rouge E2E 1/3 (payé, pas rejoué)
#281 j2 20:52 mergée 21:11 MERGED vert
#282 release 4.0.17 21:22 mergée 21:24 MERGED déploiement tag · E2E FULL skip
#283 release 4.0.18 21:38 mergée 21:40 MERGED déploiement tag · E2E FULL skip · job live 4.0.18 vert

Overhead historique (avant j2, 5 FULL parallèles) — reste vrai comme leçon, pas l’état 21:42 :

5 PRs FULL en parallèle

Mur FG 76 min
Machine ~2h28

1 PR unique (après compression)

Mur FG ~7,5 min
Machine ~25 min

6 · Temps agentique — frises + camemberts

Import depuis l’outil manquant dans les vues 1–5 : visualiseur Jah « où on bute » (npm run metrics → .metrics/index.html, skill .agents/skills/metriques). Généré le 2026-10-04T19:45Z · 117 runs CI · 110 lots · 297 segments. Types du visualiseur : code / test / doc / ci / attente / rien (estimés : 20 min avant chaque commit). Pas de types séparés plan · orchestration · dispatch · deploy · CD — voir trous ci-dessous.

6a · Camembert projet (% temps estimé, visualiseur)

6b · Frise session du jour (mur réel 18:32→21:40 Paris)

Mesuré sur horodatages git/PR des vues 2 et 5 — pas l’estimation 20 min/commit du visualiseur.

dev 70′ vide 69′ fix+CI 28′ ship 21′
18:3219:4220:5121:1921:40

6c · Camembert session du jour (mur exclusif, mesuré)

Trous vs types demandés — le visualiseur n’a pas : plan, orchestration, dispatch, deploy, CD séparés (deploy/CD ≈ « ship » mesuré ici ; dispatch/orchestration ≈ hors segments git). « Attente » visualiseur = review/fusion, pas file runners. Pour frise interactive + filtres agent/modèle/partie + graphiques CI semaine : ouvrir ../.metrics/index.html (npm run metrics -- --serve).

7 · Critique vs fluide — où ça coule / où ça coince

Mur 18:25→21:40 (195 min) : premier prompt Codex collé à 18:25, pas l’estimation 20 min/commit. Couleurs = état du mur, pas des % de lots. Générateur npm run metrics non modifié (il n’a pas fluide/critique/vide).

fluide — commits / PR / merge / tag verts critique — file CI, flake, quota, doublon, 1 PR = 1 FULL vide — aucun commit agent, FULL encore rouge (heatmap) CI payée / file runners

Bande 1 = agent. Bande 2 = CI (file + flake j2 dès les 1ers FULL 18:38).

plan+00/01 ship+quota+STOP 02/03 vide 69′ j2 + 17/18
FULL × N + flake j2 + file ~23 min/vague FULL vert → tags
18:25 plan18:39 PRs19:07 STOP19:4220:51 j221:40
18:25:40:5519:10:25:40:5520:10:25:40:5521:10:25 Plan/docsA#275shipSTOP········pile STAB-00code#277FULLj2j2j2j2j2j2j2j2merge17 STAB-01code#276FULLj2j2j2j2j2j2j2j2·18 02/03···2×0302FULLfilefilefile·fermépile j2 flake·rougerougerougerougerougerougerougerougerougefix#281· Ship·pauseabortpausepausepausepausepausepausepause·1718

Cellules 15 min (dernière col. 21:25–21:40). « 2× » = doublon 19:03–19:07 : 2e compte et compte principal sur les mêmes worktrees stab-02/03.

2e compte Cursor — temps et progrès (mesuré transcripts)

Chat parent e21aa2d0 · créé 18:25:38 · dernière écriture 19:07:49. Pas de Co-authored-by Cursor. Après 19:07 ce compte n’a plus produit (STOP). STAB-02/03 livrés 19:31/19:42 = compte principal (chats 43ac70d2 / 8cf0dcc7), malgré l’absence de trailer.

HeureActionArtefact% lot
18:25 Premier prompt = plan Codex collé titre « Stabiliser Jah 4.0.16 : mobile, communication et retours joueurs » · fichier plan C:\Users\FG\.cursor\plans\stabiliser_jah_4.0.x_9a52175a.plan.md (créé 18:28) 0 → plan
18:25–18:28 4 explores lecture seule subagents docs / #273 / mobile / retours —
18:28–18:32 Phase A (orchestrateur) commit bd5c1e3 · PR #275 ouverte 18:32:58 Paris par FGDidou docs hors 13 · ~80 (PR)
18:33–18:38 STAB-01 salons 05aa20b · PR #276 18:38:45 ~80
18:33–18:39 STAB-00 appels 8ba7202 · PR #277 18:39:33 ~80
18:39–18:52 Ship-live lancé puis abort subagent ec8e8877 · rerun FULL · user aborted · 18:52 quota « Other Models » 00/01 coincés FULL rouge j2
18:52–18:54 Clôture handoff (avant reprise 18:53/18:58) handoffs/2026-10-04-1853-stab-reprise.md · commit ca6e916 18:53 relais
19:03–19:07 STAB-02 ∥ 03 commencés puis STOP doublon worktrees stab-02/03 dirty · pas de PR 279/280 de ce compte ~30–60 local · 0 PR

Bilan 2e compte : mur 42 min (18:25→19:07). Posé : 3 PRs (#275 #276 #277), campagne ≈ 12 % (2×80 / 13) + docs hors 13. 02/03 non livrés ici. Aucun merge, live resté 4.0.16.

8 · Suite STAB 04–10 — ETA avec / sans CI runner

Source ETA : agent 94af79c9 (22:08 Paris) · plan stabiliser_jah_4.0.x_9a52175a · file .worktrees/stab-orchestrator/docs/plans/lots/file-stabilisation-4.0.x.json (lots encore bloque, live JSON figé 4.0.16). Capture HTML 22:13 — pas de merge, pas de code app, STAB-04 non démarré. Pas d’injection npm run metrics.

Comprimé + CI (1–2 FULL)

méd ~12 h
opt 6–7 · pess 20+

9 PRs + CI (à éviter)

méd ~17 h
opt 10–11 · pess 28+

Code-only +1 FULL fin

méd ~11 h
opt ~6 · pess ~19

Légende — avec CI runner = chaque PR paie ~25 min machine / ~7,5 min mur FULL (vert, sans file) ; parallèle = file E2E (leçon vue 5 : 5 FULL → 76 min mur / ~2h28 machine). sans / code-only = uniquement temps agent/code, puis +1 FULL à la fin (pas 9× fixe). Heures lot = mur opt/méd/pess si 1 lot = 1 PR (agent + FULL inclus).

8a · Par lot / issue (1 PR = 1 FULL)

Pas d’issue GH encore pour 04–10 (anomalies registre seulement). Déps 00–03 = déjà live 4.0.18.

Lot Contenu FULL? Déps / blocage opt méd pess CI mur CI mach.
STAB-04 Wizz shake renderer 1× (conversation.mjs) oui merge 03 fait · avant 06 (même fichier) 0,5 h1 h2 h ~7,5′~25′
STAB-05 Médias : clearAttachment après succès oui 03 fait · composer.mjs exclusif 0,8 h1,5 h2,5 h ~7,5′~25′
STAB-06 Scroll / --kb / brouillon oui, E2E non skip après 04 · séquentiel même proprio 1,5 h2,5 h4,5 h ~7,5′~25′
STAB-07A Tables feedback_*, capture, CLI, contrats oui (serveur) 00/01 faits · Node poste 22.14 vs boot ≥24 2,5 h4 h7 h ~7,5′~25′
STAB-07B Sync GH 15 min + import oui (.github/) après 07A · token issues-only runner 1,5 h3 h5 h ~7,5′~25′
STAB-07C API + onglet Retours + lifecycle oui, E2E onglet après 07B · chaîne 07 2 h3,5 h6 h ~7,5′~25′
STAB-08 Labels props ≥14 px, anti-chevauchement oui (monde) 02 fait 0,8 h1,5 h2,5 h ~7,5′~25′
STAB-09 Mesure batterie puis fix cadence oui si code après 06 · cause inconnue tant que pas mesuré 2 h4 h8 h ~7,5′~25′
STAB-10 Viewer métriques (modes CI, post-relance, lots) fiche « skip » ; CI=FULL dès scripts/ aucune 1 h2 h3 h ~7,5′~25′
Somme séquentielle 9× (1 PR chacun) — plafond naïf, pas le scénario réel 12,62340,5 ~68′~3h45

8b · PR comprimée vs 9 PRs vs code-only

Découpe ETA : PR-A = 04+05+06+08 · PR-B = 07A–C (+10 si scripts/) · 09 collé à B seulement si mesure courte. Totaux = code + CI + 1–2 releases.

Scénario FULL payés opt méd pess Machine CI (approx.)
Comprimé PR-A + PR-B 1–2 FULL 6–7 h 11–13 h 20 h+ ~25–50 min (1–2 × 25′)
9 PRs (1 critère = 1 PR) 9 FULL (+ file si //) 10–11 h 16–18 h 28 h+ ~3h45 (9 × 25′) hors retries
Code-only local (+1 FULL fin) 1 FULL final ~6 h ~11 h ~19 h ~25 min seulement

Écart médiane 9 PRs − comprimé ≈ +5 h (fixe CI ×9 + file + releases multiples). Code-only ≈ comprimé moins le 2ᵉ FULL / file — le gain réel est d’éviter les 9 PRs, pas de zéro-CI absolu.

8c · Horloge release depuis ~22:08 / maintenant 22:13

Comprimé 1–2 FULL → /readyz

opt ~04:30–05:30 (5 oct)
méd ~09:00–11:00 (5 oct)
pess lundi soir

9 PRs → /readyz

opt ~08:00–09:00 (5 oct)
méd après-midi 5 oct
pess >1 jour

Premier patch utile (04–06 seulement, 1 FULL + 1 release ~0,3–0,4 h) : comprimé ~01:00–02:30 (opt/méd) · 9 PRs ~02:30–06:00. 07A–C seuls ≈ +5–10 h après. 09 = joker pess. Ancre ETA 22:08 ; +5 min à 22:13 négligeable.

8d · Points bloquants réductibles

FreinAction pour couper
File E2EUn FULL à la fois — jamais 5 PRs ci:full
1 PR = 1 FULLEmpiler 04+05+06 (+08) ; 07A→C une PR
E2E non skip 06/07CLes mettre dans les PRs comprimées, pas en lots solo
Node 22.14npm run boot (Node ≥24) avant 07A / npm test
STATUS / file JSON staleUn commit orch en tête de PR-A (ship-live / relais)
Worktrees ×91–2 worktrees depuis origin/main 4.0.18
Tests longsRouge unit/renderer d’abord ; une suite E2E locale, CI fait foi
07B tokenPréparer le secret avant le code 07, pas au moment du FULL
Hors ETA plan Codex — OPS-09 (gelé 4.1.0) · L08 wip-local · visu repo privé (hors STAB-10) · paperasse STATUS (main dit encore 4.0.16) = 1 commit orch nécessaire au ship, pas une campagne docs. Cette vue ne démarre pas STAB-04.