Install any skill in seconds. Free to start, no credit card required.
Get Started Free →rshankras/privacy-publish
Turn drafted legal docs (privacy policy, terms) into hosted pages and set the App Store Connect Privacy Policy / Support / Marketing URLs via the ASC REST API. Use at Phase 6 / submission, after legal drafts exist. The App Privacy "nutrition label" stays manual (Apple exposes no API) — this prints the exact answers to click.
Passed 14 of 19 test cases with the skill, and 8 of 19 without it.
and 4 more in the full report
7 fixed9 passed either way6 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
In the asc.py CLI tool workflow, which flag is required to execute the actual write request after validating the payload?
| Checked | Without skill | With skill |
|---|---|---|
| Identifies --apply as the required flag for writing changes | Missed | Passed |
The instructions your model reads when the skill loads.
Close the "hosted legal pages + ASC URLs" gap: render .planning/legal/{privacy,terms}.md → host them → PATCH the Privacy/Support URLs onto the App Store version. The one thing with no API — the App Privacy nutrition label — is handed off as a precise checklist.
Depends on the user's web infra, so ask once, remember. Hosting choice is theirs; the ASC URL-setting is the automatable part.
.planning/legal/privacy.md, .planning/legal/terms.md (from legal/privacy-policy)._shared/asc-api/ set up (README).ASC="python3 <path to asc.py>" — resolve asc.py relative to this SKILL.md file's location (../../_shared/asc-api/asc.py), never the project cwd. Known install locations:
~/.claude/swiftship-skills/_shared/asc-api/asc.py.claude/skills/_shared/asc-api/asc.py (project) or ~/.claude/skills/_shared/asc-api/asc.py (global)_shared/ tree ships with the plugin.appInfoLocalization and appStoreVersionLocalization (get their ids first)..md if the host renders it).AskUserQuestion once, then remember in .planning/):
POST /wp-json/wp/v2/pages with an application password.claude-in-chrome (detect → preview → confirm → act → fall back, per TOOL-HANDOFF.md).--apply):
appInfoLocalizations (privacyPolicyUrl):
$ASC PATCH /v1/appInfoLocalizations/<id> '{"data":{"type":"appInfoLocalizations","id":"<id>","attributes":{"privacyPolicyUrl":"https://…/privacy"}}}' --apply
appStoreVersionLocalizations (supportUrl, marketingUrl) — PATCH the current version's en-US localization id.Sources/PrivacyInfo.xcprivacy (e.g. Data Not Collected, no tracking) for the user to click in ASC ▸ App Privacy. Do not claim this step is automated.--apply (captured 2026-07).test cases passed, vs 8 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.