Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate App Store release notes from git history. Use when: creating release changelogs, App Store 'What's New' text, or summarizing changes since last tag.
.claude/skills/terminalskills-app-store-changelog/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 11 |
| gemini-3.1-pro-preview | 100% | 1 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 100% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 10% | 0% |
Generate a comprehensive, user-facing changelog from git history since the last tag, then translate commits into clear App Store release notes.
scripts/collect_release_changes.sh from the repo root to gather commits and touched files.scripts/collect_release_changes.sh v1.2.3 HEAD.The following shows how raw commits are translated into App Store bullets:
| Raw commit message | App Store bullet | |---|---| | fix(auth): resolve token refresh race condition on iOS 17 | • Fixed a login issue that could leave some users unexpectedly signed out. | | feat(search): add voice input to search bar | • Search your library hands-free with the new voice input option. | | perf(timeline): lazy-load images to reduce scroll jank | • Scrolling through your timeline is now smoother and faster. |
Internal-only commits that are dropped (no user impact):
chore: upgrade fastlane to 2.219refactor(network): extract URLSession wrapper into moduleci: add nightly build jobWhat's New in Version 3.4
• Search your library hands-free with the new voice input option.
• Scrolling through your timeline is now smoother and faster.
• Fixed a login issue that could leave some users unexpectedly signed out.
• Added dark-mode support to the settings screen.
• Improved load times when opening large photo albums.scripts/collect_release_changes.sh: Collect commits and touched files since last tag.references/release-notes-guidelines.md: Language, filtering, and QA rules for App Store notes.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 8,692 | 3,147 | -64% | 1 | 1 | 0% | 1,377 | 1,129 | -18% | 0 | 0 | — |
case-01 | fail→pass | 4,548 | 7,684 | +69% | 1 | 1 | 0% | 725 | 1,453 | +100% | 0 | 0 | — |
case-02 | fail→pass | 5,405 | 2,012 | -63% | 1 | 1 | 0% | 866 | 940 | +9% | 0 | 0 | — |
case-03 | fail→pass | 6,162 | 6,519 | +6% | 1 | 1 | 0% | 955 | 1,743 | +83% | 0 | 0 | — |
case-04 | fail→pass | 8,168 | 5,249 | -36% | 1 | 1 | 0% | 1,392 | 1,534 | +10% | 0 | 0 | — |
case-06 | pass→pass | 8,266 | 2,730 | -67% | 1 | 1 | 0% | 1,243 | 1,057 | -15% | 0 | 0 | — |
case-07 | fail→pass | 7,533 | 4,048 | -46% | 1 | 1 | 0% | 1,308 | 1,284 | -2% | 0 | 0 | — |
case-08 | pass→pass | 5,644 | 2,416 | -57% | 1 | 1 | 0% | 930 | 1,014 | +9% | 0 | 0 | — |
case-09 | pass→pass | 3,830 | 2,419 | -37% | 1 | 1 | 0% | 628 | 971 | +55% | 0 | 0 | — |
case-10 | fail→pass | 7,840 | 28,868 | +268% | 1 | 1 | 0% | 1,281 | 1,456 | +14% | 0 | 0 | — |
case-11 | pass→pass | 10,806 | 32,002 | +196% | 1 | 1 | 0% | 1,805 | 1,138 | -37% | 0 | 0 | — |
case-12 | fail→pass | 6,068 | 3,970 | -35% | 1 | 1 | 0% | 1,076 | 1,187 | +10% | 0 | 0 | — |
case-13 | pass→pass | 11,098 | 5,406 | -51% | 1 | 1 | 0% | 1,890 | 1,522 | -19% | 0 | 0 | — |
case-14 | pass→pass | 11,493 | 6,353 | -45% | 1 | 1 | 0% | 1,937 | 1,680 | -13% | 0 | 0 | — |
case-15 | fail→pass | 10,977 | 1,509 | -86% | 1 | 1 | 0% | 1,983 | 882 | -56% | 0 | 0 | — |
case-16 | fail→pass | 8,034 | 2,226 | -72% | 1 | 1 | 0% | 1,298 | 1,007 | -22% | 0 | 0 | — |
case-17 | pass→pass | 7,760 | 4,696 | -39% | 1 | 1 | 0% | 1,257 | 1,361 | +8% | 0 | 0 | — |
case-18 | fail→fail | 12,895 | 7,532 | -42% | 1 | 1 | 0% | 2,075 | 2,183 | +5% | 0 | 0 | — |
case-19 | pass→pass | 9,115 | 8,093 | -11% | 1 | 1 | 0% | 1,665 | 2,083 | +25% | 0 | 0 | — |
case-20 | pass→pass | 11,779 | 10,459 | -11% | 1 | 1 | 0% | 2,427 | 2,734 | +13% | 0 | 0 | — |
case-21 | pass→pass | 8,078 | 4,814 | -40% | 1 | 1 | 0% | 1,537 | 1,514 | -1% | 0 | 0 | — |
case-22 | pass→pass | 4,838 | 2,240 | -54% | 1 | 1 | 0% | 812 | 1,008 | +24% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.