Communitygithub.com

withastro/astro

Erstelle einen Changeset für das Astro-Monorepo. Verwende diesen Skill immer dann, wenn du eine Changeset-Datei zu einem PR hinzufügen, einen Changelog-Eintrag schreiben oder einen Package-Version-Bump dokumentieren musst. Auch auslösbar bei "changeset hinzufügen", "changeset schreiben", "changeset erstellen" oder wenn ein anderer Skill dich anweist, einen Changeset zu erstellen.

Was ist astro?

Dieser Skill erstellt Changeset-Dateien für das Astro-Monorepo. Changesets deklarieren, welche Pakete geändert wurden, den Semver-Bump-Typ und eine benutzerorientierte Nachricht, die in den CHANGELOG aufgenommen wird. Er unterstützt die Arbeit mit Astro-Repositorys, insbesondere die Einhaltung der Regel, dass jeder PR, der ein Paket modifiziert (außer `examples/*`), einen Changeset benötigt. Der Skill wird über Schlüsselwörter wie "add a changeset" ausgelöst und führt den Benutzer durch die Erstellung der Datei mit `pnpm changeset --empty`, die Formatierung (z. B. `'astro': patch`), und das Verfassen der Nachricht als öffentlichen CHANGELOG-Eintrag mit präsentischen Verben und klaren Anleitungen für Patch-, Minor- und Major-Updates. Die Plattform ist das Astro-Monorepo, typischerweise in CI/CD-Umgebungen und Code-Editoren integriert.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Changeset

Erstelle Changeset-Dateien für das Astro-Monorepo. Changesets deklarieren, welche Pakete geändert wurden, den Semver-Bump-Typ und eine benutzerorientierte Nachricht, die als CHANGELOG-Eintrag dient.

Jeder PR, der ein Paket modifiziert, benötigt einen Changeset. Nur Änderungen an examples/* sind ausgenommen.

Erstellen der Datei

Führe pnpm changeset --empty im Stammverzeichnis des Repositorys aus. Dadurch wird eine zufallsbenannte .md-Datei in .changeset/ mit leerem Frontmatter erstellt – kein manuelles Erfinden eines Dateinamens oder Überprüfen des Verzeichnisses erforderlich. Bearbeite dann die generierte Datei, um den Package-Bump und die Nachricht hinzuzufügen.

Format

---
'<package-name>': patch
---

<changeset-nachricht>
  • Paketnamen müssen exakt dem name-Feld in der package.json des Pakets entsprechen (z.B. 'astro', '@astrojs/node')
  • Bump-Typen: patch, minor oder major
  • Eine einzelne Changeset-Datei kann mehrere Pakete abdecken
  • major- und minor-Bumps des Kernpakets astro werden von CI blockiert und benötigen eine Überprüfung durch Maintainer

Verfassen der Nachricht

Die Changeset-Nachricht ist ein öffentlicher CHANGELOG-Eintrag. Schreibe sie für Astro-Nutzer, nicht für Code-Reviewer.

Beginne mit einem Verb im Präsens, das den Satz „Dieser PR …“ vervollständigt:

  • Fügt hinzu, Entfernt, Korrigiert, Aktualisiert, Refaktoriert, Verbessert, Markiert als veraltet

Beschreibe die Änderung so, wie jemand, der eine Astro-Seite erstellt, sie erleben wird, nicht wie sie intern implementiert wurde:

// Zu implementierungsfokussiert
Protokolliert hilfreiche Fehler, wenn Inhalt ungültig ist

// Besser – Benutzerauswirkungen
Fügt Protokollierung für Konfigurationsfehler von Inhaltssammlungen hinzu.

Patch-Updates

Eine Zeile reicht normalerweise aus. Keine abschließende Interpunktion erforderlich, es sei denn, es werden mehrere Sätze geschrieben.

---
'astro': patch
---

Korrigiert einen Fehler, bei dem die Toolbar-Prüfung Bilder fälschlicherweise als oberhalb des Falzes markierte
---
'astro': patch
---

Refaktoriert die interne Handhabung von Styles und Skripten für Inhaltssammlungen zur Verbesserung der Build-Leistung

Hilf dem Leser zu erkennen, ob die Änderung für ihn relevant ist. Gib den spezifischen API-Namen (mit Backtick-Formatierung) an, wenn die Änderung an eine erkennbare Option oder Funktion gebunden ist. Wenn die API nicht benutzerseitig ist, beschreibe stattdessen den Anwendungsfall oder das Endergebnis:

// Vage
Verbessert die automatische Fallback-Generierung

// Klar – Leser kann erkennen, ob es ihn betrifft
Verbessert die automatische `fallbacks`-Generierung für die experimentelle Fonts-API

Neue Funktionen (minor)

Beginne mit „Fügt hinzu“, nenne die neue API und beschreibe, was Benutzer jetzt tun können. Füge bei Bedarf ein Codebeispiel hinzu:

---
'astro': minor
---

Fügt eine neue, optionale Eigenschaft `timeout` für die Direktive `client:idle` hinzu

Dieser Wert ermöglicht dir, eine maximale Wartezeit in Millisekunden anzugeben, bevor eine UI-Framework-Komponente hydratisiert wird.

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

Neue Funktionen bieten die Möglichkeit, eine umfangreichere Beschreibung zu schreiben, die auch in Blogbeiträge einfließen kann. Siehe die Astro Changeset-Dokumentation für Anleitungen zu längeren Einträgen.

Breaking Changes (major)

Verwende Verben wie „Entfernt“, „Ändert“ oder „Markiert als veraltet“. Muss eine Migrationsanleitung enthalten. Verwende bei Bedarf Diff-Codebeispiele:

---
'astro': major
---

Entfernt die Unterstützung für die `path`-Eigenschaft von Shiki-Benutzersprachen. Die JSON-Datei für die Sprache muss nun importiert und stattdessen an die Option übergeben werden.

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

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

Änderungen an Standardwerten müssen den alten Standard, den neuen Standard und die Wiederherstellung des vorherigen Verhaltens erwähnen.

Längere Changesets

Verwende für längere Beschreibungen #### und tiefere Überschriften (niemals ## oder ###), um Abschnitte zu unterteilen. Dies hält den CHANGELOG lesbar, wenn dein Eintrag eingefügt wird:

---
'astro': minor
---

Fügt eine neue Sessions-API hinzu, um Benutzerzustände zwischen Anfragen für bedarfsgerenderte Seiten zu speichern.

#### Konfiguration der Sitzungsspeicherung

<!-- ... -->

#### Verwenden von Sitzungen

<!-- ... -->

Verwandte Skills