Appstore metadata sync
Skill Xopoko/plug-n-skills/plugins/build-swift-apps/skills/appstore-metadata-sync
Use when App Store listing metadata in canonical `./metadata` JSON needs field edits, validation, push, keyword sync, or legacy fastlane migration. Not for translation-first localization, release-note drafting, or subscription/IAP display-name localizations.From its SKILL.md
npx -y skills add Xopoko/plug-n-skills --skill appstore-metadata-syncAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `python3 "$PLUGIN_ROOT/skills/appstore-metadata-sync/scripts/metadata_sync_plan.py" --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --app-info "APP_INFO_ID" --version-id "VERSION_ID"`.
SKILL.md
2.2 KB, 438 tokens by cl100k_base, as published. Nobody here has run it
App Store Metadata Sync
Prefer canonical asc metadata JSON for app-info and version fields. Use .strings or fastlane flows only when specifically needed.
Use appstore-metadata-localizer when the main work is translation/adaptation across locales. Use appstore-release-notes-writer for What's New copy. Use appstore-subscription-localizer for subscription, group, or IAP display-name localizations.
Command Plan Helper
For a deterministic dry-run command plan, run the helper from the plugin root:
python3 "$PLUGIN_ROOT/skills/appstore-metadata-sync/scripts/metadata_sync_plan.py" \
--app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" \
--app-info "APP_INFO_ID" --version-id "VERSION_ID" \
--include-keywords --keywords-csv "./keywords.csv"
The helper prints commands only; it does not call ASC, mutate metadata, or read credentials. Pass --json for machine-readable output. Pass --confirming-actions only after manually verifying generated --confirm commands.
Workflow
- Pull canonical metadata JSON into
./metadatabefore editing unless the user already provided a fresh metadata tree. - Resolve
APP_INFO_IDwhen multiple app-info records exist. - Edit the owning JSON fields: app-info fields for name/subtitle/privacy text and version fields for description, keywords, marketing URL, promotional text, support URL, and What's New.
- Validate locally, then run
push --dry-run; apply/push without dry-run only after the diff and target app/version are confirmed. - Use alternate
.stringsor fastlane migration flows only for legacy repos or explicit user requests.
Limits: name/subtitle 30, keywords 100, description/What's New 4000, promotional text 170. Use table output for human verification and JSON for automation.
References
references/appstore-metadata-sync.mdfor detailed canonical JSON, keyword, quick-edit,.strings, and fastlane commands.
What ships with it: 1 file
11.8 KB alongside SKILL.md, 1 of them executable
scripts/
- metadata_sync_plan.pyruns11.8 KB