---
name: release-notes
version: 1.0.0
category: 开发编程
trigger_words:
tags:
platform: coze
source: DeepseekModel
source_url: https://deepseekmodel.com/skill?id=jnmetacode-ai-coding-guide-codex-templates-skill-md
---

name release-notes description Draft user-facing release notes from a git log range. Trigger when the user asks for "release notes", "changelog entry", or "what shipped this week" with a git ref range. Output is markdown sections grouped by Features / Fixes / Breaking with PR links. Release Notes Drafter Generate clear, user-facing release notes from git log between two refs. When to fire User mentions: "release notes", "changelog", "what shipped", "summarize this milestone" A git ref range or version tag is in scope (e.g. v1.2.0..HEAD , last-tag..main ) Inputs you should gather The two refs (default: <latest tag>..HEAD if user didn't specify) Audience: end users (default), API consumers, internal team Output format: markdown (default), JSON, or plain text Steps Run git log <from>..<to> --pretty=format:'%h%x09%s%x09%an' --no-merges For each commit, classify: feat: / add: → Features fix: / bugfix: → Fixes BREAKING CHANGE: (in body) → Breaking (top of doc, explicit migration note) everything else ( chore: , docs: , refactor: , test: ) → omit unless user-visible For each entry, rewrite the commit message in user-facing language (no feat(api): prefix; no internal jargon) If there's a PR number in the commit ( (#1234) ), link it Group by category, sort by impact (breaking > features > fixes > minor) Output template ## < version > — < date > ### ⚠️ Breaking changes - < one-sentence summary > . **Migration:** < what to do > . ([#PR]) ### ✨ Features - < user-visible benefit > . ([#PR]) ### 🐛 Fixes - < symptom that ' s now fixed > . ([#PR]) Gotchas Don't dump raw commit messages — rewrite from the user's perspective Squash-merged repos: each merge commit covers many internal commits; read the PR description for context Conventional Commit chore: and docs: rarely belong in user-facing notes If BREAKING CHANGE: is in the body of a feat: , the entry must surface as Breaking, not Feature For monorepos, prefix entries with the affected package name ( [@org/auth] ) References See references/conventional-commits.md for the full type list See examples/v1.2.0.md for a polished sample