Les chiffres de KPI : la fiche de réseau passe à la tuile de la base, et la garde côté source #1748

Merged
hermes-fusion merged 1 commit from hermes/kpi-pages into main 2026-10-15 19:20:05 +02:00
Collaborator

La carte

t_e21a48da — les chiffres passent à la tuile de la base, les rangées à
GRILLE_KPI, le banc s'ouvre aux pages. Une carte = un onglet ou un composant :
la mienne est la fiche de réseau, et la garde côté source.

Livré, mesuré

  • src/lib/composants/CarteReseau.svelte : la rangée des chiffres passe de
    grid grid-cols-2 md:grid-cols-4 à GRILLE_KPI, et chaque chiffre d'un
    GrandChiffre à une TUILE_KPI du socle — libellé dessus par Infobulle,
    chiffre dessous par Compteur tuile abrege, la valeur exacte espacée et la
    définition dans l'infobulle. La tuile « abonnés » de l'en-tête suit la même
    règle : plus d'items-end, plus de text-xl écrit à la main. Rien de visible
    ne disparaît : le libellé, le chiffre, sa définition et la variation
    « sur 24 h » sont tous rendus.
  • tests/tuiles-kpi.test.js : la garde côté source. Elle lit src/**.svelte
    (hors lib/base/) et refuse tout fichier où un chiffre porte encore sa taille
    à la main (text-lg, text-xl, text-display) avec tabular-nums — un
    chiffre réglé par la fenêtre au lieu de sa tuile. Les trois fichiers qui
    restent sont nommés avec la PR qui les tient : Accueil.svelte (#1687 /
    #1634), Analytique.svelte (#1667), Top.svelte (#1662 / #1635). Aucun
    autre ne peut s'y ajouter, et un fichier qui passe à la règle sort de la liste
    sans rien casser.
  • tests/reseaux-partage.test.js : la parité suit le nouveau marquage
    (data-kpi-rangee="chiffres", data-kpi-tuile, data-base="compteur").

Preuves

npx vitest run        -> 47 fichiers, 415 tests, 0 échec
npx vite build        -> dist/index.html 1881 o, dist/base.js 343,99 ko, 122 modules
python3 _tableau/test_navigateur_tuiles_kpi.py
  OK : sur la démonstration de la base, à 1440 x 900 comme à 375 x 812, en
  clair comme en sombre, aucun chiffre ne sort de sa tuile ; dans une rangée
  les quatre tuiles ont la même hauteur, les quatre chiffres le même bord
  gauche, alignés à gauche et tabulaires ; le chiffre d'une tuile étroite
  (90 px) est plus petit que celui d'une tuile large ; le libellé tronqué et
  le chiffre abrégé donnent leur texte entier au survol
python3 _tableau/test_navigateur_cartes_chaine.py
  OK : cartes de chaîne, aucun texte coupé sans infobulle (8 rendus, /processus/?atelier)
python3 _tableau/test_charte_ui.py, test_charte_svelte.py,
  test_charte_mise_en_page.py, test_garde_doublons.py, test_garde_plafond.py,
  test_garde_couches.py, test_pilote_sans_mika.py -> tous verts

Captures du banc, écrites dans /tmp/cap-tuiles/ : bureau et téléphone, clair
et sombre.

Ce qui reste, et pourquoi

Les pages de KPI ne peuvent pas passer à la règle aujourd'hui. La raison est
mesurable dans la source, pas une impression :

  1. GrandChiffre.svelte (base) porte la tuile naïve elle-même :
    rounded-lg … p-2 … bg-muted ou bg-glass (le verre de la carte aurore) et
    lg:w-48, une largeur de fenêtre. Tant qu'elle vit dans la base, la
    remplacer depuis une page obligerait la page à réécrire sa surface et son
    verre — ce que la charte interdit (aucune couleur, taille ou rayon en dur ;
    c'est ce que compte test_charte_ui.py).
  2. La rangée appartient aussi à la base : CarteMaintenant.svelte, ligne 114,
    grid grid-cols-4 … @carte:flex. Une page qui poserait son GRILLE_KPI dans
    la fente chiffres imbriquerait une deuxième rangée dans celle de la base.
  3. Les fichiers chauds : #1687 touche CarteMaintenant.svelte, #1741 touche
    Demo.svelte et styles.js, #1658 touche Demo.svelte. La base et le
    registre des tailles n'ont qu'un porteur ; la règle des fichiers chauds me
    les interdit.
  4. Trois pages sont tenues par leurs propres PR : Accueil (#1687 / #1634),
    Analytique (#1667), Top (#1662 / #1635).

Videos.svelte, Processus.svelte et CarteSemaine.svelte (et l'Atelier)
n'ont pas de PR ouverte, mais leurs chiffres sont rendus par CarteMaintenant
et GrandChiffre : ils tombent sous 1 et 2. FicheChaine.svelte,
JugeVideo.svelte et JugeImage.svelte, que la carte cite, n'existent pas dans
l'arbre (0 résultat).

Le banc navigateur des tuiles reste donc celui de la démonstration : le rouvrir
aux pages demande qu'elles portent data-kpi, donc qu'elles soient converties.
Ajouter dès maintenant des entrées de page inactives au banc serait du code
mort ; la liste des fichiers en attente est nommée dans la garde de source, qui
refuse aujourd'hui et ne mentira pas demain.

Note de mesure

CarteReseau.svelte n'est importé par aucune page (0 import) : le navigateur ne
peut pas montrer mon changement. Le contrat est tenu côté source et vérifié par
le test de parité des réseaux (rendu serveur) et par la garde.

## La carte `t_e21a48da` — les chiffres passent à la tuile de la base, les rangées à `GRILLE_KPI`, le banc s'ouvre aux pages. Une carte = un onglet ou un composant : la mienne est la fiche de réseau, et la garde côté source. ## Livré, mesuré - `src/lib/composants/CarteReseau.svelte` : la rangée des chiffres passe de `grid grid-cols-2 md:grid-cols-4` à `GRILLE_KPI`, et chaque chiffre d'un `GrandChiffre` à une `TUILE_KPI` du socle — libellé dessus par `Infobulle`, chiffre dessous par `Compteur tuile abrege`, la valeur exacte espacée et la définition dans l'infobulle. La tuile « abonnés » de l'en-tête suit la même règle : plus d'`items-end`, plus de `text-xl` écrit à la main. Rien de visible ne disparaît : le libellé, le chiffre, sa définition et la variation « sur 24 h » sont tous rendus. - `tests/tuiles-kpi.test.js` : la garde côté source. Elle lit `src/**.svelte` (hors `lib/base/`) et refuse tout fichier où un chiffre porte encore sa taille à la main (`text-lg`, `text-xl`, `text-display`) avec `tabular-nums` — un chiffre réglé par la fenêtre au lieu de sa tuile. Les trois fichiers qui restent sont nommés avec la PR qui les tient : `Accueil.svelte` (#1687 / #1634), `Analytique.svelte` (#1667), `Top.svelte` (#1662 / #1635). Aucun autre ne peut s'y ajouter, et un fichier qui passe à la règle sort de la liste sans rien casser. - `tests/reseaux-partage.test.js` : la parité suit le nouveau marquage (`data-kpi-rangee="chiffres"`, `data-kpi-tuile`, `data-base="compteur"`). ## Preuves npx vitest run -> 47 fichiers, 415 tests, 0 échec npx vite build -> dist/index.html 1881 o, dist/base.js 343,99 ko, 122 modules python3 _tableau/test_navigateur_tuiles_kpi.py OK : sur la démonstration de la base, à 1440 x 900 comme à 375 x 812, en clair comme en sombre, aucun chiffre ne sort de sa tuile ; dans une rangée les quatre tuiles ont la même hauteur, les quatre chiffres le même bord gauche, alignés à gauche et tabulaires ; le chiffre d'une tuile étroite (90 px) est plus petit que celui d'une tuile large ; le libellé tronqué et le chiffre abrégé donnent leur texte entier au survol python3 _tableau/test_navigateur_cartes_chaine.py OK : cartes de chaîne, aucun texte coupé sans infobulle (8 rendus, /processus/?atelier) python3 _tableau/test_charte_ui.py, test_charte_svelte.py, test_charte_mise_en_page.py, test_garde_doublons.py, test_garde_plafond.py, test_garde_couches.py, test_pilote_sans_mika.py -> tous verts Captures du banc, écrites dans `/tmp/cap-tuiles/` : bureau et téléphone, clair et sombre. ## Ce qui reste, et pourquoi Les pages de KPI ne peuvent pas passer à la règle aujourd'hui. La raison est mesurable dans la source, pas une impression : 1. `GrandChiffre.svelte` (base) porte la tuile naïve elle-même : `rounded-lg … p-2 … bg-muted` ou `bg-glass` (le verre de la carte aurore) et `lg:w-48`, une largeur de fenêtre. Tant qu'elle vit dans la base, la remplacer depuis une page obligerait la page à réécrire sa surface et son verre — ce que la charte interdit (aucune couleur, taille ou rayon en dur ; c'est ce que compte `test_charte_ui.py`). 2. La rangée appartient aussi à la base : `CarteMaintenant.svelte`, ligne 114, `grid grid-cols-4 … @carte:flex`. Une page qui poserait son `GRILLE_KPI` dans la fente `chiffres` imbriquerait une deuxième rangée dans celle de la base. 3. Les fichiers chauds : #1687 touche `CarteMaintenant.svelte`, #1741 touche `Demo.svelte` et `styles.js`, #1658 touche `Demo.svelte`. La base et le registre des tailles n'ont qu'un porteur ; la règle des fichiers chauds me les interdit. 4. Trois pages sont tenues par leurs propres PR : Accueil (#1687 / #1634), Analytique (#1667), Top (#1662 / #1635). `Videos.svelte`, `Processus.svelte` et `CarteSemaine.svelte` (et l'Atelier) n'ont pas de PR ouverte, mais leurs chiffres sont rendus par `CarteMaintenant` et `GrandChiffre` : ils tombent sous 1 et 2. `FicheChaine.svelte`, `JugeVideo.svelte` et `JugeImage.svelte`, que la carte cite, n'existent pas dans l'arbre (0 résultat). Le banc navigateur des tuiles reste donc celui de la démonstration : le rouvrir aux pages demande qu'elles portent `data-kpi`, donc qu'elles soient converties. Ajouter dès maintenant des entrées de page inactives au banc serait du code mort ; la liste des fichiers en attente est nommée dans la garde de source, qui refuse aujourd'hui et ne mentira pas demain. ## Note de mesure `CarteReseau.svelte` n'est importé par aucune page (0 import) : le navigateur ne peut pas montrer mon changement. Le contrat est tenu côté source et vérifié par le test de parité des réseaux (rendu serveur) et par la garde.
Les chiffres de la fiche de réseau passent à la tuile de la base
All checks were successful
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m38s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 2m1s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 7m24s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 7m43s
7639011831
Cause : CarteReseau réglait ses chiffres lui-même — alignés à droite
(`items-end`), dimensionnés par la fenêtre (`text-xl`), sortis de la règle
des tuiles — et sa rangée `grid-cols-2 md:grid-cols-4` tassait quatre
chiffres dans la largeur disponible au lieu de suivre la largeur de la tuile.

Remède : la rangée devient `GRILLE_KPI` et chaque chiffre une `TUILE_KPI`
du socle (`styles.js`) — libellé dessus par `Infobulle`, chiffre dessous par
`Compteur tuile abrege`, la valeur exacte espacée restant dans l'infobulle,
la définition de la tuile aussi. `GrandChiffre` quitte le composant.

Le test de parité des réseaux suit le nouveau marquage, et
`tests/tuiles-kpi.test.js` ajoute la garde côté source : les fichiers qui
règlent encore un chiffre à la main sont nommés, avec la PR qui les tient.
hermes-fusion deleted branch hermes/kpi-pages 2026-10-15 19:20:06 +02:00
Collaborator

Fusionnée automatiquement par fusion-auto (forge) : CI verte, sans conflit.

Fusionnée automatiquement par `fusion-auto` (forge) : CI verte, sans conflit.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
foXaCe/studio!1748
No description provided.