| name | user-changelog-german |
| description | Use when creating a human-readable German changelog for non-technical end users of berliner-schnauze.wtf from a GitHub PR or version entry in CHANGELOG.md. Triggers on requests like "schreib einen User-Changelog", "menschenlesbarer Changelog", "Changelog fĂŒr meine User", or any changelog task targeting non-developers. Supports args: a version number, "latest", "aufholen" (generate all missing changelogs), "update" (re-apply current schema to existing files). |
User-Changelog auf Deutsch (Non-Technical)
Zweck
Technische Commit-Listen aus CHANGELOG.md oder GitHub-PRs in verstĂ€ndliche, nutzerorientierte Release-Notes auf Deutsch ĂŒbersetzen â fĂŒr Menschen, die nicht programmieren.
Argumente
Der Skill nimmt ein optionales Argument, das den Modus bestimmt:
| Argument | Verhalten |
|---|
(leer) oder latest | Changelog fĂŒr die neueste Version in CHANGELOG.md schreiben |
x.y.z (z. B. 3.41.0) | Changelog fĂŒr genau diese Version schreiben |
aufholen | Alle fehlenden Changelogs nachziehen (siehe unten) |
update | Bestehende Changelog-Dateien ans aktuelle Schema anpassen (siehe unten) |
Modus aufholen
LĂŒcken schlieĂen: Versionen in CHANGELOG.md mit vorhandenen Dateien in docs/user-changelog/ abgleichen.
- Alle Versionsnummern aus CHANGELOG.md extrahieren (
# [x.y.z]-Ăberschriften)
- Mit
docs/user-changelog/v*.md vergleichen â fehlende Versionen ermitteln
- FĂŒr jede fehlende Version einen Changelog schreiben, chronologisch von alt nach neu â so bauen Titel-Variation und ThemenbezĂŒge sinnvoll aufeinander auf
- Versionen, bei denen nach dem Clustering nichts Nutzersichtbares ĂŒbrig bleibt (z. B. reine Patch-Releases mit CI-/Build-Fixes), ĂŒberspringen und am Ende auflisten â eine leere Seite mit nur "Verbesserungen im Hintergrund" bringt niemandem was
- Am Ende zusammenfassen: welche Dateien erstellt, welche Versionen ĂŒbersprungen und warum
Modus update
FĂŒr den Fall, dass sich das Schema geĂ€ndert hat (Frontmatter-Felder, Titel-Regeln, Formatvorgaben): bestehende Dateien in docs/user-changelog/ ans aktuelle Format anpassen â ohne den redaktionellen Inhalt neu zu schreiben.
- Jede Datei in
docs/user-changelog/ gegen das aktuelle Ausgabeformat, die Titel-Regeln und die QualitĂ€tsprĂŒfung dieses Skills prĂŒfen
- Nur reparieren, was vom Schema abweicht: fehlende/falsche Frontmatter-Felder, verbotene H1/Datum-Zeilen im Inhalt, Titel nach altem Muster
- FlieĂtext und Bullet-Inhalte unangetastet lassen â die wurden bewusst so geschrieben; beim Titel-Neuschreiben den AufhĂ€nger aus dem vorhandenen Inhalt der Datei ableiten
- Am Ende pro Datei auflisten, was geĂ€ndert wurde â und welche Dateien schon konform waren
Quellen
- GitHub PR lesen â
mcp__plugin_github_github__pull_request_read mit method: get fĂŒr Titel, Beschreibung, Merge-Datum
- CHANGELOG.md lesen â den vollstĂ€ndigen Versionsabschnitt (
# [x.y.z] bis zur nĂ€chsten Ăberschrift) fĂŒr alle Commits
Clustering â Commits gruppieren
Technische Scopes auf nutzersichtbare Themen abbilden:
| Technische Scopes | Nutzerfreundliche Gruppe |
|---|
game, bon | Spiel-Bereich (z. B. "Berliner oder Nicht") |
word-page, word-*, component | Wort-Detailseite |
toast | Hinweis-Meldungen |
pwa, sw | App-Verhalten / Updates |
a11y, seo, styles, build | "Verbesserungen im Hintergrund" |
dropdown, tooltip | Bedienelemente |
Commits ohne sichtbare Nutzerwirkung (test, ci, docs, fix: formatting) weglassen.
Ausgabeformat
Die Datei beginnt immer mit YAML-Frontmatter â diese Felder werden von der Astro Content Collection fĂŒr die /changelog/{version}-Seite ausgelesen. H1-Heading und Datum-Zeile nicht in den Markdown-Inhalt schreiben â das Template rendert sie aus dem Frontmatter.
---
version: "x.y.z"
releaseDate: "YYYY-MM-DD"
title: "[AufhÀnger aus dem Release-Schwerpunkt] (Version x.y.z)"
description: "[1 Satz Zusammenfassung â erscheint auf der Ăbersichtsseite /changelog]"
---
[1â2 SĂ€tze Zusammenfassung des Update-Schwerpunkts]
---
## [Hauptthema 1]
[FlieĂtext: Was kann der Nutzer jetzt tun, was vorher nicht möglich war?]
- Bullet-Liste mit konkreten Vorteilen aus Nutzersicht
- Kein Fachjargon (kein "refactored", "hydration", "SSR")
---
## [Hauptthema 2]
...
---
## Verbesserungen im Hintergrund
- Kleinere Fehlerbehebungen und technische Optimierungen als einfache Liste
Frontmatter-Felder:
| Feld | Inhalt |
|---|
version | Versionsnummer als String, z. B. "3.35.0" (kein v-Prefix) |
releaseDate | ISO-Datum, z. B. "2026-06-27" |
title | Individueller AufhĂ€nger pro Release â siehe Titel unten |
description | 1 kurzer Satz fĂŒr die Ăbersichtsseite â keine technischen Details, Nutzersprache |
Titel
Kein festes Schema â die Ăbersichtsseite /changelog hat bereits die H1 "Was ist neu?", darunter wird jeder title gelistet. Wenn jeder Eintrag mit "Was ist neu in VersionâŠ" beginnt, liest sich die Liste wie ein kaputter Kopierer. Stattdessen:
- AufhĂ€nger aus dem gröĂten sichtbaren Feature des Releases â der Titel soll neugierig machen, was drin ist
- Versionsnummer immer enthalten â als Anker in der Ăbersichtsliste und im OG-Title beim Teilen. Position flexibel: vorne, hinten, in Klammern
- Kurz halten (~60 Zeichen) â der Titel ist auch
opengraphTitle
- Ton wie der Rest: locker, direkt, gern mit Berliner Schnauze â aber kein Clickbait
- Satzbau variieren gegenĂŒber den letzten EintrĂ€gen (vorher in
docs/user-changelog/ nachschauen) â nicht drei Releases hintereinander dasselbe Muster
Beispiele:
feat-Schwerpunkt: Spenden-Seite + Footer-Umbau
â "Spendieren jeht jetzt â Version 3.38.0"
feat-Schwerpunkt: Haptik + Animationen im BON-Spiel
â "Version 3.35.0: Det Spiel vibriert jetzt richtig"
Nur kleine Fixes, kein groĂes Feature
â "Feinschliff ĂŒberall (Version 3.36.0)"
Sprache & Ton
- Ich-Form â Felix schreibt als Einzelentwickler: "Ich habe⊠gebaut", "Ich habe⊠eingebaut", "Ich habe⊠neu gemacht"
- Kein "Wir" â Felix ist allein der Entwickler
- Ton: locker, direkt, erfahren â kein Grundschul-Deutsch, kein trockener Feature-Listen-Stil. Schreiben wie ein Entwickler der einem Freund erzĂ€hlt was er gebaut hat. Leichtes Denglish ist willkommen wenn es natĂŒrlich klingt: "swipen", "sharen", "Redesign", "buggy", "Stacking", "Sidebar", "Sections", "straight forward". Umgangssprache die jeder versteht: "hat mich genervt", "tĂ€uscht sich schnell", "ehrlich gesagt". Nicht ĂŒbertreiben â es soll authentisch klingen, nicht wie forciertes Jugendsprech.
- Leser werden nicht direkt angesprochen ("du") â stattdessen unpersönlich: "lĂ€sst sich", "kann man", "gibt es", "geht"
- Datum niemals mit Zahl beginnen (
27. Juni⊠â Veröffentlicht am 27. JuniâŠ) â sonst Markdown-Linter-Fehler (MD029)
- Technische Begriffe erklÀren, nicht ersetzen: "haptisches Feedback (Vibration)"
- Kein Entwicklerjargon: kein "commit", "refactor", "SSR", "hydration", "chunk"
- Emojis nur wenn explizit gewĂŒnscht
Humanizer-Pass (vor dem Speichern)
Jeden neu geschriebenen Entwurf (Modi latest, Versionsnummer, aufholen) vor dem Speichern einmal gezielt auf KI-Schreibmuster durchgehen. Warum: Die Release-Notes leben von der Ich-ErzĂ€hler-AuthentizitĂ€t â ein einziger generisch klingender Absatz kippt den ganzen Eintrag. Modus update ist ausgenommen, dort wird redaktioneller Inhalt nicht angefasst.
Diese Muster rausschreiben:
- Gedankenstriche (
â und â) komplett vermeiden â das zuverlĂ€ssigste KI-Erkennungszeichen. Ersetzen durch Komma, Punkt (neuer Satz), Doppelpunkt oder Klammern. Vor dem Speichern per Suche prĂŒfen: kein einziges â/â im fertigen Text, auch nicht im title.
- Wiederholte Sprach-Tics ĂŒber EintrĂ€ge hinweg. Vor dem Schreiben die letzten 2â3 Dateien in
docs/user-changelog/ ĂŒberfliegen: Taucht eine Wendung ("ehrlich gesagt", "hat mich genervt", "war ĂŒberfĂ€llig") dort schon auf, eine andere Formulierung wĂ€hlen. Ein Mensch wiederholt sich mal, aber nicht mit derselben Phrase in jedem Release.
- Kein Warm-up-Satz nach der Ăberschrift. "Die Suche hat mehrere Verbesserungen bekommen:" unter "## Suche aufpoliert" sagt nichts â direkt mit dem Inhalt anfangen.
- Keine erzwungenen Dreierreihen. Zwei Punkte sind zwei Punkte, vier sind vier. AufzĂ€hlungen nicht auf drei glattbĂŒgeln.
- Fragmente zu echten SĂ€tzen machen. AngehĂ€ngte Strich-Fragmente ("Links reagieren schneller â kein Warten mehr") als vollstĂ€ndigen Satz mit Subjekt schreiben.
- Werbedeutsch dĂ€mpfen. "blitzschnell", "nahtlos", "spĂŒrbar verbessert" durch konkrete Aussagen ersetzen: Was genau passiert jetzt anders?
- Kein generisch-positiver Schlusssatz ("Viel SpaĂ beim Entdecken!"). Der letzte Punkt ist einfach der letzte Inhaltspunkt.
- SatzlÀngen mischen. Kurzer Satz. Dann einer, der sich Zeit nimmt und einen Nebengedanken mitnimmt. Gleichförmige mittellange SÀtze wirken generiert.
Nicht wegbĂŒgeln (das ist Stimme, kein Muster): Denglish ("swipen", "sharen", "hovered"), Meinung und Genervtsein, Umgangston, unvollstĂ€ndige SĂ€tze als bewusstes Stilmittel ("Gab's vorher nicht, war aber ĂŒberfĂ€llig."). Im Zweifel klingt der Text lieber etwas ruppig als glattpoliert.
Speicherort
docs/user-changelog/v{VERSION}.md
Beispiel-Mapping
fix(bon): defer correct-answer toast one rAF to avoid mobile compositor flash
â weglassen (kein sichtbarer Nutzereffekt)
feat(game): add haptic vibration feedback via useVibrate
â "Haptisches Feedback (Vibration) auf Smartphones bei richtigen und falschen Antworten"
fix(sidebar): scroll active nav tab into view on mobile
â "Verbesserungen im Hintergrund: Seitenleisten-Navigation auf mobilen GerĂ€ten verbessert"
QualitĂ€tsprĂŒfung vor dem Speichern