126f2a4d-6d2e-461d-af9a-b074ed66dd1b
changelog-automation
Automate changelog generation from commits, PRs, and releases following Keep a Changelog format. Use when setting up release workflows, generating release notes, or standardizing commit conventions.
Core metrics
Task completion
5 / 5
100%
Execution duration
13m 19s
Created 2026-02-15 06:57:36.653Z
Token total
1,930,868
Input 1,909,430 · Output 21,438
Tool calls
43
Retries 5%
Tool success rate
93%
0 permission events
Skill overview
Source: /Users/mingzhe/.agents/skills/changelog-automation/SKILL.md
Automate changelog generation from commits, PRs, and releases following Keep a Changelog format. Use when setting up release workflows, generating release notes, or standardizing commit conventions.
verifiedEvidence refs: marker-1, marker-2, marker-3
Can execute: Configure Conventional Commits Validation
verifiedEvidence refs: marker-5, marker-20
Can execute: Implement Automated Changelog Generation
verifiedEvidence refs: marker-21, marker-28
Can execute: Create GitHub Actions Release Workflow
verifiedEvidence refs: marker-29, marker-33
Can execute: Configure git-cliff for Enhanced Changelog
verifiedEvidence refs: marker-34, marker-42
Can execute: Create Release Documentation and Guidelines
verifiedEvidence refs: marker-43, marker-49
Constraint coverage: Must follow Keep a Changelog format (Added, Changed, Deprecated, Removed, Fixed, Security sections)
verifiedEvidence refs: marker-1, marker-2
Constraint coverage: Must implement Conventional Commits validation (feat, fix, docs, etc.)
verifiedEvidence refs: marker-1, marker-2
Constraint coverage: Must support semantic versioning (MAJOR.MINOR.PATCH) based on commit types
verifiedEvidence refs: marker-1, marker-2
Benchmark taskset (TASKSET.md)
Taskset - changelog-automation
Goal
Implement automated changelog generation following Keep a Changelog format and Conventional Commits specification. Set up tooling to automatically track changes from commits, generate release notes, and manage semantic versioning without manual intervention.
Constraints
-
Must follow Keep a Changelog format (Added, Changed, Deprecated, Removed, Fixed, Security sections)
-
Must implement Conventional Commits validation (feat, fix, docs, etc.)
-
Must support semantic versioning (MAJOR.MINOR.PATCH) based on commit types
-
Must integrate with CI/CD for automated releases
-
Must handle breaking changes explicitly with proper warnings
-
Should validate commit messages before acceptance
-
Should generate both CHANGELOG.md and release notes
-
Must not allow malformed commit messages to be merged
Tasks
Task 1: Configure Conventional Commits Validation
Set up commitlint with husky to enforce Conventional Commits specification. Configure rules for commit message types (feat, fix, docs, style, refactor, perf, test, chore, ci, build, revert), scope validation, subject case requirements, and maximum length constraints. Ensure pre-commit hooks reject non-conforming messages.
Deliverables:
-
commitlint.config.js with custom rules
-
Husky git hooks configured for commit-msg validation
-
Documentation of allowed commit types and scopes
-
Test validation by attempting non-conforming commits
Task 2: Implement Automated Changelog Generation
Set up standard-version or semantic-release to automatically generate CHANGELOG.md from conventional commits. Configure changelog sections mapping (feat→Features, fix→Bug Fixes, perf→Performance), commit grouping, issue linking format, and version bump logic. Include both public-facing changelog and internal release notes templates.
Deliverables:
-
.versionrc.js or release.config.js configuration
-
CHANGELOG.md template structure
-
Scripts for manual and automated releases
-
Example changelog entries from test commits
Task 3: Create GitHub Actions Release Workflow
Build CI/CD pipeline that automatically creates releases on main branch merges. Workflow should analyze commits since last release, determine version bump (major/minor/patch), update CHANGELOG.md, create git tags, generate GitHub releases with categorized notes, and optionally publish packages. Include manual trigger option for emergency releases.
Deliverables:
-
.github/workflows/release.yml
-
Automated version bumping logic
-
GitHub Release with generated notes
-
Documentation for manual release triggers
Task 4: Configure git-cliff for Enhanced Changelog
Implement git-cliff as alternative/complementary changelog generator with custom templates. Configure commit parsing rules, changelog structure with grouped sections, GitHub PR linking, contributor attribution, and custom formatting. Enable both full changelog generation and range-based release notes.
Deliverables:
-
cliff.toml configuration file
-
Custom changelog templates
-
Scripts for full and incremental generation
-
Comparison documentation vs standard-version approach
Task 5: Create Release Documentation and Guidelines
Write comprehensive team documentation covering commit message conventions, breaking change procedures, version bumping rules, release process workflows, and troubleshooting guides. Include examples of good/bad commit messages, breaking change format, emergency release procedures, and rollback strategies.
Deliverables:
-
CONTRIBUTING.md with commit guidelines
-
Release process documentation
-
Breaking change template and examples
-
Team training materials with examples
Acceptance Checklist
-
Commitlint rejects commits not following conventional format
-
Husky hooks prevent non-conforming commits from being created
-
CHANGELOG.md automatically updates on version bump with proper sections
-
Semantic version correctly increments (patch for fix, minor for feat, major for breaking)
-
Breaking changes are clearly marked with
!or BREAKING CHANGE footer -
GitHub Actions workflow creates release on main branch push
-
GitHub Release includes categorized notes (Features, Bug Fixes, etc.)
-
Git tags follow semantic versioning pattern (v1.2.3)
-
Issue references in commits become clickable links in changelog
-
PR numbers are linked in generated release notes
-
Manual release trigger works with specified version type
-
git-cliff generates equivalent changelog to standard-version
-
Documentation includes 5+ examples of valid commit messages
-
Team guidelines specify all allowed commit types and scopes
-
Rollback procedure is documented and tested
Required Output Schema
{
"taskset_id": "changelog-automation",
"setup_time_minutes": 0,
"tasks_completed": 0,
"validation_results": {
"commitlint_working": false,
"hooks_installed": false,
"changelog_generates": false,
"versioning_correct": false,
"breaking_changes_handled": false,
"ci_workflow_exists": false,
"releases_automated": false,
"issue_linking_works": false,
"documentation_complete": false
},
"artifacts_created": {
"config_files": [],
"workflows": [],
"documentation": [],
"test_commits": []
},
"metrics": {
"commit_types_configured": 0,
"changelog_sections": 0,
"automation_coverage_percent": 0,
"validation_rules_count": 0
},
"notes": ""
}
Task execution overview
Start: 2026-02-15 06:58:01.614Z · End: 2026-02-15 07:01:21.493Z
Duration: 3m 20s · Tokens: N/A
Start: 2026-02-15 07:01:21.493Z · End: 2026-02-15 07:02:25.344Z
Duration: 1m 4s · Tokens: N/A
Start: 2026-02-15 07:02:25.344Z · End: 2026-02-15 07:03:11.170Z
Duration: 46s · Tokens: N/A
Start: 2026-02-15 07:03:11.170Z · End: 2026-02-15 07:04:54.976Z
Duration: 1m 44s · Tokens: N/A
Start: 2026-02-15 07:04:54.976Z · End: 2026-02-15 07:09:50.342Z
Duration: 4m 55s · Tokens: N/A
Execution timeline
Playback
Timeline selection jumps playback to the corresponding timestamp.