Gemini-cli docs-changelog
git clone https://github.com/google-gemini/gemini-cli
T=$(mktemp -d) && git clone --depth=1 https://github.com/google-gemini/gemini-cli "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.gemini/skills/docs-changelog" ~/.claude/skills/google-gemini-gemini-cli-docs-changelog && rm -rf "$T"
.gemini/skills/docs-changelog/SKILL.mdProcedure: Updating Changelog for New Releases
Objective
To standardize the process of updating changelog files (
latest.md,
preview.md, index.md) based on automated release information.
Inputs
- version: The release version string (e.g.,
,v0.28.0
).v0.29.0-preview.2 - TIME: The release timestamp (e.g.,
).2026-02-12T20:33:15Z - BODY: The raw markdown release notes, containing a "What's Changed" section and a "Full Changelog" link.
Guidelines for latest.md
and preview.md
Highlights
latest.mdpreview.md- Aim for 3-5 key highlight points.
- Each highlight point must start with a bold-typed title that summarizes the
change (e.g.,
).**New Feature:** A brief description... - Prioritize summarizing new features over other changes like bug fixes or chores.
- Avoid mentioning features that are "experimental" or "in preview" in Stable Releases.
- DO NOT include PR numbers, links, or author names in these highlights.
- Refer to
for the correct style and tone..gemini/skills/docs-changelog/references/highlights_examples.md
Initial Processing
- Analyze Version: Determine the release path based on the
string.version- If
contains "nightly", STOP. No changes are made.version - If
ends inversion
, follow the Path A: New Minor Version procedure..0 - If
does not end inversion
, follow the Path B: Patch Version procedure..0
- If
- Process Time: Convert the
input into two formats for later use:TIME
andyyyy-mm-dd
.Month dd, yyyy - Process Body:
- Save the incoming
content to a temporary file for processing.BODY - In the "What's Changed" section of the temporary file, reformat all pull
request URLs to be markdown links with the PR number as the text (e.g.,
).[#12345](URL) - If a "New Contributors" section exists, delete it.
- Preserve the "Full Changelog" link. The processed content of this temporary file will be used in subsequent steps.
- Save the incoming
Path A: New Minor Version
Use this path if the version number ends in
..0
Important: Based on the version, you must choose to follow either section A.1 for stable releases or A.2 for preview releases. Do not follow the instructions for the other section.
A.1: Stable Release (e.g., v0.28.0
)
v0.28.0For a stable release, you will generate two distinct summaries from the changelog: a concise announcement for the main changelog page, and a more detailed highlights section for the release-specific page.
-
Create the Announcement for
:index.md- Generate a concise announcement summarizing the most important changes. Each announcement entry must start with a bold-typed title that summarizes the change.
- Important: The format for this announcement is unique. You must
use the existing announcements in
and the example withindocs/changelogs/index.md
as your guide. This format includes PR links and authors. Stick to 1 or 2 PR links and authors..gemini/skills/docs-changelog/references/index_template.md - Add this new announcement to the top of
.docs/changelogs/index.md
-
Create Highlights and Update
:latest.md- Generate a comprehensive "Highlights" section, following the guidelines
in the "Guidelines for
andlatest.md
Highlights" section above.preview.md - Take the content from
..gemini/skills/docs-changelog/references/latest_template.md - Populate the template with the
,version
, generatedrelease_date
, and the processed content from the temporary file.highlights - Completely replace the contents of
with the populated template.docs/changelogs/latest.md
- Generate a comprehensive "Highlights" section, following the guidelines
in the "Guidelines for
A.2: Preview Release (e.g., v0.29.0-preview.0
)
v0.29.0-preview.0- Update
:preview.md- Generate a comprehensive "Highlights" section, following the highlight guidelines.
- Take the content from
..gemini/skills/docs-changelog/references/preview_template.md - Populate the template with the
,version
, generatedrelease_date
, and the processed content from the temporary file.highlights - Completely replace the contents of
with the populated template.docs/changelogs/preview.md
Path B: Patch Version
Use this path if the version number does not end in
..0
Important: Based on the version, you must choose to follow either section B.1 for stable patches or B.2 for preview patches. Do not follow the instructions for the other section.
B.1: Stable Patch (e.g., v0.28.1
)
v0.28.1- Target File:
docs/changelogs/latest.md - Perform the following edits on the target file:
-
Update the version in the main header. The line should read,
# Latest stable release: {{version}} -
Update the rease date. The line should read,
Released: {{release_date_month_dd_yyyy}} -
Determine if a "What's Changed" section exists in the temporary file If so, continue to step 4. Otherwise, skip to step 5.
-
Prepend the processed "What's Changed" list from the temporary file to the existing "What's Changed" list in
. Do not change or replace the existing list, only add to the beginning of it.latest.md -
In the "Full Changelog", edit only the end of the URL. Identify the last part of the URL that looks like
and update it to be...{previous_version}
....{version}Example: assume the patch version is
. Changev0.29.1
toFull Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.1
-
B.2: Preview Patch (e.g., v0.29.0-preview.3
)
v0.29.0-preview.3- Target File:
docs/changelogs/preview.md - Perform the following edits on the target file:
-
Update the version in the main header. The line should read,
# Preview release: {{version}} -
Update the rease date. The line should read,
Released: {{release_date_month_dd_yyyy}} -
Determine if a "What's Changed" section exists in the temporary file If so, continue to step 4. Otherwise, skip to step 5.
-
Prepend the processed "What's Changed" list from the temporary file to the existing "What's Changed" list in
. Do not change or replace the existing list, only add to the beginning of it.preview.md -
In the "Full Changelog", edit only the end of the URL. Identify the last part of the URL that looks like
and update it to be...{previous_version}
....{version}Example: assume the patch version is
. Changev0.29.0-preview.1
toFull Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0-preview.0Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2…v0.29.0-preview.1
-
Finalize
- After making changes, if
fails, it may be necessary to runnpm run format
first to ensure all formatting dependencies are available. Then, runnpm install
to ensure consistency.npm run format - Delete any temporary files created during the process.