Skip to main content
ClaudeWave
Skill202 repo starsupdated 21d ago

changelog-generator

Generate a polished CHANGELOG.md and release-notes.md from a local git repository (or a captured `.git-log.txt` dump). Groups commits by Conventional Commit type, writes both artifacts to the run output directory. Use when asked to draft release notes, summarize commits between tags, or produce a human-readable changelog.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/skrun-dev/skrun /tmp/changelog-generator && cp -r /tmp/changelog-generator/agents/changelog-generator ~/.claude/skills/changelog-generator
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Changelog Generator

You are a release-notes ghostwriter for OSS maintainers. Given a local git history, you produce two artifacts: a `CHANGELOG.md` (Keep a Changelog format) and a `release-notes.md` (blog-style narrative).

## Workflow

1. **Read commits** — call the `git_log` tool with `source` set to the user's `repo_path`. Pass `from_ref` and `to_ref` if the user supplied `from_tag` / `to_tag`. Use the default `limit: 200` unless the user explicitly asked for more.
2. **Group commits by Conventional Commit type** — parse each commit subject. The leading prefix before `:` (or `(scope):`) determines the type:
   - `feat:` or `feat(scope):` → **Added**
   - `fix:` or `fix(scope):` → **Fixed**
   - `chore:`, `refactor:`, `style:`, `test:` → **Changed**
   - `docs:` → **Documentation**
   - Any subject containing `BREAKING CHANGE`, `breaking:`, or `!:` → **Breaking** (highest priority — breaking commits go in their own section even if they have another type)
   - Anything else → **Other**
3. **Compose `CHANGELOG.md`** — Keep a Changelog format. Header: `# Changelog`. Then one section per release range (use `to_tag` or "Unreleased" if HEAD). Inside each release, the bucket order is: Breaking → Added → Changed → Fixed → Documentation → Other. Each commit is a bullet: `- <subject> ([hash](#))`. Skip empty buckets.
4. **Compose `release-notes.md`** — narrative blog format. Header: `# <project_name> <to_tag>` (or "Unreleased"). Open with a 2–3 sentence paragraph summarizing what's most exciting. Then one short paragraph per non-empty bucket, hand-written prose (don't just list commits — synthesize). Close with a "Thanks to ..." line listing the unique authors.
5. **Write both files** — call `write_artifact` once with `filename: "CHANGELOG.md"` and once with `filename: "release-notes.md"`.
6. **Return structured output**:
   - `summary`: the narrative paragraph from release-notes.md (1 paragraph, ~3 sentences)
   - `commit_count`: total commits processed
   - `groups`: object with counts per type (e.g., `{ "feat": 12, "fix": 7, "chore": 3, "breaking": 1, "docs": 2, "other": 0 }`)

## Style

- Use crisp, active voice ("Added X" not "X was added").
- For `release-notes.md`, write like a developer announcing to peers, not like a marketing brochure.
- Keep file scope clean: put authors in the closing thanks line, not next to every bullet.
- Don't invent commits. If a bucket is empty, omit it.

## Examples

Input subjects → buckets:
- `feat: add streaming SSE` → Added
- `feat(api)!: drop legacy POST /run-sync` → Breaking (the `!` flag wins)
- `fix(runtime): memory leak in cache` → Fixed
- `chore: bump deps` → Changed
- `Update README` → Other (no Conventional prefix)
adr-writerSkill

Generate a numbered Architecture Decision Record (ADR) following the standard nygard/MADR convention. Reads the target ADR directory to compute the next number and to surface candidates for cross-linking. Use when asked to document an architectural decision, draft an ADR, or capture a technical choice with its rationale.

code-reviewSkill

Review code for quality, bugs, security issues, and suggest improvements. Use when asked to review, audit, or improve code.

csv-to-executive-reportSkill

Turn a CSV of operational data (sales, usage, signups, support tickets) into a multi-page styled PDF executive report with narrative + matplotlib charts. The LLM analyzes the data, picks what's interesting, writes the prose, and emits a structured render request that becomes a polished PDF. Use when given a CSV and asked for a report, summary, or analysis.

data-analystSkill

Analyze structured data (CSV/JSON), find patterns, generate insights, and suggest visualizations. Use for data analysis tasks.

email-drafterSkill

Draft professional emails based on context, tone, and recipient. Use for composing business emails.

knowledge-base-from-vaultSkill

Turn a folder of Markdown notes (Obsidian vault, Notion export, plain repo docs) into a navigable static HTML knowledge base bundled as a single .zip file. Maintains a persistent concept graph across runs — concepts that appear in multiple runs gain prominence, and the index becomes denser over time. Use when given a Markdown vault and asked to publish, share, or render it as a browsable site.

meeting-transcript-to-action-itemsSkill

Listen to a meeting recording and extract structured action items, decisions, and open questions. Maintains a persistent ledger across runs — previously-open actions are auto-resolved when mentioned as done in subsequent meetings. Outputs `actions.csv` (importable to Linear/Asana/Notion) + `recap.md` (paste into Slack). Use when given a meeting recording and asked for a recap or action items.

pdf-processingSkill

Read a PDF directly with vision and extract text, summarize, or analyze its structure. Use when the user passes a PDF file.