asc-whats-new-writer by rudrankriyam/app-store-connect-cli-skills
npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-whats-new-writer根据灵活的输入生成引人入胜、本地化的版本说明。可选择搭配宣传文案更新。
asc metadata pull --app "APP_ID" --version "1.2.3" --dir "./metadata" 将元数据拉取到本地的规范文件中。或者:用户手动提供关键词。asc auth login 或 ASC_* 环境变量)。en-US,除非用户另行指定。references/release_notes_guidelines.md,了解语气、结构和示例。metadata/version/ 下的 最新版本目录(最高语义化版本)。所有元数据读取都使用此目录。广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
接受以下三种输入模式之一(自动检测):
解析自上一个标签以来的提交:
# 查找最新标签
git describe --tags --abbrev=0
# 列出该标签之后的提交
git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges
过滤掉杂音:合并提交、依赖项更新、CI 变更、仅格式化的提交。提取面向用户的变更。
用户提供粗略的要点,例如:
用户以对话方式描述变更:
"We made search faster, fixed that annoying crash when you open the app, and added a sleep timer feature"
技能会从文本中提取并结构化变更内容。
提示用户:"此版本有哪些变化?您可以粘贴 git 日志输出、要点列表,或者直接描述变更。"
根据指南将变更分组到各个部分:
省略空的部分。如果所有变更都是修复,则只显示"修复"部分。
遵循 references/release_notes_guidelines.md 中的语气规则:
前约 170 个字符是"更多"按钮前唯一可见的部分。用一个完整、引人注目的句子,以最具影响力的单一变更开头。
metadata/version/{latest}/{primary-locale}.json 读取 keywords
asc metadata keywords ... 读取和写入的内容。如果用户需要,草拟一条 170 字符的宣传文案,要求:
向用户展示草稿并附上字符计数。在开始本地化之前,等待用户批准。
将已批准的说明翻译到所有现有语言。
对于每种语言:
metadata/version/{latest}/{locale}.json 读取 keywords显示包含所有语言及其说明和字符计数的表格:
| 语言 | 更新内容(前 80 字符...) | 字符数 | 宣传文案 | 字符数 |
|--------|-------------------------------|-------|------------|-------|
| en-US | Search just got faster — ... | 847 | New sleep… | 142 |
| ar-SA | البحث أصبح أسرع — ... | 923 | نوم جديد… | 138 |
| ... | ... | ... | ... | ... |
未经用户确认,请勿上传。
通过 asc 上传(使用 asc --help 验证确切语法):
# 直接更新单个语言
asc apps info edit --app "APP_ID" --version-id "VERSION_ID" --locale "en-US" --whats-new "Your release notes here"
# 在写入 ./metadata/version/<version>/<locale>.json 后批量推送规范元数据
asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata" --dry-run
asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata"
如果草拟了宣传文案,可以在直接更新命令中包含 --promotional-text "...",或者在 asc metadata push 之前将 promotionalText 写入规范 JSON 文件。
如果部分上传失败:
metadata/version/{latest-version}/{locale}.json → keywords 字段metadata/version/{latest-version}/{locale}.json → whatsNew 字段metadata/version/ 下语义化版本最高的目录./metadata 树是 asc metadata pull、asc metadata push 和 asc metadata keywords ... 操作的对象。asc-aso-audit 相同的元数据解析约定。asc-localize-metadata。asc-aso-audit。asc metadata pull 刷新,或使用 asc metadata keywords diff 检查计划中的关键词变更。每周安装量
262
代码仓库
GitHub 星标数
588
首次出现
11 天前
安全审计
安装于
codex255
gemini-cli253
github-copilot253
amp253
cline253
kimi-cli253
Generate engaging, localized release notes from flexible input. Optionally pair with promotional text updates.
asc metadata pull --app "APP_ID" --version "1.2.3" --dir "./metadata". OR: user provides keywords manually.asc auth login or ASC_* env vars).en-US unless the user specifies otherwise.references/release_notes_guidelines.md for tone, structure, and examples.metadata/version/ (highest semver). Use this for all metadata reads.Accept one of three input modes (auto-detect):
Parse commits since the last tag:
# Find latest tag
git describe --tags --abbrev=0
# List commits since that tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges
Filter out noise: merge commits, dependency bumps, CI changes, formatting-only commits. Extract user-facing changes.
User provides rough bullets like:
User describes changes conversationally:
"We made search faster, fixed that annoying crash when you open the app, and added a sleep timer feature"
The skill extracts and structures the changes from the text.
Prompt the user: "What changed in this release? You can paste git log output, bullet points, or just describe the changes."
Group changes into sections per the guidelines:
Omit empty sections. If all changes are fixes, only show "Fixed."
Follow the tone rules from references/release_notes_guidelines.md:
The first ~170 characters are the only visible part before "more." Lead with the single most impactful change in a complete, compelling sentence.
keywords from metadata/version/{latest}/{primary-locale}.json
asc metadata keywords ... reads and writes.If the user wants it, draft a 170-char promotional text that:
Show the draft to the user with character count. Wait for approval before localizing.
Translate the approved notes to all existing locales.
For each locale:
keywords from metadata/version/{latest}/{locale}.jsonShow a table of all locales with their notes and character counts:
| Locale | What's New (first 80 chars...) | Chars | Promo Text | Chars |
|--------|-------------------------------|-------|------------|-------|
| en-US | Search just got faster — ... | 847 | New sleep… | 142 |
| ar-SA | البحث أصبح أسرع — ... | 923 | نوم جديد… | 138 |
| ... | ... | ... | ... | ... |
Do not upload without user confirmation.
Upload via asc (verify exact syntax with asc --help):
# Individual locale direct update
asc apps info edit --app "APP_ID" --version-id "VERSION_ID" --locale "en-US" --whats-new "Your release notes here"
# Bulk canonical-metadata push after writing ./metadata/version/<version>/<locale>.json
asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata" --dry-run
asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata"
If promotional text was drafted, either include --promotional-text "..." in the direct update command or write promotionalText into the canonical JSON before asc metadata push.
On partial upload failure:
metadata/version/{latest-version}/{locale}.json → keywords fieldmetadata/version/{latest-version}/{locale}.json → whatsNew fieldmetadata/version/./metadata tree is what asc metadata pull, asc metadata push, and asc metadata keywords ... operate on.asc-localize-metadata instead.asc-aso-audit first.asc metadata pull or inspect planned keyword changes with asc metadata keywords diff.Weekly Installs
262
Repository
GitHub Stars
588
First Seen
11 days ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex255
gemini-cli253
github-copilot253
amp253
cline253
kimi-cli253
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
27,400 周安装
asc-aso-audit