{"id":"b01fffe7-a73d-46c5-a727-66320464396c","shortId":"pJ7AfE","kind":"skill","title":"Release Notes Generator","tagline":"Generates clear, user-friendly release notes from a git log or list of PRs.","description":"# Release Notes Generator\n\n## What this skill does\n\nThis skill takes raw git log output or a list of PR titles/descriptions and turns them into polished, user-facing release notes. It groups changes by category, rewrites technical commit messages into plain English, and formats the output as clean markdown ready to paste into GitHub Releases, a CHANGELOG.md, or a blog post.\n\nUse this before every release to save time and produce consistent, readable changelogs your users will actually understand.\n\n## How to use\n\n### Claude Code / Cline\n\nCopy this file to `.agents/skills/release-notes-generator/SKILL.md` in your project root.\n\nThen run:\n```bash\ngit log v1.2.0..v1.3.0 --oneline\n```\nPaste the output and ask:\n- *\"Use the Release Notes Generator skill to turn this git log into release notes for v1.3.0.\"*\n- *\"Generate release notes from these PR titles using the Release Notes Generator skill.\"*\n\n### Cursor\n\nAdd the \"Prompt / Instructions\" section below to your `.cursorrules` file, then paste your git log or PR list into the chat.\n\n### Codex\n\nPaste your git log or PR descriptions directly into the chat along with the instructions below. Include PR body text when available — it gives Codex more context for accurate categorization.\n\n## The Prompt / Instructions for the Agent\n\nWhen asked to generate release notes, follow these steps:\n\n1. **Parse the input.** Accept any of:\n   - `git log --oneline` output (hash + short message)\n   - Full `git log` with commit bodies\n   - A numbered or bulleted list of PR titles\n   - A list of PR titles + descriptions\n\n2. **Categorize each change** into one of these buckets:\n   - **New Features** — new capabilities, pages, commands, or options added\n   - **Improvements** — enhancements to existing features (faster, easier to use, more options)\n   - **Bug Fixes** — things that were broken and are now fixed\n   - **Breaking Changes** — anything that requires users to update their code, config, or workflow\n   - **Security** — security patches, dependency updates for known CVEs\n   - **Under the Hood** — refactors, dependency bumps, CI changes (only include if relevant to devs)\n\n   If a change doesn't clearly fit a category, use your best judgment. Omit pure chore commits (`chore: update lockfile`) unless they affect users.\n\n3. **Rewrite each entry in user-friendly language.**\n   - Remove jargon, ticket numbers, and internal references\n   - Write from the user's perspective: \"You can now...\" / \"Fixed a bug where...\"\n   - Keep each bullet to one sentence\n   - Do not mention internal file names, function names, or variable names unless they are part of a public API\n\n4. **Order the sections** as: Breaking Changes (if any, always first) → New Features → Improvements → Bug Fixes → Security → Under the Hood.\n\n5. **Write an optional summary paragraph** (2–3 sentences) at the top highlighting the most important changes in this release.\n\n6. **Output format:**\n\n```markdown\n## v[VERSION] — [DATE]\n\n[Optional 2–3 sentence summary of the release highlights.]\n\n### Breaking Changes\n- ...\n\n### New Features\n- ...\n\n### Improvements\n- ...\n\n### Bug Fixes\n- ...\n\n### Security\n- ...\n\n### Under the Hood\n- ...\n```\n\nOmit any section that has no entries.\n\n7. **If a \"Breaking Changes\" section exists**, add a migration hint for each breaking change — a one-line note on what users need to do.\n\n## Example\n\n**Input to Agent:**\n> \"Use the Release Notes Generator skill on this git log for v2.1.0:\n>\n> ```\n> a3f2c1e feat(auth): add OAuth2 login with Google and GitHub\n> 9b1d4a7 fix(dashboard): chart not rendering on Safari 16\n> cc8e302 perf(api): reduce response time by 40% with query caching\n> 5f3a991 chore: bump eslint from 8.0 to 9.0\n> 2d7c14e feat(export): add CSV export for all report types\n> b8a0f3c fix(upload): files over 10MB silently failed\n> e1c5529 refactor(db): replace raw SQL with query builder\n> 7fa3318 BREAKING: rename config key api_url to apiUrl\n> ```\"\n\n**Output from Agent:**\n> ## v2.1.0 — 2026-03-15\n>\n> This release adds Google and OAuth2 login, a long-requested CSV export, and a significant API speed improvement. One configuration key has been renamed — see the breaking change note below.\n>\n> ### Breaking Changes\n> - The configuration key `api_url` has been renamed to `apiUrl`. Update your config file before upgrading.\n>\n> ### New Features\n> - Sign in with Google or GitHub using OAuth2 — no password required.\n> - Export any report as a CSV file with a single click.\n>\n> ### Improvements\n> - API responses are now up to 40% faster thanks to query result caching.\n>\n> ### Bug Fixes\n> - Fixed charts not rendering correctly in Safari 16.\n> - Fixed an issue where file uploads larger than 10 MB would fail silently with no error message.","tags":["release","notes","generator","openagentskills","notysoty","agent-skills","claude","claude-code","claude-skills","cline","cursor","llm"],"capabilities":["skill","source-notysoty","skill-release-notes-generator","topic-agent-skills","topic-claude","topic-claude-code","topic-claude-skills","topic-cline","topic-cursor","topic-llm","topic-llm-skills","topic-skills"],"categories":["openagentskills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Notysoty/openagentskills/release-notes-generator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Notysoty/openagentskills","source_repo":"https://github.com/Notysoty/openagentskills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (4,712 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:24.227Z","embedding":null,"createdAt":"2026-05-18T13:20:45.902Z","updatedAt":"2026-05-18T19:13:24.227Z","lastSeenAt":"2026-05-18T19:13:24.227Z","tsv":"'-03':604 '-15':605 '1':223 '10':711 '10mb':578 '16':543,702 '2':257,435,457 '2026':603 '2d7c14e':563 '3':355,436,458 '4':409 '40':551,686 '5':429 '5f3a991':555 '6':449 '7':483 '7fa3318':590 '8.0':560 '9.0':562 '9b1d4a7':535 'a3f2c1e':525 'accept':227 'accur':206 'actual':96 'ad':274 'add':156,490,528,566,608 'affect':353 'agent':213,512,601 'agents/skills/release-notes-generator/skill.md':108 'along':189 'alway':418 'anyth':298 'api':408,546,595,622,642,680 'apiurl':598,648 'ask':125,215 'auth':527 'avail':199 'b8a0f3c':573 'bash':115 'best':342 'blog':78 'bodi':196,242 'break':296,414,465,486,496,591,633,637 'broken':291 'bucket':265 'bug':286,382,423,470,693 'builder':589 'bullet':246,386 'bump':322,557 'cach':554,692 'capabl':269 'categor':207,258 'categori':53,339 'cc8e302':544 'chang':51,260,297,324,333,415,445,466,487,497,634,638 'changelog':92 'changelog.md':75 'chart':538,696 'chat':176,188 'chore':346,348,556 'ci':323 'claud':101 'clean':66 'clear':5,336 'click':678 'cline':103 'code':102,305 'codex':177,202 'command':271 'commit':56,241,347 'config':306,593,651 'configur':626,640 'consist':90 'context':204 'copi':104 'correct':699 'csv':567,617,673 'cursor':155 'cursorrul':164 'cves':316 'dashboard':537 'date':455 'db':583 'depend':312,321 'descript':184,256 'dev':330 'direct':185 'doesn':334 'e1c5529':581 'easier':281 'english':60 'enhanc':276 'entri':358,482 'error':718 'eslint':558 'everi':83 'exampl':509 'exist':278,489 'export':565,568,618,668 'face':46 'fail':580,714 'faster':280,687 'feat':526,564 'featur':267,279,421,468,656 'file':106,165,394,576,652,674,707 'first':419 'fit':337 'fix':287,295,380,424,471,536,574,694,695,703 'follow':220 'format':62,451 'friend':8,362 'full':237 'function':396 'generat':3,4,21,130,142,153,217,517 'git':13,30,116,135,169,180,230,238,521 'github':72,534,662 'give':201 'googl':532,609,660 'group':50 'hash':234 'highlight':441,464 'hint':493 'hood':319,428,475 'import':444 'improv':275,422,469,624,679 'includ':194,326 'input':226,510 'instruct':159,192,210 'intern':369,393 'issu':705 'jargon':365 'judgment':343 'keep':384 'key':594,627,641 'known':315 'languag':363 'larger':709 'line':501 'list':16,35,173,247,252 'lockfil':350 'log':14,31,117,136,170,181,231,239,522 'login':530,612 'long':615 'long-request':614 'markdown':67,452 'mb':712 'mention':392 'messag':57,236,719 'migrat':492 'name':395,397,400 'need':506 'new':266,268,420,467,655 'note':2,10,20,48,129,139,144,152,219,502,516,635 'number':244,367 'oauth2':529,611,664 'omit':344,476 'one':262,388,500,625 'one-lin':499 'onelin':120,232 'option':273,285,432,456 'order':410 'output':32,64,123,233,450,599 'page':270 'paragraph':434 'pars':224 'part':404 'password':666 'past':70,121,167,178 'patch':311 'perf':545 'perspect':376 'plain':59 'polish':43 'post':79 'pr':37,147,172,183,195,249,254 'produc':89 'project':111 'prompt':158,209 'prs':18 'public':407 'pure':345 'queri':553,588,690 'raw':29,585 'readabl':91 'readi':68 'reduc':547 'refactor':320,582 'refer':370 'releas':1,9,19,47,73,84,128,138,143,151,218,448,463,515,607 'relev':328 'remov':364 'renam':592,630,646 'render':540,698 'replac':584 'report':571,670 'request':616 'requir':300,667 'respons':548,681 'result':691 'rewrit':54,356 'root':112 'run':114 'safari':542,701 'save':86 'section':160,412,478,488 'secur':309,310,425,472 'see':631 'sentenc':389,437,459 'short':235 'sign':657 'signific':621 'silent':579,715 'singl':677 'skill':24,27,131,154,518 'skill-release-notes-generator' 'source-notysoty' 'speed':623 'sql':586 'step':222 'summari':433,460 'take':28 'technic':55 'text':197 'thank':688 'thing':288 'ticket':366 'time':87,549 'titl':148,250,255 'titles/descriptions':38 'top':440 'topic-agent-skills' 'topic-claude' 'topic-claude-code' 'topic-claude-skills' 'topic-cline' 'topic-cursor' 'topic-llm' 'topic-llm-skills' 'topic-skills' 'turn':40,133 'type':572 'understand':97 'unless':351,401 'updat':303,313,349,649 'upgrad':654 'upload':575,708 'url':596,643 'use':80,100,126,149,283,340,513,663 'user':7,45,94,301,354,361,374,505 'user-fac':44 'user-friend':6,360 'v':453 'v1.2.0':118 'v1.3.0':119,141 'v2.1.0':524,602 'variabl':399 'version':454 'workflow':308 'would':713 'write':371,430","prices":[{"id":"d94c64f2-5dee-4e73-886e-cbcd102891a8","listingId":"b01fffe7-a73d-46c5-a727-66320464396c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Notysoty","category":"openagentskills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:20:45.902Z"}],"sources":[{"listingId":"b01fffe7-a73d-46c5-a727-66320464396c","source":"github","sourceId":"Notysoty/openagentskills/release-notes-generator","sourceUrl":"https://github.com/Notysoty/openagentskills/tree/main/skills/release-notes-generator","isPrimary":false,"firstSeenAt":"2026-05-18T13:20:45.902Z","lastSeenAt":"2026-05-18T19:13:24.227Z"}],"details":{"listingId":"b01fffe7-a73d-46c5-a727-66320464396c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Notysoty","slug":"release-notes-generator","github":{"repo":"Notysoty/openagentskills","stars":8,"topics":["agent-skills","claude","claude-code","claude-skills","cline","cursor","llm","llm-skills","skills"],"license":"mit","html_url":"https://github.com/Notysoty/openagentskills","pushed_at":"2026-03-28T06:50:19Z","description":"A  community-driven library of reusable AI agent skills for Claude Code, Cursor, Codex, Cline, and more.","skill_md_sha":"c089eb0cf3407840191b3e346eee968418fa39d2","skill_md_path":"skills/release-notes-generator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Notysoty/openagentskills/tree/main/skills/release-notes-generator"},"layout":"multi","source":"github","category":"openagentskills","frontmatter":{"name":"Release Notes Generator","description":"Generates clear, user-friendly release notes from a git log or list of PRs."},"skills_sh_url":"https://skills.sh/Notysoty/openagentskills/release-notes-generator"},"updatedAt":"2026-05-18T19:13:24.227Z"}}