Skip to content
Back to skills

Ywc Changelog Release Notes

ASecurity

(ywc) Use when generating CHANGELOG.md entries or user-facing release notes from git history, merged PRs, or ywc-release-pr-list output after a release or sprint. Triggers: "changelog 작성", "release notes", "リリースノート作成", "changelog". Do not use for merged-PR attribution tables (use ywc-release-pr-list), committing release-note changes (use ywc-commit), creating the release PR (use ywc-create-pr), or post-fix incident analysis (use ywc-incident-postmortem).

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentsgobashdebugginggitapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 11 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add yongwoon/ywc-agent-toolkit --skill ywc-changelog-release-notes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ywc Changelog Release Notes?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ywc Changelog Release Notes
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yongwoon-ywc-changelog-release-notes-ywc-agent-toolkit/badge)](https://www.skillsdirectory.com/skills/yongwoon-ywc-changelog-release-notes-ywc-agent-toolkit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ywc-changelog-release-notes
description: >-
  (ywc) Use when generating CHANGELOG.md entries or user-facing release notes
  from git history, merged PRs, or ywc-release-pr-list output after a release
  or sprint. Triggers: "changelog 작성", "release notes",
  "リリースノート作成", "changelog". Do not use for merged-PR attribution
  tables (use ywc-release-pr-list), committing release-note changes (use
  ywc-commit), creating the release PR (use ywc-create-pr), or post-fix
  incident analysis (use ywc-incident-postmortem).
---


**Announce at start:** "I'm using the ywc-changelog-release-notes skill to generate CHANGELOG entries and release notes."

## Rationalization Defense

| Excuse | Reality |
|---|---|
| "git log is good enough for release notes" | Raw commits are too technical for users and inconsistently formatted even for developers. |
| "My project is too small for a CHANGELOG" | Even small projects benefit from structured history when debugging regressions or onboarding users. |
| "I'll write it manually — it's faster" | Manual writing misses commits, inconsistently categorizes, and skips security entries. |
| "ywc-release-pr-list already covers this" | ywc-release-pr-list *lists* PRs in a table; this skill *formats* them as readable, categorized changelog entries. |
| "Release notes and CHANGELOG are the same thing" | Technical CHANGELOG targets developers (breaking changes, API diffs); release notes target users (features in plain language). |
| "Keep a Changelog format is too rigid" | The format is a starting template. Categories prevent omitting security entries and ensure consistent grouping. |
| "I can just tag and push without notes" | Undocumented releases create support burden. Users ask what changed; a changelog prevents repetitive questions. |

## Arguments

| Flag | Description |
|---|---|
| `--changelog` | Generate CHANGELOG.md entry in Keep a Changelog format (default) |
| `--release` | Generate user-facing release notes in plain language |
| `--both` | Generate both CHANGELOG entry and user-facing release notes |
| `--from <tag>` | Start diff from this git tag (default: last tag from `git describe`) |
| `--to <ref>` | End diff at this ref (default: HEAD) |
| `--version <v>` | Set the release version string (e.g., `1.2.0`) |
| `--pr-list <file>` | Read PR list from ywc-release-pr-list output instead of git log |
| `--dry-run` | Print to stdout only — do not modify CHANGELOG.md |

## Dynamic Context

```bash
# Last tag to determine version range
git describe --tags --abbrev=0 2>/dev/null || echo "(no tags yet)"

# Commits since last tag
git log $(git describe --tags --abbrev=0 2>/dev/null)..HEAD --oneline 2>/dev/null | head -30

# Merged PRs if gh CLI is available
gh pr list --state merged --limit 30 --json number,title,mergedAt,labels 2>/dev/null | head -c 3000
```

## Workflow

**Step 1 — Detect version range**
Determine `from` (last tag or `--from`) and `to` (HEAD or `--to`). If `--version` is not provided, ask the user for the release version in the current conversation, then **immediately continue to Step 2 in the same turn after receiving the answer** — do not end the turn or wait for further input after receiving it.

**Step 2 — Parse commits**
Group by conventional commit type: `feat` → Added, `fix` → Fixed, `refactor`/`chore` → internal (omit from user notes), `security` → Security, `BREAKING CHANGE` → Changed.

**Step 3 — Enrich from PRs**
If gh CLI is available or `--pr-list` is provided, use PR titles and labels for richer descriptions than raw commit messages.

**Step 4 — Generate CHANGELOG entry**
Keep a Changelog format: Added / Changed / Deprecated / Removed / Fixed / Security. Prepend to CHANGELOG.md (or `--dry-run` to stdout).

**Step 5 — Generate release notes (if --release or --both)**
Plain language summary: remove technical jargon, omit internal refactors and dependency bumps, frame features from user perspective.

**Step 6 — Suggest git tag command**
Output: `git tag -a v1.2.0 -m "Release v1.2.0"` for the developer to run.

## Output Format

### CHANGELOG.md entry (Keep a Changelog)

```markdown
## [1.2.0] - 2026-05-01

### Added
- User profile photo upload

### Fixed
- Login redirect loop after password reset (#42)

### Security
- Upgraded dependency X to address CVE-YYYY-XXXXX
```

### User-facing release notes

```markdown
# What's new in v1.2.0

**Profile photos**: You can now upload a photo from Settings → Profile.

**Bug fixes**: Fixed an issue where users were sent back to the login page
after resetting their password.
```

See [references/changelog-format.md](references/changelog-format.md) for the full Keep a Changelog spec and category definitions.
See [references/release-notes-format.md](references/release-notes-format.md) for user-facing writing guidelines and examples.

## Integration

- **After `ywc-release-pr-list`**: Feed the PR table output via `--pr-list` for richer, PR-linked descriptions.
- **Before `ywc-create-pr`**: Include the CHANGELOG.md update as part of the release PR.
- **After `ywc-commit`**: Run this skill to document the batch of changes before tagging.
- **After `ywc-incident-postmortem`**: If an incident led to a patch release, key action items inform the Security or Fixed entry.

## Banned Output Patterns

| Pattern | Problem | Replace with |
|---|---|---|
| "Various bug fixes and improvements" | Meaningless to users | List each specific fix |
| Commit hashes in user-facing notes | Users don't use git | PR numbers or feature names |
| Internal code names or module paths | Users don't know internal structure | User-visible feature names |
| Security entries only in user notes | Developers need CVE details | CVE reference in CHANGELOG; plain summary in release notes |
| Refactor/chore entries in user notes | Not relevant to users | Omit from release notes; include only in CHANGELOG |

## Validation

Before finalizing, report the release-note result with:

```text
Status: <DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT>
Artifacts: <CHANGELOG entry path and/or release notes path>
Sources: <commits, PR list, tags, or incident documents used>
Validation: <banned patterns checked and category placement verified>
Next action: <release handoff or "none">
```

Verify that every entry maps to a concrete source, user-facing notes omit irrelevant internal refactors, developer changelog entries keep required technical/security references, and banned generic wording is absent.

Files in this skill

  • README.en.md3.1 KB
  • README.es.md3.7 KB
  • README.ja.md3.5 KB
  • README.ko.md3.4 KB
  • README.md3.5 KB
  • README.zh.md3.2 KB
  • SKILL.md6.4 KB
  • agents/openai.yaml263 B
  • evals/evals.json1.2 KB
  • references/changelog-format.md3.1 KB
  • references/release-notes-format.md3.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.