Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add rshankras/claude-code-apple-skills --skill iap-finalizergit clone --depth 1 https://github.com/rshankras/claude-code-apple-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rshankras/claude-code-apple-skills/iap-finalizer)<a href="https://agentmods.dev/skills/rshankras/claude-code-apple-skills/iap-finalizer"><img src="https://agentmods.dev/badge/skills/rshankras/claude-code-apple-skills/iap-finalizer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rshankras/claude-code-apple-skills/iap-finalizer"><img src="https://agentmods.dev/badge/skills/rshankras/claude-code-apple-skills/iap-finalizer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.01301 |
| Opus 5 | $0.00048 | $0.00651 |
| Sonnet 5 | $0.00019 | $0.00260 |
| Haiku 4.5 | $0.00010 | $0.00130 |
Grade A, and why
iap-finalizer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.
IAP Finalizer
Finish a one-time in-app purchase on the store side: price + localization, the two fields the asc-metadata MCP can't set (it exposes only reference name / review note / family-sharing). Moves an IAP from MISSING_METADATA → READY_TO_SUBMIT so it can ship with the build.
This finalizes; it does not define. The product id, tier, and price decision come from Phase 4 (Monetization / StoreKit). The ASC IAP record must already exist (created via the MCP
create_iapor the ASC UI). This skill sets the metadata on that existing record.
Where it fits (read the seams)
- Not Phase 4. Phase 4 builds the IAP into the app (StoreKit 2, paywall) and decides the price. This is Phase 6 store-metadata finalization.
- Price = one source of truth. Do not re-ask the price. Read it from the monetization decision in
.planning/(e.g.MONETIZATION.md/PLAN.md); only confirm it. Re-eliciting risks drift from the paywall/StoreKit price. - Not
promoted-iap. That generator displays promoted IAPs in-app; this sets ASC price/localization. Different jobs. - One-time IAPs only. Subscriptions are a separate ASC flow (groups/offers) — out of scope here.
Prerequisites
_shared/asc-api/set up (see its README — key +~/.appstoreconnect/).- Set
ASC="python3 <path to asc.py>".asc.pylives at_shared/asc-api/asc.pyunder the sameskills/root as this skill — resolve it relative to this SKILL.md file's location (../../_shared/asc-api/asc.pyfrom this skill's directory), never relative to the project cwd (skills run with cwd = the user's project). Known install locations:- SwiftShip symlink install:
~/.claude/swiftship-skills/_shared/asc-api/asc.py - Copied install:
.claude/skills/_shared/asc-api/asc.py(project) or~/.claude/skills/_shared/asc-api/asc.py(global) - Plugin install: resolve from this file's location — the
_shared/tree ships with the plugin.
- SwiftShip symlink install:
- The IAP already exists in ASC. Get its id with the MCP:
list_iap→ pick the product. - Price decided in Phase 4. Read it from
.planning/and confirm — don't invent it.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 63 lines · 97 tokens per session scan A c428eb9d6752
iap-finalizer is a skill published in the GitHub repository rshankras/claude-code-apple-skills (710 stars, last pushed 1mo ago), licensed MIT. It adds 97 tokens to every session and 1,301 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
asc-subscription-localization
Bulk-localize subscription, subscription-group, and in-app purchase display names across App Store locales using asc, including API 4.4.1 version-scoped v2 resources. Use when filling or updating subscription/IAP names and descriptions without App Store Connect UI work.
i18n-localization
Internationalization and localization for global applications. Use when adding multi-language support, handling regional formats, or preparing apps for global markets.
appstore-ppp-pricing
Bulk-sets App Store in-app purchase and subscription prices across 175+ countries by purchasing power parity, using the appstore-ppp-prices CLI. Use whenever the user wants to localize, bulk-update, lower, raise or review regional App Store pricing — "set regional prices", "PPP pricing", "make my app cheaper in…
ecom-multilingual-listing
Optimize multilingual product listings for international e-commerce including SEO localization, machine translation workflows, and cultural adaptation. Use this skill when the user needs to create product listings in multiple languages, optimize for local search, or adapt marketing content for different markets — even…
ecom-sea-strategy
Develop e-commerce strategy for Southeast Asian markets including platform selection, payment infrastructure, logistics challenges, and localization requirements. Use this skill when the user is expanding e-commerce to SEA, evaluating Shopee vs Lazada vs Tokopedia, or needs to understand SEA market differences — even…
MarketplaceStrategist
Complete two-sided marketplace intelligence — cold start strategy, liquidity engineering, take rate optimization, trust and safety, supply/demand balance, and scaling from 100 to 10M transactions.