From store-deploy
Fill App Store Connect and Google Play Console forms via Python+Playwright automation. Handles age rating, privacy, data safety, content rating, export compliance, IDFA, target audience, and ads declaration.
How this skill is triggered — by the user, by Claude, or both
Slash command
/store-deploy:store-forms [ios|android|both][ios|android|both]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill fills store forms using **Python scripts with Playwright** (NOT Playwright MCP).
This skill fills store forms using Python scripts with Playwright (NOT Playwright MCP). Zero LLM token cost for browser automation — the scripts run deterministically.
Run the credential manager to check/setup saved credentials:
python3 ${PLUGIN_DIR}/scripts/credentials_manager.py --show
If not configured:
python3 ${PLUGIN_DIR}/scripts/credentials_manager.py --setup
Credentials are saved globally at ~/.store-deploy/credentials.json and reused across projects.
Read the project to determine form answers:
app.json / app.config.ts — extract bundleIdentifier, package namepackage.json — check for ad SDKs (react-native-google-mobile-ads, expo-ads-admob), analytics, UGC featuresapp.json for ITSAppUsesNonExemptEncryptionGenerate a forms_config.json in the project root:
{
"has_ads": false,
"has_ugc": false,
"has_encryption": false,
"has_violence": false,
"has_sexual": false,
"has_profanity": false,
"has_drugs": false,
"has_gambling": false,
"has_iap": false,
"privacy_url": "https://example.com/privacy",
"data_collection": [],
"review_notes": "",
"iarc_category": "utility",
"min_age": 18
}
Set has_ads: true if ad SDK found. Set data_collection: ["analytics", "advertising"] as appropriate.
IMPORTANT: Tell the user:
"Browser will open. Please log into the store console if prompted. The script will fill forms automatically."
python3 ${PLUGIN_DIR}/scripts/store_forms_ios.py \
--app-id {ASC_APP_ID} \
--bundle-id {BUNDLE_ID} \
--config forms_config.json \
--project .
python3 ${PLUGIN_DIR}/scripts/store_forms_android.py \
--package-name {PACKAGE_NAME} \
--config forms_config.json \
--project .
# iOS: only age_rating and review_info
python3 ${PLUGIN_DIR}/scripts/store_forms_ios.py --app-id 123 --forms age_rating,review_info
# Android: only content_rating and ads_declaration
python3 ${PLUGIN_DIR}/scripts/store_forms_android.py --package-name com.x.y --forms content_rating,ads_declaration
python3 ${PLUGIN_DIR}/scripts/store_forms_ios.py --app-id 123 --config forms_config.json --dry-run
If a form step fails (selector changed, page layout updated):
~/.store-deploy/error-screenshots/If selectors need updating, edit the Python scripts directly in ${PLUGIN_DIR}/scripts/.
Store Forms Complete
====================
iOS:
- [x] Age Rating
- [x] App Privacy
- [x] Review Info
- [x] Export Compliance
- [x] IDFA
Android:
- [x] Content Rating (IARC)
- [x] Data Safety
- [x] Target Audience
- [x] Ads Declaration
| Form | CLI name | Description |
|---|---|---|
| Age Rating | age_rating | Violence, sexual content, profanity questionnaire |
| App Privacy | app_privacy | Privacy policy URL + data collection declarations |
| Review Info | review_info | App review contact info (auto-filled from credentials) |
| Export Compliance | export_compliance | Encryption usage declaration |
| IDFA | idfa | Advertising identifier declaration |
| Form | CLI name | Description |
|---|---|---|
| Content Rating | content_rating | IARC questionnaire |
| Data Safety | data_safety | Data collection, sharing, encryption declarations |
| Target Audience | target_audience | Age group selection |
| Ads Declaration | ads_declaration | Whether app contains ads |
Searches 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.
npx claudepluginhub seungmanchoi/store-deploy-plugin --plugin store-deploy