CommunityCodierung & Entwicklunggithub.com

OpenClaw-Changelog-Aktualisierung

Aktualisiert OpenClaw-Release-Changelog-Abschnitte basierend auf der Git-Historie vor Beta-, Stable- oder Extended-Stable-Releases.

Was ist OpenClaw-Changelog-Aktualisierung?

Dieses Skill dient der Neuerstellung von Release-Notizen und Changelog-Einträgen für das OpenClaw-Projekt, basierend auf der vollständigen Git-Historie. Es wird vor der Finalisierung von Beta-, Stable- und Extended-Stable-Releases ausgeführt, um sicherzustellen, dass die Änderungen korrekt gruppiert, attribuiert und mit Benutzerinteressen priorisiert werden. Das Skill analysiert den Commit-Verlauf zwischen einem Basis-Tag und einem Ziel-Ref, identifiziert PRs, Issues und direkte Commits, und erzeugt eine nach Abschnitten (Highlights, Changes, Fixes) gegliederte Markdown-Datei. Es unterstützt die Plattformen git, GitHub und npm und wird mit dem Skill „release-openclaw-maintainer“ verwendet. Wichtig ist, dass es nicht für Backport-Wiederholungen, Tooling-Retries oder wiederveröffentlichte Versionen ausgeführt werden soll, sondern nur einmal nach einem finalen grünen Code-SHA. Erweiterte Features umfassen die Verifizierung von Attributionen, die Behandlung von Backports und Reverts sowie die Vermeidung von Duplikaten. Das Skill liest dazu ein vollständiges Manifestschema und stellt sicher, dass alle Änderungen nachvollziehbar und korrekt sind.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/openclaw-changelog-update

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht OpenClaw-Changelog-Aktualisierung?

Verwenden Sie dies für die Neufassung von Changelogs und den Quelltext von GitHub-Release-Notizen. Führen Sie für reguläre Beta/Stable-Releases die vollständigen Notizen vor der endgültigen Quellqualifikation so früh wie möglich aus; der Code-SHA kann dann auch der Release-SHA sein. Redaktionelle Arbeiten können sich mit der Code-Validierung überschneiden. Führen Sie das Skript nicht pro Validierungs-Wiederherstellungs-Backport erneut aus; wenn Backports den Code-SHA ersetzen, führen Sie es einmal aus, nachdem der endgültige Code-SHA grün ist, als einen echten CHANGELOG-only-Abkömmling unter der bestehenden Wiederverwendungsrichtlinie für Produktbeweise (Timing). Für Extended-Stable führen Sie es vor der endgültigen exakten Head-Validierung und dem Taggen aus. Führen Sie es nicht erneut für Tooling-Wiederholungen, fortgesetzte Veröffentlichungen oder Promotion aus. Verwenden Sie es mit release-openclaw-maintainer; dieses Skill besitzt den Changelog-Inhalt, die Reihenfolge, Gruppierung und die Disziplin der Zuordnung.

Ziel

Erstellen Sie den Ziel-CHANGELOG/<version>.md-Release-Abschnitt aus einem vollständigen, generierten Historienmanifest, nicht aus veralteten Entwurfsnotizen. Erzeugen Sie gruppierte, benutzerorientierte Release-Notizen, sortiert nach Benutzerinteresse, wobei jeder relevante Issue/PR-Ref und jede verifizierte menschliche Danke @...-Zuordnung erhalten bleibt.

CHANGELOG.md ist der generierte Release-Index. Der gemeinsame Besitzer scripts/lib/release-changelog.mjs löst Release-Abschnitte und Beitragsdatensätze aus einem Arbeitsbaum oder einem festgepinnten Git-Ref auf, einschließlich historischer Referenzen, die noch einen Monolithen enthalten. Verwenden Sie node scripts/release-changelog.mjs read --version <version> [--ref <sha-or-tag>] für einen Abschnitt oder fügen Sie --record für dessen Beitragsdatensatz hinzu. Ein fehlendes Split-Artefakt darf nicht auf den Root-Index zurückfallen. Historische Releases ohne Datensätze erhalten keine erfundene Herkunft. Generierte CHANGELOG/**-Dateien behalten exakte migrierte oder gespiegelte Bytes bei und sind von der generischen Formatierung ausgeschlossen, wie das Root-Changelog. Validieren Sie sie über ihren Besitzer mit pnpm changelog:check.

Aktuelle Schreibvorgänge verwenden das Split-Layout. Um einen vollständigen ersten Abschnitt zu speichern, verwenden Sie node scripts/release-changelog.mjs write --version <version> --file <section.md>; es aktualisiert den Release-Eintrag, der mit CHANGELOG/records/<version>.md übereinstimmt, falls vorhanden, und den Index zusammen. Die erste Generierung behält das folgende Abschnittsformat bei. Veröffentlichte Docs-Spiegel folgen dem separaten Post-Release-Pfad am Ende dieses Skills; die erste Generierung darf sie niemals überschreiben.

Eingaben

  • Zielversion: exakt YYYY.M.PATCH-beta.N für ein Beta-Delta; YYYY.M.PATCH für kumulative Stable-Notizen. Beta-Einträge und -Datensätze sind separate eingefrorene Artefakte, niemals Kopien des Stable-Basis-Abschnitts.
  • Beta-Basis-Tag: erfassen Sie die Version, die derzeit vom öffentlichen npm openclaw@beta vor der Veröffentlichung ausgewählt wird, nicht den letzten GitHub-Prerelease oder die höchste Beta-Suffix-Version. Der Selektor kann auch eine Stable-Version nennen, die auch von latest ausgewählt wird. Lassen Sie --base weg (oder verwenden Sie --base npm-beta) mit einer exakten Beta-Version, um es einmal aufzulösen; bewahren Sie das aufgelöste Tag aus dem generierten Manifest und verwenden Sie dieses explizite --base erneut für Bearbeitungen, Verifikation und Wiederherstellung. Wenn npm bereits den Kandidaten oder eine neuere Version auswählt, verweigert die Generierung die Schätzung des historischen Selektorzustands; geben Sie das zuvor erfasste Tag an. Wenn dieses Tag kein Vorfahre ist (z.B. ein Stable-Closeout-Forward-Port), verwendet der Verifizierer seine erreichbare Merge-Basis und subtrahiert den kumulativen PR-Datensatz des erfassten versendeten Tags durch die --shipped-ref-Semantik. Das Manifest und der Datensatz behalten beide Grenzen bei; wiederholen Sie die Ausführung mit dem erfassten Tag, um denselben Bereich aufzulösen, wählen Sie niemals eine ältere GitHub-Beta stattdessen.
  • Stable-Basis-Tag: letztes erreichbares versendetes Stable-Release-Tag. Es muss ein Vorfahre des Ziels sein; ein neueres, aber divergentes Tag ist keine gültige Historiengrenze. Verwenden Sie einen expliziten versendeten/main-Closeout-SHA nur, wenn er auch vom Ziel aus erreichbar ist.
  • Ziel-Ref: die exakte produktvollständige Historie, die dokumentiert wird. Sein Beitragsdatensatz-Ziel muss ein Vorfahre des endgültigen Release-Ziels sein; es muss keinen noch nicht erstellten Changelog-Commit nennen. Fügen Sie spätere Korrekturen vor der Finalisierung der Notizen ein. Endgültige Notizen können vor der Qualifikation oder danach als CHANGELOG-only-Abkömmling eines grünen Code-SHA committet werden.
  • Kanonischer Main-Ref: aktueller origin/main, vor der Verifikation abgerufen. Release-Notizen zitieren den ursprünglich gemergten Main-PR, wenn dieselbe Arbeit durch einen Backport transportiert wird. Ein Release-Branch-PR wird nur verwendet, solange kein Forward-Port auf dem aktuellen Main existiert.

Workflow

  1. Bestätigen Sie den Release-Branch und das exakte Historie-Ziel:

    • git fetch --tags origin
    • bestätigen Sie sauberes git status -sb
    • notieren Sie git rev-parse HEAD als Historie-Ziel
    • notieren Sie die Full-Release-Validation-Run-ID und den Versuch, wenn die Qualifikation bereits existiert
    • schließen Sie ausstehende Produkt-/Versions-/Backport-Änderungen ab, bevor Sie die endgültige Quelle einfrieren; aktualisieren Sie das Inventar für tatsächliche Änderungen
  2. Prüfen Sie die Historie, einschließlich direkter Commits:

    • git log --topo-order --date=iso-strict --pretty=format:'%h%x09%ad%x09%s' <base-tag>..<target-ref>
    • git log --topo-order --grep='(#' --date=short --pretty=format:'%h%x09%ad%x09%s' <base-tag>..<target-ref>
    • Fügen Sie jeden Commit ein, der vom Ziel aus erreichbar ist, aber nicht von der Basis, einschließlich gemergter Seiten-Branches. Lösen Sie PR-Zuordnungen vor dem Deduplizieren und Subtrahieren versendeter Datensätze auf; behalten Sie die bestehenden Revert-Ausschlüsse bei.
    • prüfen Sie auch --since='24 hours ago', wenn sich Main während des Releases bewegt hat.
  3. Generieren Sie den vollständigen Beitragsdatensatz und das redaktionelle Manifest, bevor Sie gruppierte Prosa schreiben:

    node --import tsx .agents/skills/openclaw-changelog-update/scripts/verify-release-notes.mjs \
      --base <base-tag> \
      --target <target-ref> \
      --release-branch <canonical-release-branch> \
      --main-ref origin/main \
      --version <YYYY.M.PATCH> \
      --manifest /tmp/openclaw-release-<YYYY.M.PATCH>.json \
      --write-ledger
    

    Für die Beta-Generierung verwenden Sie --version YYYY.M.PATCH-beta.N und lassen Sie --base beim ersten Inventarlauf weg. Starten Sie einen exakten Versionsabschnitt mit Highlights, Changes und Fixes unter Verwendung des gemeinsamen Writers; generieren Sie das Delta-Manifest, schreiben Sie dann Prosa nur für diesen Bereich. Folgende Läufe verwenden das erfasste npm-Basislinien-Tag explizit (nicht nur den Merge-Base-SHA eines divergenten Bereichs). Fragen Sie npm nach der Veröffentlichung nicht erneut ab und überschreiben Sie den kumulativen Stable-Eintrag nicht. Generieren Sie kumulative Stable-Notizen bei der Stable-Vorbereitung neu.

    Fügen Sie wiederholbare --release-provenance '<40sha> -> #PR[, #PR]' Eingaben hinzu, wenn Release-Commits keine Provenienz-Metadaten tragen können. Diese verwenden dieselbe exakte Markierungs-Grammatik und Quellvalidierung wie Commit-Body-Marker. Ein gemergtes Release-Branch-Original ist nur gültig, solange kein entsprechender aktueller-Main-Forward-Port existiert; sein GitHub-Merge-Commit pinnt die ursprüngliche Quelle.

    Der Verifizierer verwendet automatisch öffentliche GitHub GraphQL-Antworten aus einem exakten Basis/Ziel-SHA-Snapshot unter den Git-Metadaten des Arbeitsbaums wieder. Iterative Neufassungen beim selben Ziel vermeiden wiederholte Netzwerkerkennung. Verwenden Sie --refresh-github-snapshot nach verdächtigen API-Daten, --github-snapshot <path> für ein explizites Artefakt oder --no-github-snapshot für eine Live-only-Prüfung. GitHub-Release-Bodies werden immer live gelesen. Explizite CI #, CI run #, Actions run # und workflow run # Referenzen in aktiver Quelle werden separat klassifiziert, nur wenn die Issue/PR-Auflösung fehlschlägt und eine Live-Same-Repository-Actions-Suche die exakte Run-ID bestätigt. Jedes gewöhnliche Vorkommen dieser Zahl in aktiver Quelle, Notizen oder dem Beitragsdatensatz bleibt eine strikte Issue/PR-Anforderung. Bestätigte Runs erscheinen als workflowRuns in der Verifikationsausgabe und dem Manifest, niemals als PR-Zuordnungen oder Mitwirkenden-Credits. Nur GitHub NOT_FOUND-Referenzen, die auf kontextuellen Commit-Body-Text beschränkt sind, nicht in Betreffzeilen, schließenden Referenzen, Provenienz und Notizen/Datensätzen vorkommen und unter der höchsten aufgelösten Nummer liegen, können weggelassen und als Manifest unavailableReferences ohne Credits gemeldet werden.

    • das Manifest ist die erforderliche Eingabe für die Neufassung, keine nachträgliche Prüfung; es enthält jeden referenzierten PR, berechtigte Mitwirkenden-Credits, Inline-Issue-Kontext, jeden direkten Commit und eine redaktionelle Eignungsklassifikation für PRs und direkte Commits
    • Schema-Version 3 ist der erforderliche flüchtige Manifestvertrag. Generieren Sie ältere Manifests neu; Version 2 ist keine unterstützte Grenze für Downstream-Reader
    • fügen Sie für eine historische Nachfüllung --seed-ref <pre-backfill-ref> einmal hinzu, damit Beitragsdatensätze aus dem vorherigen Changelog erhalten bleiben, selbst wenn ein älterer gemergter Commit seine PR-Nummer weggelassen hat; der Verifizierer schließt Datensätze für Arbeit aus, die nach dem Basis-Tag zurückgesetzt wurde, einschließlich Beta-Arbeit, die vor dem Stable-Release zurückgesetzt wurde
    • generierte Provenienzberichte listen PRs im Bereich getrennt von beibehaltenen Seed-only-PRs auf und nennen dann die eindeutige Zeilenanzahl. Ein PR, der in beiden Inventaren vorhanden ist, zählt als im Bereich; beschreiben Sie niemals die Seed-inklusiv-Gesamtzahl als Arbeit, die im aktuellen Release-Bereich gemergt wurde
    • fügen Sie wiederholbare --shipped-ref <prior-shipped-tag> hinzu, wenn sich der erreichbare Main-Closeout vom versendeten Tag unterscheidet oder spätere Forward-Port-Commits PRs neu zuordnen, die bereits veröffentlicht wurden. Jedes Tag ist eine kumulative versendete Grenze: der Verifizierer vereinigt explizite PR-Zeilen aus vollständigen Beitragsdatensätzen in nummerierten Release-Abschnitten, schließt nur überlappende PRs aus und ignoriert Unreleased. Leiten Sie diese Grenze niemals aus dem Basis-SHA, der Ziel-Prosa oder dem Ziel-Datensatz ab. Das Manifest und die generierte Provenienz behalten jedes Tag plus das exakte ausgeschlossene PR-Inventar und die Anzahl für deterministische Kandidatenvalidierung bei.
    • die Quell-PR-Erkennung begrenzt GitHub-Commit-Zuordnungen auf die ausgewählte Zielhistorie oder die eingefrorene Main-Historie für kanonische Träger. Eine kontextuelle Quellreferenz wird nur dann zu einem Beitrag, wenn ihr gemergter Commit in der Zielhistorie erreichbar ist und seine Merge-Zeit innerhalb des Ziels liegt. Behalten Sie alle Referenzen auflösbar bei, fördern Sie aber keine nicht verwandten PRs nur, weil sie während der Release-Vorbereitung mergen. Explizite Seeds behalten ihre historische Zugehörigkeit und bleiben Seed-only, es sei denn, sie werden unabhängig als im Bereich nachgewiesen. Lösen Sie jede Zuordnungsseite auf; bestehende kanonische, Cherry-Pick- und Provenienzverträge bleiben maßgeblich.
    • explizite Multi-Commit-Reverts benötigen einen Revert-Betreff und eine eigenständige Reverts <full SHA> and <full SHA>.-Deklaration (Komma-getrennte Listen mit abschließendem and funktionieren auch). Die exakte Endung to restore the previous behavior. wird akzeptiert. Doppelte, abgekürzte, eingebettete oder wiederholte Deklarationen begründen keine Rückgängigmachung. Jeder benannte Commit muss ein Single-Parent-Vorfahre sein, und das Rückanwenden aller benannten Patches muss den vollständigen Revert-Baum reproduzieren. Erkannte Deklarationen, die diesen Beweis nicht bestehen, stoppen die Verifikation. Der Beweis verwendet privates Git-Index/Object-Speicher ohne Hooks oder externe Diffs; die kanonische Single-Revert- und Revert-of-Revert-Buchhaltung bleibt intakt.
    • kanonisieren Sie Backports zum ursprünglich gemergten PR auf main: explizite Cherry-Pick-Ursprünge gewinnen, dann erfordert eine eindeutige Übereinstimmung mit normalisiertem Betreff denselben Autor und einen überlappenden geänderten Pfad. Unterdrücken Sie Release/Backport-PRs, wann immer der entsprechende Main-PR auf dem aktuellen origin/main existiert. Behalten Sie einen Release-Branch-PR nur, wenn diese Änderung zuerst dort gelandet ist und noch nicht nach main forward-portiert wurde.
    • lesen Sie das Manifest, bevor Sie ### Highlights, ### Changes oder ### Fixes bearbeiten; führen Sie keine alte gruppierte Prosa ohne erneute Prüfung fort.
    • prüfen Sie verlinkte PRs/Issues oder Diffs auf mehrdeutige Commits. Direkte Commits sind redaktionelle Eingaben, keine öffentlichen Hauptbuchzeilen; leiten Sie materielle Benutzerergebnisse aus Betreff, Body, geänderten Dateien, Tests und nahegelegenen Commits ab.
  4. Schreiben Sie nur einen ausgewählten Release-Abschnitt neu:

    • Beta: ## YYYY.M.PATCH-beta.N, enthält nur Änderungen seit der erfassten npm-Beta-Basislinie
    • Stable: ## YYYY.M.PATCH, kumulativ seit der vorherigen Stable-Basislinie
    • hinterlassen Sie keinen veralteten ## Unreleased-Abschnitt oberhalb des Ziel-Releases
    • wenn Unreleased Release-gebundene Notizen enthält, fügen Sie sie in den Zielabschnitt ein, anstatt sie zu löschen
  5. Abschnittsform:

    • ### Highlights: 5-8 Aufzählungspunkte für Stable, 0-8 für ein Beta-Delta; erfinden Sie keine Highlights für kleine Hotfix-Betas
      • fügen Sie nur eine klare benutzersichtbare Fähigkeit oder Workflow-Freischaltung, eine materielle Zuverlässigkeits-/Sicherheitskorrektur, eine breite oberflächenübergreifende Verbesserung oder einen Release-definierenden Integrations-/Kompatibilitätsmeilenstein ein
      • jedes Highlight muss in einem Satz sagen, was sich für einen Benutzer geändert hat; verwenden Sie eine Benutzergeschichte pro Aufzählungspunkt und gruppieren Sie seine unterstützenden PRs
      • schließen Sie Tests, CI, Refactorings, Docs, Katalog-Churn und Implementierungsdetails aus, es sei denn, das Ergebnis ist eine materielle Installation/Aktualisierung, Datensicherheit oder weithin sichtbare Benutzerverbesserung
    • ### Changes: neue Fähigkeiten und Verhaltensänderungen
    • ### Fixes: benutzerseitige Korrekturen zuerst, gruppiert nach Auswirkung und Oberfläche
    • gruppieren Sie verwandte Änderungen/Korrekturen nach Oberfläche und Benutzerauswirkung; vermeiden Sie einen Aufzählungspunkt pro winzigem Commit, wenn mehrere Commits eine Benutzergeschichte erzählen
    • ### Complete contribution record: generierter PR-erster Datensatz nach der gruppierten Prosa; es ist die erschöpfende Buchhaltungsoberfläche, keine zweite Release-Zusammenfassung
  6. Bewahren Sie verifizierte Zuordnung:

    • Die PR-Autorenschaft stammt vom kanonischen GitHub-PR, niemals vom Release-Commit-Autor, Committer oder Backport-Operator. Lösen Sie Co-Autoren aus dem ursprünglichen Merge-Commit dieses PR auf; Release-Carrier-Trailer und kontextuelle Erwähnungen begründen keinen Kredit auf einem anderen PR
    • erstellen Sie generierte Danksagungen aus PR-, ursprünglichem Co-Autoren- und verlinktem Reporter-Nachweis neu. Seeds behalten Mitgliedschaft und Referenzen, nicht unverifizierte alte Daten.

...

[gekürzt für die Übersetzung]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Verwandte Skills