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.5 | $0.00039 | $0.00520 |
| Sonnet 5.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 1mo 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.
- 1mo 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 (833 stars, last pushed 3mo ago), licensed MIT. It adds 97 tokens to every session and 1,301 once invoked, about $0.0004 per session on Opus 5.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.
agent-payment-billing-specialist
Specialist subagent: Stripe integration, subscription billing, webhooks, PCI compliance, and tax handling specialist. Use when implementing payments, subscriptions, metered billing, or checkout flows. Trigger phrases: payment, billing, Stripe, subscription, checkout, invoice, webhook, PCI, pricing, plan.
agent-i18n-specialist
Specialist subagent: Expert internationalization specialist for multi-language support and localization.
agent-monetization-expert
Specialist subagent: Expert in revenue models, pricing strategy, and business monetization.
storeshots
Make App Store and Google Play screenshots with the storeshots CLI (offline, no API keys). It writes benefit headlines, translates them, and renders exact-size images with device frames. Use when the user wants store screenshots, app listing or ASO images, localized screenshots in more languages, a Play Store feature…