--- name: android-release-notes description: >- Generate Google Play Console release notes: gather user-facing changes, draft en-US within the 500-character limit, translate every listing locale your Play Console requires, output paste-ready locale XML. Use when the user asks for Android release notes, Play Store what's new, localised store listing updates, or Play Console upload copy. Do not improvise markdown-only notes; follow this skill. --- # Android release notes (Play Console) Produce **Google Play release notes** for the current build: one XML block per required listing locale, ready to paste into Play Console. **This skill is mandatory** when the user requests Android / Play Store release notes. Do not write ad-hoc changelog markdown instead of Play XML. ## Suggested layers Adapt names to your repo. The pattern matters more than the labels. | Layer | Role | |-------|------| | Version source | Where `versionName` / `versionCode` (or equivalent) live | | Change baseline | Git range or release train that defines "what's new" | | Locale list | The locales your Play Console listing actually requires | | Output artifact | Saved XML next to the release binary (version folder) | ## Default workflow Agents **must** follow this order: 1. **Read this skill** — do not skip to freeform markdown. 2. Read version identifiers from your project's version source (for example `app/build.gradle`, `build.gradle.kts`, or a version file you maintain). 3. Gather commits / shipped changes since the baseline for this release train. Override the baseline when the default is wrong. 4. If the conversation includes **uncommitted or unreleased work** that will ship in this build, include it in en-US even if it is not yet in git. 5. Draft **en-US** release notes (≤500 characters): user-facing, 2–4 short lines. Do **not** paste commit subjects verbatim. No emoji (Play plain text). 6. **Human quality gate (recommended):** pause for a light English review before translating. Bad en-US fans out to every market. 7. Translate approved en-US into every other required listing locale (maintain a locale table in your repo; keep regional pairs distinct where needed). 8. **Save** XML beside the release artifacts (for example `release//release-notes.xml`). 9. **Deliver** the full XML in the chat response for copy-paste into Play Console (API upload is optional and separate). 10. Validate every required locale is present and each block is ≤500 characters. ## Trigger phrases - "make the Android release notes" - "generate release notes" / "write release notes" (Android / Play context) - "Play Store what's new" / "Play Console release notes" - "localised store listing" / "translate release notes" - Preparing or uploading an Android release ## Do not - Replace Play XML with informal markdown changelogs as the ship artifact - Output only en-US when the listing has multiple locales - Use emoji, markdown, or HTML inside locale blocks - Paste raw git commit subjects into Play notes - Include the version number in the note text (Play shows version separately) - Publish secret paths, credentials, or private product internals into a public skill fork ## Required output format ```xml ... ... ``` Include **every** locale your Play Console listing requires. Max **500 characters** per block. ## Writing guidelines - Lead with the most noticeable user benefit. - Group related fixes ("Stability improvements and crash fixes" not eight separate crash lines). - Drop internal-only work (refactors, CI, build tooling) unless it affects users. - Keep regional variants appropriately distinct (for example `es-419` vs `es-ES`, `pt-BR` vs `pt-PT`, `en-US` vs `en-GB`). - Translate from **en-US**, not from raw git messages. ### Commit hint → user-facing (examples) | Commit hint | User-facing line | |-------------|------------------| | crash fixes | Stability improvements and crash fixes | | offline assets | More content available offline | | fix dismiss on upgrade screen | Fixed an issue with the upgrade screen | ### Example en-US ``` Stability improvements and crash fixes. More content now works offline. Upgrade and ad flows behave more reliably. ``` ## Locale list Do not hardcode another app's locale set. Maintain a small table or JSON file in **your** repo listing Play locale codes your console requires, and update it when Play adds or removes listing languages. Treat unpublished or partially localised in-app languages the same as full ones for **store notes**: if Play lists the locale, emit a block. ## Quality check - [ ] All required locale blocks present - [ ] Each block ≤ 500 characters - [ ] en-US reviewed before translation fan-out - [ ] No emoji / markdown / HTML in blocks - [ ] Version in the binary matches the notes you are uploading - [ ] XML saved with the release artifacts ## Optional second pass For languages you cannot read, a **second model** can surface translation queries only (odd calques, broken placeholders, missing benefit). It does not replace the English gate or your Accept before paste. ## Further reading - Play Console release notes limits and paste flow (current Google documentation) - Pair with an iOS What's New skill when you ship the same version on both stores