Skill /release : lancer le test des CHANGELOG après l'étape 3, pour qu'un en-tête de version oublié bloque la release #481

Open
opened 2026-10-20 00:32:08 +00:00 by maximus · 0 comments
Owner

Contexte

Suivi proposé par la revue indépendante de la PR #470 (#372, commentaire 25424), hors de cette PR parce que .claude/skills/release/** est de niveau haut. Décision de Max (2026-10-19) : issue de suivi.

src/utils/changelog.test.ts (« the real changelogs », #372) exige que la version de tauri.conf.json ait son en-tête dans CHANGELOG.md et dans CHANGELOG.fr.md. Il ne garde pas le commit de release lui-même : /release lance npm test au pré-vol, avant le bump (étape 0), et le commit de release va sur main sans PR ni CI. Une PR qui ne toucherait que les CHANGELOG ou src-tauri/ ne lance pas check-frontend non plus. Un en-tête oublié ferait donc échouer la première PR suivante qui touche src/, sans lien avec elle ; l'app, elle, retombe sur la première version publiée.

Travail

  • .claude/skills/release/SKILL.md : après l'étape 3 (bump et changelogs), npx vitest run src/utils/changelog.test.ts doit passer avant le commit de release ; une ligne au journal du skill.
  • Preuve sur une copie : un bump sans en-tête dans un des deux CHANGELOG fait échouer la commande, et elle passe avec les deux en-têtes.

PR de niveau haut tant que le motif .claude/skills/release/** n'est pas restreint (#462).

Liens : #372, PR #470 (commentaire 25424), #462.

Analyse (/analyze, 2026-10-20, main 45d8493, #372 mergée)

Prémisse prouvée sur une copie (worktree détaché, retiré ensuite)

npx vitest run src/utils/changelog.test.ts depuis la racine, 22 tests, 3 s :

État de la copie Résultat
tauri.conf.json à 0.17.3, aucun en-tête 1 rouge : « open on the installed version » (en: expected [ '0.17.2' ] to deeply equal [ '0.17.3' ]), rc 1
En-tête ## [0.17.3] dans CHANGELOG.md seul 2 rouges : « list the same published versions in both languages » et le précédent, rc 1
En-tête dans les deux fichiers 22 verts, rc 0

Le test lit la version de src-tauri/tauri.conf.json : il ne peut servir qu'après l'étape 2 (bump) et l'étape 3 (changelogs), avant le commit de l'étape 5. Le npm test de l'étape 0 tourne avant le bump et ne voit rien.

Travail à faire

  • .claude/skills/release/SKILL.md, fin de l'étape 3 : une sous-étape « Vérifier les en-têtes » avec la commande ci-dessus, le résultat attendu (Tests N passed, rc 0) et la lecture des deux échecs possibles : « open on the installed version » = en-tête absent dans la langue nommée par le message ; « list the same published versions » = en-tête dans un seul fichier. Un rouge arrête la release avant le commit.
  • Même fichier, section ## Changelog : une ligne datée, origine (#481, revue de la PR #470).
  • Corps de la PR : la preuve sur une copie (les trois lignes du tableau), rejouée sur la branche.
  • Pas d'entrée de CHANGELOG du dépôt (procédure interne) ; docs/qa-update-cycle.md et REVIEW.md ne décrivent pas cette étape, rien à y changer.

Fichiers concernés

  • .claude/skills/release/SKILL.md — seul fichier.

Surface de test

  • Aucun test ne lit le skill ; la preuve est manuelle (tableau ci-dessus), à rejouer dans la PR.
  • Le test lui-même existe déjà (src/utils/changelog.test.ts, #372).

Niveau de revue

Haut, tant que .claude/skills/release/** est dans le tableau Haut de REVIEW.md (ligne 32 ; #477 pourrait le restreindre). check-frontend tourne sur la PR (#419 : .claude/** n'est plus ignoré).

Complexité

Simple. Prochaine étape : /fix-issue 481.

## Contexte Suivi proposé par la revue indépendante de la PR #470 (#372, commentaire 25424), hors de cette PR parce que `.claude/skills/release/**` est de niveau haut. **Décision de Max (2026-10-19)** : issue de suivi. `src/utils/changelog.test.ts` (« the real changelogs », #372) exige que la version de `tauri.conf.json` ait son en-tête dans `CHANGELOG.md` et dans `CHANGELOG.fr.md`. Il ne garde pas le commit de release lui-même : `/release` lance `npm test` au pré-vol, avant le bump (étape 0), et le commit de release va sur `main` sans PR ni CI. Une PR qui ne toucherait que les CHANGELOG ou `src-tauri/` ne lance pas `check-frontend` non plus. Un en-tête oublié ferait donc échouer la première PR suivante qui touche `src/`, sans lien avec elle ; l'app, elle, retombe sur la première version publiée. ## Travail - [ ] `.claude/skills/release/SKILL.md` : après l'étape 3 (bump et changelogs), `npx vitest run src/utils/changelog.test.ts` doit passer avant le commit de release ; une ligne au journal du skill. - [ ] Preuve sur une copie : un bump sans en-tête dans un des deux CHANGELOG fait échouer la commande, et elle passe avec les deux en-têtes. PR de niveau haut tant que le motif `.claude/skills/release/**` n'est pas restreint (#462). Liens : #372, PR #470 (commentaire 25424), #462. ## Analyse (`/analyze`, 2026-10-20, `main` `45d8493`, #372 mergée) ### Prémisse prouvée sur une copie (worktree détaché, retiré ensuite) `npx vitest run src/utils/changelog.test.ts` depuis la racine, 22 tests, 3 s : | État de la copie | Résultat | |---|---| | `tauri.conf.json` à 0.17.3, aucun en-tête | 1 rouge : « open on the installed version » (`en: expected [ '0.17.2' ] to deeply equal [ '0.17.3' ]`), rc 1 | | En-tête `## [0.17.3]` dans `CHANGELOG.md` seul | 2 rouges : « list the same published versions in both languages » et le précédent, rc 1 | | En-tête dans les deux fichiers | 22 verts, rc 0 | Le test lit la version de `src-tauri/tauri.conf.json` : il ne peut servir qu'après l'étape 2 (bump) **et** l'étape 3 (changelogs), avant le commit de l'étape 5. Le `npm test` de l'étape 0 tourne avant le bump et ne voit rien. ### Travail à faire - [ ] `.claude/skills/release/SKILL.md`, fin de l'étape 3 : une sous-étape « Vérifier les en-têtes » avec la commande ci-dessus, le résultat attendu (`Tests N passed`, rc 0) et la lecture des deux échecs possibles : « open on the installed version » = en-tête absent dans la langue nommée par le message ; « list the same published versions » = en-tête dans un seul fichier. Un rouge arrête la release avant le commit. - [ ] Même fichier, section `## Changelog` : une ligne datée, origine (#481, revue de la PR #470). - [ ] Corps de la PR : la preuve sur une copie (les trois lignes du tableau), rejouée sur la branche. - [ ] Pas d'entrée de CHANGELOG du dépôt (procédure interne) ; `docs/qa-update-cycle.md` et `REVIEW.md` ne décrivent pas cette étape, rien à y changer. ### Fichiers concernés - `.claude/skills/release/SKILL.md` — seul fichier. ### Surface de test - Aucun test ne lit le skill ; la preuve est manuelle (tableau ci-dessus), à rejouer dans la PR. - Le test lui-même existe déjà (`src/utils/changelog.test.ts`, #372). ### Niveau de revue Haut, tant que `.claude/skills/release/**` est dans le tableau Haut de `REVIEW.md` (ligne 32 ; #477 pourrait le restreindre). `check-frontend` tourne sur la PR (#419 : `.claude/**` n'est plus ignoré). ### Complexité Simple. Prochaine étape : `/fix-issue 481`.
maximus added the
status:triage
type:infra
source:human
labels 2026-10-20 00:32:08 +00:00
maximus added
status:ready
and removed
status:triage
labels 2026-10-21 01:04:32 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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: maximus/Simpl-Resultat#481
No description provided.