一键导入
changelog-cli
// Generate a user-facing changelog for the next stable release. Reads git log between the last stable tag and HEAD, categorizes changes, and outputs formatted release notes. Use before triggering a stable release.
// Generate a user-facing changelog for the next stable release. Reads git log between the last stable tag and HEAD, categorizes changes, and outputs formatted release notes. Use before triggering a stable release.
Create AI videos, manage avatars, translate videos, and download results via the HeyGen API. Use when an agent needs to generate videos from text prompts, create avatar-based videos, translate existing videos, or automate video production workflows.
End-to-end test of the heygen CLI against the live API. Builds the binary, then exercises auth, list, get, --human, schema, error handling, and the full create-poll-download-delete write path. Spends a small number of API credits per run. Use before cutting a stable release.
| name | changelog-cli |
| description | Generate a user-facing changelog for the next stable release. Reads git log between the last stable tag and HEAD, categorizes changes, and outputs formatted release notes. Use before triggering a stable release. |
| argument-hint | [version, e.g. v0.0.6] |
Generate release notes for a stable release by summarizing git commits since the last stable tag.
# Find the last stable tag
LAST_STABLE=$(git tag --list 'v*' --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1)
If LAST_STABLE is empty (first stable release), use the full history by
omitting the range:
# If LAST_STABLE is set:
git log "${LAST_STABLE}..origin/main" --oneline
# If LAST_STABLE is empty (first release):
git log origin/main --oneline
If a version argument was provided (e.g., /changelog-cli v0.0.6), use it as
the heading. Otherwise, infer the next version by bumping the patch of
$LAST_STABLE (or use v0.1.0 if no stable tag exists).
Use the same range logic from Step 1 (with or without $LAST_STABLE):
# With a previous stable tag:
git log "${LAST_STABLE}..origin/main" --format="### %h%n%s%n%n%b%n---"
# First release (no stable tag):
git log origin/main --format="### %h%n%s%n%n%b%n---"
Also read the PR descriptions for any merged PRs in the range to get richer context on what changed and why:
# Extract PR numbers from commit messages (works on both GNU and BSD grep)
git log ${LAST_STABLE:+"${LAST_STABLE}.."}origin/main --oneline | grep -o '#[0-9]\+' | tr -d '#' | sort -u
For each PR number, read the PR body:
gh pr view <number> --json title,body --jq '.title + "\n" + .body'
Group changes into these categories (omit empty categories):
Output the changelog in this format:
## <version> (<date>)
### New
- **Short title.** One-sentence description of what changed and why it matters. (#PR)
### Improved
- **Short title.** One-sentence description. (#PR)
### Fixed
- **Short title.** One-sentence description. (#PR)
### Internal
- Codegen resync from EF abcdef1 (#PR)
- Updated CI workflow (#PR)
Rules:
Print the formatted changelog and ask the releaser to confirm or edit before proceeding. Once confirmed, the releaser should paste it into the GitHub release notes when the release is published.