一键导入
changelog-manager
Reviews git history and updates CHANGELOG.md with entries for [Unreleased] section (converted from agent)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Reviews git history and updates CHANGELOG.md with entries for [Unreleased] section (converted from agent)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Provides Mermaid diagram syntax, best practices, and styling rules for technical visualizations. Use when creating diagrams, flowcharts, sequence diagrams, class diagrams, state diagrams, ER diagrams, architecture diagrams, C4 diagrams, visualizations, or any visual documentation in markdown. Always use this skill when generating or updating Mermaid code blocks.
Documentation management workflow for MkDocs sites and standalone markdown files — initialize, generate, update docs, and create change summaries. Use when asked to "create docs", "write README", "update documentation", "generate docs site", "write CONTRIBUTING", "manage documentation", or "docs changelog".
Conduct an adaptive interactive interview on any topic and produce a structured markdown report, summary, or implementation plan. Use when the user says "interview me", "interview me about", "run an interview on", "help me think through", or wants guided discovery on any subject. Also triggers on "talk me through", "explore X with me", "help me plan Y", or "walk me through my thinking on Z" when the user wants a guided conversation rather than a direct answer. Applies broadly — career decisions, project ideas, product direction, personal goals, research questions, team problems — not just technical topics.
Analyze an existing spec for inconsistencies, missing information, ambiguities, and structure issues. Use when user says "analyze spec", "review spec", "spec quality check", "validate requirements", "audit spec", or "check spec quality".
Provides architectural pattern knowledge for designing feature implementations including MVC, event-driven, microservices, and CQRS patterns. Use when designing system architecture or choosing implementation patterns.
Systematic, hypothesis-driven debugging workflow with triage-based track routing. Use when asked to "fix this bug", "debug this", "why is this failing", "this is broken", "investigate this error", "track down this issue", or any debugging situation. Supports --deep flag to force full investigation.
| name | changelog-manager |
| description | Reviews git history and updates CHANGELOG.md with entries for [Unreleased] section (converted from agent) |
| dependencies | [] |
When invoked, perform the following changelog management tasks: analyze git history and help update CHANGELOG.md with well-written entries for the [Unreleased] section.
Execute these steps in order:
Look for CHANGELOG.md in the repository root:
ls -la CHANGELOG.md
If not found, check common locations or ask the user:
docs/CHANGELOG.mdCHANGES.mdRead the changelog and identify:
## [0.2.0])## [Unreleased]If no CHANGELOG.md exists, ask the user if they want you to create one.
Path filter note: If a path filter is provided in the prompt (e.g., -- agent-alchemy/sdd/), append it to all git log commands in this step to scope results to that sub-project.
Find the tag for the last release:
git tag --list 'v*' --sort=-version:refname | head -5
Get commits with extended format including body (for breaking change notices):
git log v{version}..HEAD --format="%H|%s|%b" --no-merges [path_filter]
If no tags exist, get recent commits with warning:
git log --format="%H|%s|%b" --no-merges -50 [path_filter]
Extract PR/issue references for later enrichment:
git log v{version}..HEAD --no-merges --oneline [path_filter] | grep -oE '#[0-9]+' | sort -u
For more context on specific commits, use:
git show --stat {commit_sha}
Purpose: Understand scope and impact of changes.
Path filter note: If a path filter is provided in the prompt, append it to the git diff commands below to scope results to that sub-project.
Get files changed with status (A=Added, M=Modified, D=Deleted, R=Renamed):
git diff v{version}..HEAD --name-status [path_filter]
Get summary by directory:
git diff v{version}..HEAD --dirstat [path_filter]
Categorize files by area:
| Path Pattern | Category | Changelog Relevance |
|---|---|---|
src/, lib/ | Core code | High |
tests/, __tests__/ | Tests | Low (skip) |
docs/, *.md | Documentation | Medium |
Root configs (*.json, *.toml) | Configuration | High |
.github/, CI files | CI/CD | Low (skip) |
Flag cross-cutting changes: If 5+ directories affected, note "wide-ranging changes" in summary.
Purpose: Detect API changes and breaking changes.
Detect new public interfaces:
# Python: new functions/classes (public only, skip underscore-prefixed)
git diff v{version}..HEAD -- "*.py" | grep -E "^\+\s*(def |class )" | grep -v "_"
# JS/TS: new exports
git diff v{version}..HEAD -- "*.ts" "*.js" | grep -E "^\+.*export"
Detect removed interfaces (BREAKING):
# Python
git diff v{version}..HEAD -- "*.py" | grep -E "^-\s*(def |class )" | grep -v "_"
# JS/TS
git diff v{version}..HEAD -- "*.ts" "*.js" | grep -E "^-.*export"
Detect dependency changes:
git diff v{version}..HEAD -- pyproject.toml package.json requirements*.txt
Track findings internally:
new_apis[] - new public functions/classesremoved_apis[] - BREAKINGmodified_apis[] - potentially breakingdependency_changes[]Purpose: Get richer context from PRs and issues.
Check gh CLI availability:
which gh && gh auth status 2>/dev/null
If gh is available, fetch PR context for each PR number found:
gh pr view {number} --json title,body,labels,files
Fallback: If gh unavailable, continue with git data only (log this to user).
Extract from PR data:
breaking-change, bug, feature, security)Primary: Use conventional commit prefixes:
| Prefix | Category | Include in Changelog |
|---|---|---|
feat: | Added | Yes |
fix: | Fixed | Yes |
refactor: | Changed | Yes (if user-facing) |
change: | Changed | Yes |
perf: | Changed | Yes |
security: | Security | Yes |
deprecate: | Deprecated | Yes |
remove: | Removed | Yes |
docs: | - | No (internal) |
chore: | - | No (internal) |
test: | - | No (internal) |
ci: | - | No (internal) |
style: | - | No (internal) |
build: | - | No (internal) |
Secondary signals (override/augment when detected):
| Signal | Category | Priority |
|---|---|---|
| Removed export detected | Removed + BREAKING | High |
PR label breaking-change | Add BREAKING flag | High |
PR label security | Security | High |
| New export detected | Added | Medium |
For commits without conventional prefixes, use diff analysis results to determine the appropriate category.
Entry sources (priority order):
Entry Format:
Add support for (authentication)Breaking change format:
### Removed
- **BREAKING**: Remove deprecated `oldFunction` (use `newFunction` instead)
Group related changes when multiple commits touch same feature (>50% file overlap).
Good Examples:
Add dark mode toggle to settings pageFix crash when uploading files larger than 10MBChange password requirements to enforce minimum 12 characters**BREAKING**: Remove deprecated v1 API endpointsPoor Examples (avoid):
Updated code (too vague)Fixed bug (doesn't explain what)Refactored the authentication module to use dependency injection (too technical)Show summary stats:
Analyzed N commits since vX.Y.Z:
- Files changed: X (Y core, Z tests)
- New APIs detected: X
- Removed APIs detected: X (BREAKING)
- PR context enriched: X of Y
Prominent breaking changes section (if any detected):
BREAKING CHANGES DETECTED:
- Removed `oldFunction` from module.py
- Changed signature of `processData()`
Show the user:
Prompt the user to choose:
Based on {N} commits since v{version}, I suggest these changelog entries:
### Added
- Entry 1
- Entry 2
### Fixed
- Entry 3
### Changed
- Entry 4
Would you like to:
1. Approve all entries
2. Edit entries (tell me what to change)
3. See detailed analysis
4. See code diffs
5. Skip certain entries
Once approved, modify CHANGELOG.md:
[Unreleased]Category Order (per Keep a Changelog):
Sub-project headings: When a scope is provided in the prompt, place entries under a sub-project heading within [Unreleased]:
## [Unreleased]
### sdd
#### Added
- New entry scoped to sdd
### agent-alchemy-tools
#### Fixed
- Fix scoped to agent-alchemy-tools
Use ### for sub-project names and #### for categories within them. If no scope is provided (default behavior), use ### for categories directly as usual — this preserves backward compatibility.
| Scenario | Handling |
|---|---|
| No commits since release | Report "No new commits found since {version}" and exit gracefully |
| No tags exist | Use last 50 commits with warning to user |
| gh CLI unavailable | Skip PR enrichment, proceed with git data only |
| PR not found | Continue without that PR's context |
| Massive refactor (100+ files) | Warn about scope, suggest grouping entries |
| No conventional prefix | Use diff analysis for categorization |
| Merge commits in history | Skip merge commits (use --no-merges) |
| Commits already in changelog | Compare and skip duplicates |
| Squash-merged PRs | Treat as single entry, check PR for details |
Auto-flag as BREAKING:
Flag for review (ask user):
**BREAKING**: prefixWhat this component does: Analyzes git history and updates CHANGELOG.md with well-categorized entries following Keep a Changelog format, including breaking change detection and PR enrichment.
Capabilities needed:
Origin: Converted from agent changelog-manager — originally invoked as a sub-agent
Complexity hint: Originally ran on a sonnet model
Original tool scope: Shell execution, file reading, file editing, file searching, user interaction
Adaptation guidance:
gh CLI integration (Step 5) is optional and gracefully degrades