Communitygithub.com

withastro/astro

Crée un fichier de changeset pour le monorepo Astro. Utilise cette compétence chaque fois que tu as besoin d'ajouter un fichier de changeset à une PR, de rédiger une entrée de changelog ou de documenter un changement de version de package. Se déclenche aussi lorsque l'utilisateur dit « ajouter un changeset », « écrire un changeset », « créer un changeset », ou quand une autre compétence te demande de créer un changeset.

Qu'est-ce que astro ?

Cette compétence automatise la création de fichiers de changeset pour le monorepo Astro, essentiels pour déclarer les packages modifiés, le type de bump semver et le message orienté utilisateur qui devient l'entrée du CHANGELOG. Toute PR modifiant un package (sauf `examples/*`) nécessite un changeset. Elle exécute `pnpm changeset --empty` à la racine du dépôt pour générer un fichier `.md` dans `.changeset/` avec un préambule vide, puis guide l'édition du fichier pour spécifier le bump et le message. Les règles de format incluent l'utilisation exacte des noms de package (champ `name` du `package.json`), des types de bump (`patch`, `minor`, `major`), la possibilité de couvrir plusieurs packages dans un fichier, et un blocage CI pour les bumps majeurs/mineurs sur `astro` nécessitant une revue. Le message doit être rédigé pour les utilisateurs finaux d'Astro, en commençant par un verbe au présent (Ajoute, Supprime, Corrige, Met à jour, Refactorise, Améliore, Déprécie), en décrivant l'impact utilisateur plutôt que l'implémentation interne. Les exemples couvrent les mises à jour patch (une ligne), les nouvelles fonctionnalités minor (commence par "Ajoute", nomme la nouvelle API, peut inclure un exemple de code) et les changements majeurs (verbes comme Supprime, ajoute des instructions de migration, utilise des blocs diff). Pour les descriptions longues, utilise `####` comme titre de section (jamais `##` ou `###`).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/withastro/astro/tree/HEAD/.agents/skills/changeset

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Changeset

Crée des fichiers de changeset pour le monorepo Astro. Les changesets déclarent les packages modifiés, le type de bump semver et un message orienté utilisateur qui devient l'entrée du CHANGELOG.

Chaque PR qui modifie un package nécessite un changeset. Seules les modifications dans examples/* sont exemptées.

Création du fichier

Exécute pnpm changeset --empty depuis la racine du dépôt. Cela crée un fichier .md nommé aléatoirement dans .changeset/ avec un préambule vide — pas besoin d'inventer un nom de fichier ni d'inspecter le répertoire. Modifie ensuite le fichier généré pour ajouter le bump du package et le message.

Format

---
'<nom-du-package>': patch
---

<message du changeset>
  • Les noms de package doivent correspondre exactement au champ name du package.json du package (ex. 'astro', '@astrojs/node')
  • Types de bump : patch, minor ou major
  • Un seul fichier de changeset peut couvrir plusieurs packages
  • Les bumps major et minor sur le package central astro sont bloqués par la CI et nécessitent une révision par un mainteneur

Rédaction du message

Le message du changeset est une entrée publique du CHANGELOG. Rédige-le pour les utilisateurs d'Astro, pas pour les relecteurs de code.

Commence par un verbe au présent qui complète la phrase "Cette PR..." :

  • Ajoute, Supprime, Corrige, Met à jour, Refactorise, Améliore, Déprécie

Décris le changement tel qu'une personne construisant un site Astro le vivra, et non comment il a été implémenté en interne :

// Trop axé sur l'implémentation
Enregistre des erreurs utiles si le contenu est invalide

// Mieux — impact utilisateur
Ajoute la journalisation des erreurs de configuration des collections de contenu.

Mises à jour patch

Une ligne suffit généralement. Pas de ponctuation finale sauf si tu écris plusieurs phrases.

---
'astro': patch
---

Corrige un bug où l'audit de la barre d'outils signalait incorrectement les images comme étant au-dessus de la ligne de flottaison
---
'astro': patch
---

Refactorise la gestion interne des styles et scripts pour les collections de contenu afin d'améliorer les performances de build

Aide le lecteur à déterminer si le changement le concerne. Inclus le nom de l'API spécifique (avec le formatage par backticks) lorsque le changement est lié à une option ou une fonction reconnaissable. Quand l'API n'est pas orientée utilisateur, décris le cas d'usage ou le résultat final à la place :

// Vague
Améliore la génération des solutions de repli automatiques

// Clair — le lecteur peut voir si cela l'affecte
Améliore la génération automatique des `fallbacks` pour l'API expérimentale Fonts

Nouvelles fonctionnalités (minor)

Commence par "Ajoute", nomme la nouvelle API et décris ce que les utilisateurs peuvent désormais faire. Inclus un exemple de code si utile :

---
'astro': minor
---

Ajoute une nouvelle propriété optionnelle `timeout` pour la directive `client:idle`

Cette valeur vous permet de spécifier un temps d'attente maximal, en millisecondes, avant d'hydrater un composant d'UI framework.

```astro
<Button client:idle={{ timeout: 500 }} />
```

Les nouvelles fonctionnalités sont une occasion de rédiger une description plus riche qui peut alimenter des articles de blog. Voir la documentation des changesets d'Astro pour des conseils sur les entrées plus longues.

Changements cassants (major)

Utilise des verbes comme "Supprime", "Modifie" ou "Déprécie". Doit inclure des instructions de migration. Utilise des exemples de code avec diff lorsque c'est approprié :

---
'astro': major
---

Supprime le support de la propriété `path` pour les langages personnalisés Shiki. Le fichier JSON du langage doit désormais être importé et passé à l'option à la place.

```diff
// astro.config.js
+ import customLang from './custom.tmLanguage.json'

export default defineConfig({
  markdown: {
    shikiConfig: {
      langs: [
-       { path: './custom.tmLanguage.json' },
+       customLang,
      ],
    },
  },
})
```

Les modifications des valeurs par défaut doivent mentionner l'ancienne valeur par défaut, la nouvelle valeur par défaut et comment restaurer le comportement précédent.

Changesets plus longs

Pour des descriptions plus longues, utilise #### et des titres plus profonds (jamais ## ou ###) pour diviser les sections. Cela rend le CHANGELOG lisible lorsque ton entrée est incorporée :

---
'astro': minor
---

Ajoute une nouvelle API Sessions pour stocker l'état utilisateur entre les requêtes pour les pages rendues à la demande.

#### Configuration du stockage des sessions

<!-- ... -->

#### Utilisation des sessions

<!-- ... -->

Skills associés