Documentation
changelog-setup - Claude MCP Skill
Full changelog infrastructure from scratch. Greenfield workflow. Installs semantic-release, commitlint, GitHub Actions, LLM synthesis, public page.
SEO Guide: Enhance your AI agent with the changelog-setup tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to full changelog infrastructure from scratch. greenfield workflow. installs semantic-release, commitli... Download and configure this skill to unlock new capabilities for your AI workflow.
Documentation
SKILL.md# Changelog Setup
Complete changelog and release notes infrastructure for a project that doesn't have one.
## When to Use
Project has no release infrastructure. Starting fresh.
## Workflow
This workflow installs components in sequence:
### 1. Assess (confirm greenfield)
Run `changelog-assess` to confirm this is actually greenfield. If partial infrastructure exists, consider audit/reconcile instead.
### 2. Install Dependencies
```bash
pnpm add -D semantic-release \
@semantic-release/changelog \
@semantic-release/git \
@semantic-release/github \
@commitlint/cli \
@commitlint/config-conventional
```
### 3. Configure semantic-release
Create `.releaserc.js`:
```javascript
// See references/semantic-release-config.md for full config
module.exports = {
branches: ['main', 'master'],
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
['@semantic-release/changelog', {
changelogFile: 'CHANGELOG.md',
}],
'@semantic-release/npm', // or remove if not publishing to npm
['@semantic-release/git', {
assets: ['CHANGELOG.md', 'package.json'],
message: 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}',
}],
'@semantic-release/github',
],
};
```
### 4. Configure commitlint
Create `commitlint.config.js`:
```javascript
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'feat', 'fix', 'docs', 'style', 'refactor',
'perf', 'test', 'build', 'ci', 'chore', 'revert'
]],
'subject-case': [2, 'always', 'lower-case'],
'header-max-length': [2, 'always', 100],
},
};
```
### 5. Add Lefthook Hook
Update `lefthook.yml` (create if doesn't exist):
```yaml
commit-msg:
commands:
commitlint:
run: pnpm commitlint --edit {1}
```
Run `pnpm lefthook install` to activate.
### 6. Create GitHub Actions Workflow
Create `.github/workflows/release.yml`:
```yaml
# See references/github-actions-release.md for full workflow
name: Release
on:
push:
branches: [main, master]
permissions:
contents: write
issues: write
pull-requests: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- run: pnpm build
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: pnpm semantic-release
synthesize-notes:
needs: release
if: needs.release.outputs.new_release_published == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Synthesize Release Notes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
# See references/llm-synthesis.md for script
node scripts/synthesize-release-notes.mjs
```
### 7. Configure LLM Synthesis
Create `.release-notes-config.yml`:
```yaml
# App-specific configuration for release notes synthesis
app_name: "Your App Name"
personality: "professional, friendly, confident"
audience: "non-technical users"
tone_examples:
- "We made it faster to find what you need"
- "Your dashboard now shows more detail"
avoid:
- Technical jargon (API, SDK, webhook, etc.)
- Git commit references
- Internal code names
- Version numbers in descriptions
categories:
feat: "New Features"
fix: "Improvements"
perf: "Performance"
chore: "Behind the Scenes"
refactor: "Behind the Scenes"
docs: "Documentation"
test: "Quality"
```
Create `scripts/synthesize-release-notes.mjs`:
(See `references/llm-synthesis-script.md` for full implementation)
### 8. Scaffold Public Changelog Page
Run `changelog-page` to scaffold:
- `/app/changelog/page.tsx` - Main page component
- `/app/changelog.xml/route.ts` - RSS feed
- `/lib/github-releases.ts` - GitHub API client
### 9. Set Up Secrets
Required GitHub secrets:
- `GITHUB_TOKEN` - Automatically provided
- `GEMINI_API_KEY` - Get from Google AI Studio
- `NPM_TOKEN` - Only if publishing to npm
```bash
# Add Gemini API key to GitHub secrets
gh secret set GEMINI_API_KEY --body "your-api-key"
```
### 10. Verify
Run `changelog-verify` to confirm everything works:
- Commit with conventional format succeeds
- commitlint rejects bad commits
- Push to main triggers release workflow
- GitHub Release created
- LLM synthesis runs
- Public page displays notes
## Quality Gate
Do not consider setup complete until `changelog-verify` passes.
## Handoff
When complete, the project should have:
- semantic-release configured
- commitlint enforcing conventional commits
- Lefthook running commitlint on commit-msg
- GitHub Actions workflow for releases
- LLM synthesis for user-friendly notes
- Public changelog page at `/changelog`
- RSS feed at `/changelog.xml`
Developer workflow:
1. Write code
2. Commit with `feat:`, `fix:`, etc.
3. Push/merge to main
4. Everything else is automaticSignals
Information
- Repository
- phrazzld/claude-config
- Author
- phrazzld
- Last Sync
- 3/2/2026
- Repo Updated
- 3/1/2026
- Created
- 1/23/2026
Reviews (0)
No reviews yet. Be the first to review this skill!
Related Skills
upgrade-webkit
Upgrade Bun's Webkit fork to the latest upstream version of Webkit.
upgrade-nodejs
Upgrading Bun's Self-Reported Node.js Version
cursorrules
CrewAI Development Rules
cn-check
Install and run the Continue CLI (`cn`) to execute AI agent checks on local code changes. Use when asked to "run checks", "lint with AI", "review my changes with cn", or set up Continue CI locally.
Related Guides
Bear Notes Claude Skill: Your AI-Powered Note-Taking Assistant
Learn how to use the bear-notes Claude skill. Complete guide with installation instructions and examples.
Mastering tmux with Claude: A Complete Guide to the tmux Claude Skill
Learn how to use the tmux Claude skill. Complete guide with installation instructions and examples.
OpenAI Whisper API Claude Skill: Complete Guide to AI-Powered Audio Transcription
Learn how to use the openai-whisper-api Claude skill. Complete guide with installation instructions and examples.