From asc-release-kit
Orchestrate a complete localized ASC launch or update workflow across ASC metadata, ASC keyword fields, ASC screenshots, and ASC API task JSON. Use when the user wants one coordinated input packet to drive $asc-metadata, $asc-keywords, $asc-screenshots, and $asc-api, including localization lists, writing style, ASO seeds, Pixelmator Pro PXD template paths, screenshot output paths, App Store Connect target identity, artifact handoff, final review, and upload/update preparation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/asc-release-kit:asc-launch-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill as the coordinator for a full ASC launch/update pass:
Use this skill as the coordinator for a full ASC launch/update pass:
Each phase runs in a dedicated subagent to keep the coordinator's context lean. The coordinator builds the shared product brief, dispatches subagents with precise inputs, collects their file outputs and summaries, assembles the review bundle, and handles the ASC mutation confirmation directly with the user. The coordinator never performs the work of a child skill inline.
If any child skill is missing or cannot be loaded, stop before the affected phase and report the missing dependency.
Never ask the user to paste App Store Connect secrets, .p8 contents, JWTs, Authorization headers, or ~/.asc_secrets.
Never read or print ~/.asc_secrets, .p8 private keys, tokens, Authorization headers, or full request headers.
Treat App Store Connect writes as a two-step process:
POST, PATCH, DELETE, upload, submit, or state change.Read-only ASC discovery may run when the task is clear and local access is available. Mutating ASC operations must never run in the same step that first creates the final JSON unless the user already explicitly approved that exact JSON.
Before starting any project inspection, subagent dispatch, hard dependency check, file generation, screenshot capture, App Store Connect discovery, or API task drafting, verify that the required inputs below are present.
Everything not listed here is either inferred from the project, defaulted automatically, or discovered at runtime. Do not ask the user for anything beyond this list.
Required inputs — the only things to block on:
| Input | Required when | Why it cannot be inferred |
|---|---|---|
| Phases to run | Always | User decision; cannot be guessed |
| Target locales | Always | User decision; cannot be guessed |
| Pixelmator Pro PXD template path | screenshots phase | Stored in user's personal directory; not discoverable |
Intended ASC operation (draft-only / generate-task-json / execute-after-confirmation) | asc-json or asc-execute phase | Determines whether live App Store mutations happen; must be explicit |
Everything else is automatic — never ask for these upfront:
平静内敛; note it in the run sheet; user can override any time<AppName> ASC Launch Assets YYYY-MM-DD/ in the project rootIf a required input is missing, return only a short checklist and wait:
Missing required inputs:
- [field]: why it is required
Please provide these values to start.
Do not begin any workflow work — no project inspection, subagent dispatch, dependency checks, file generation, or ASC queries — until all required inputs for the requested phases are present.
Each child skill runs as a subagent. Use whatever subagent mechanism the current environment provides: the Agent tool in Claude Code, named agents in Codex, or any equivalent. The coordinator never performs child-skill work inline.
Input contract — every subagent receives:
asc-product-brief.md (written in Step 2);Output contract — every subagent must return to the coordinator:
The coordinator records these summaries and paths. It does not re-read the full content of subagent output files unless assembling the review bundle or constructing the next subagent's prompt.
Error handling — if a subagent reports a hard blocker, the coordinator stops that phase, reports the blocker to the user, and asks whether to continue with the remaining phases.
After the start gate passes, parse the user's packet into:
Create a short run sheet before executing:
Run sheet:
- Project:
- Locales:
- Phases:
- Output root:
- ASC mode:
- Stop points:
- Missing inputs:
This step runs in the main conversation, not a subagent. The brief is the shared foundation that all subagents read from file — building it in the main conversation ensures the coordinator fully understands the product before dispatching any work.
Inspect the local project read-only. Prefer README, product docs, existing App Store metadata, localization files, app entry points, feature screens, and screenshot folders.
Produce the brief covering:
Write the brief to:
<output-root>/asc-product-brief.md
All subagents read this file. Do not pass the full brief text in each subagent prompt; pass the file path instead.
Spawn a subagent using $asc-metadata.
Pass to the subagent:
asc-product-brief.md;Subtitle, Promotional Text, App Description;<output-root>/asc-metadata.md.Expect back:
asc-metadata.md.Do not generate keywords in this phase.
Spawn a subagent using $asc-keywords.
Pass to the subagent:
asc-product-brief.md;asc-metadata.md (so the subagent can avoid repeating title/subtitle words);<output-root>/asc-keywords.md.Expect back:
asc-keywords.md.Run this phase only when requested.
Spawn a subagent using $asc-screenshots.
Pass to the subagent:
asc-product-brief.md;<output-root>/screenshots/;Note: $asc-screenshots internally dispatches its own subagents for promo point discovery and headline writing. The coordinator does not manage those inner subagents; it only waits for the final output.
Expect back:
.pxd and .png files;Waiting for the screenshots subagent: The screenshot pipeline (UI test run + Pixelmator Pro PXD export) takes significantly longer than the metadata and keywords phases. If the subagent has not returned after an extended period, send it one status check before drawing any conclusions. Only after the second non-response or an explicit failure report should the coordinator treat the phase as blocked.
After receiving the subagent's response, the coordinator must verify that .pxd file paths are present before proceeding. If the response contains no .pxd paths, do not advance to Step 6. Instead, reject the result and ask the subagent to either complete the PXD processing step or report the exact reason it could not be done. Only accept a response with no .pxd files if the subagent explicitly reports a hard blocker that prevented Pixelmator Pro from running — in that case, surface the blocker to the user and ask whether to continue without the PXD step.
Do not let metadata copy automatically become screenshot headlines. Promotional headlines are owned by $asc-screenshots and must be grounded in actual screenshots.
This step runs in the main conversation. The coordinator reads the output files from Steps 3–5 and assembles a human review bundle. Do not re-execute any child skill here; only read the files already produced.
# ASC Launch Review
## Locales
## Metadata
## Keywords
## Screenshots
## Assumptions And Risks
## Manual Checks
Check:
<= 100 characters and avoid title/subtitle duplication;Write the completed review bundle to <output-root>/asc-launch-review.md.
Ask the user to review if Stop after each phase is enabled or if the bundle contains assumptions that affect live App Store content.
Run this phase only when requested.
Spawn a subagent using $asc-api for task JSON generation only (read-only discovery + JSON drafting, no execution).
Pass to the subagent:
asc-metadata.md;asc-keywords.md;<output-root>/asc-tasks.json.Typical field mappings for the subagent to verify against OpenAPI:
Subtitle → subtitlePromotional Text → promotionalTextApp Description → descriptionKeywords → keywordsExpect back:
asc-tasks.json (the coordinator must show this to the user);After receiving the task JSON, the coordinator shows it to the user in the main conversation and waits for explicit confirmation. Do not proceed to Step 8 until the user confirms the exact JSON shown.
Run this phase only if the user explicitly confirms the exact task JSON from Step 7.
Spawn a subagent using $asc-api for execution only.
Pass to the subagent:
asc-tasks.json path;Expect back:
Never print secrets, tokens, Authorization headers, or request headers.
After execution, the coordinator must run a read-only verification pass. Query ASC to confirm that the live values match what was submitted:
appInfoLocalizations and appStoreVersionLocalizations and compare each submitted field against the live value.appScreenshotSets and confirm each uploaded screenshot has COMPLETE state, not FAILED or AWAITING_UPLOAD.If any field mismatches or screenshot failures are found, report them explicitly. Do not declare the workflow complete until the verification pass confirms all submitted values are live and correct.
Prefer a single top-level folder named by the app and date when the user did not provide one:
ASC Launch Assets YYYY-MM-DD/
├── asc-product-brief.md
├── asc-launch-review.md
├── asc-metadata.md
├── asc-keywords.md
├── asc-tasks.json
└── screenshots/
├── en-US/
└── zh-Hans/
At the end of a full run, report:
.pxd/.png files, if any;Keep the final answer short. The detailed artifact belongs in the generated Markdown report, not the chat.
npx claudepluginhub raydeveloperf/app-store-connect-release-kit --plugin asc-release-kitSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.