Synthèse automatique
Ce skill automatise la création et la mise à jour en masse des noms d'affichage (et descriptions) des abonnements, groupes d'abonnements et achats intégrés dans tous les locales d'App Store Connect via l'outil en ligne de commande asc.
Points forts
- Couvre la liste complète des locales supportés par App Store Connect, ce qui évite d'en oublier
- Inclut un contrôle préalable des localisations existantes pour ne créer que celles qui manquent
- Repose sur des commandes asc explicites et scriptables (résolution des IDs, création par locale)
- Supprime le passage manuel langue par langue dans l'interface App Store Connect
Limites
- Suppose une authentification asc déjà configurée et des groupes/abonnements existants
- L'exemple fourni répète la même chaîne pour toutes les locales : la traduction réelle du nom reste à la charge de l'utilisateur
- Ne documente pas de commande de mise à jour ou de suppression, ni la gestion des erreurs en cas d'échec partiel
À utiliser lorsque vous devez remplir ou compléter rapidement les noms d'affichage de vos abonnements et achats intégrés sur l'ensemble des langues d'App Store Connect.
À éviter si vos identifiants asc ne sont pas configurés ou si les groupes d'abonnements n'existent pas encore dans App Store Connect.
Analyse de sécurité
PrudenceThe skill instructs legitimate App Store Connect operations via the asc CLI. While not destructive or exfiltrating, it performs bulk write operations to production metadata and requires credentials, so caution is warranted.
- •Uses the asc CLI with App Store Connect credentials to modify production metadata in bulk.
- •No guardrails or confirmation steps are suggested before creating many localizations, increasing the risk of accidental unintended changes.
- •Relies on environment variables or auth state that may be present in the executing environment.
Exemples
Use asc to set the display name "Monthly Pro" for subscription SUB_ID across all App Store Connect locales, skipping any locale that already has a localization.List the existing localizations for subscription SUB_ID with asc and tell me which App Store locales are still missing a display name.List the subscription groups for app 123456789 with asc, then list the subscriptions in the first group so I can pick the one to localize.name: asc-subscription-localization description: Bulk-localize subscription and in-app purchase display names across all App Store locales using asc. Use when you want to fill in subscription/IAP names for every language without clicking through App Store Connect manually.
asc subscription localization
Use this skill to bulk-create or bulk-update display names (and descriptions) for subscriptions, subscription groups, and in-app purchases across all App Store Connect locales. This eliminates the tedious manual process of clicking through each language in App Store Connect to set the same display name.
Preconditions
- Auth configured (
asc auth loginorASC_*env vars). - Know your app ID (
ASC_APP_IDor--app). - Subscription groups and subscriptions already exist.
Supported App Store Locales
These are the locales supported by App Store Connect for subscription and IAP localizations:
ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US,
es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it,
ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk,
sv, th, tr, uk, vi, zh-Hans, zh-Hant
Workflow: Bulk-Localize a Subscription
1. Resolve IDs
# Find subscription groups
asc subscriptions groups list --app "APP_ID" --output table
# Find subscriptions within a group
asc subscriptions list --group-id "GROUP_ID" --output table
2. Check existing localizations
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table
This shows which locales already have a name set. Only create localizations for missing locales.
3. Create localizations for all missing locales
For each locale that does not already have a localization, run:
asc subscriptions localizations create \
--subscription-id "SUB_ID" \
--locale "LOCALE" \
--name "Display Name"
For example, to set "Monthly Pro" across all locales:
# One command per locale (skip any that already exist)
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ar-SA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ca" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "cs" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "da" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "de-DE" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "el" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-AU" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-GB" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-ES" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-MX" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-CA" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-FR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "he" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hu" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "id" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "it" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ja" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ko" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ms" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "nl-NL" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "no" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pl" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-BR" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-PT" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ro" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ru" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sv" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "th" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "tr" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "uk" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "vi" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hans" --name "Monthly Pro"
asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hant" --name "Monthly Pro"
4. Verify
asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table
Workflow: Bulk-Localize a Subscription Group
Subscription groups also have their own display name per locale (this is the "group name" shown to users in the subscription management sheet).
1. Check existing group localizations
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table
2. Create for missing locales
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name"
Optional: set a custom app name for the group:
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name" \
--custom-app-name "My App"
3. Verify
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table
Workflow: Bulk-Localize an In-App Purchase
IAPs have their own localization commands with the same pattern.
1. Resolve IAP ID
asc iap list --app "APP_ID" --output table
2. Check existing localizations
asc iap localizations list --iap-id "IAP_ID" --paginate --output table
3. Create for missing locales
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Display Name"
Optional description:
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Unlock All Features" \
--description "One-time purchase to unlock all premium features"
4. Verify
asc iap localizations list --iap-id "IAP_ID" --paginate --output table
Updating Existing Localizations
To change the display name for existing localizations:
Subscriptions
asc subscriptions localizations update --id "LOC_ID" --name "New Name"
Subscription Groups
asc subscriptions groups localizations update --id "LOC_ID" --name "New Group Name"
In-App Purchases
asc iap localizations update --localization-id "LOC_ID" --name "New Name"
To bulk-update, list existing localizations first, extract the IDs, then update each one.
Bulk-Localize All Subscriptions in an App
For a full app with multiple subscription groups and subscriptions:
# 1. List all groups
asc subscriptions groups list --app "APP_ID" --paginate
# 2. For each group, localize the group itself
# (repeat group localization workflow above)
# 3. For each group, list subscriptions
asc subscriptions list --group-id "GROUP_ID" --paginate
# 4. For each subscription, localize it
# (repeat subscription localization workflow above)
Agent Behavior
- Always list existing localizations first to avoid duplicate creation errors.
- Skip locales that already have a localization; only create missing ones.
- When the user provides a single display name, use it for all locales (same name everywhere).
- When the user provides translated names per locale, use the locale-specific name for each.
- If a description is provided, pass
--descriptionon create. Otherwise omit it. - Use
--output tablefor verification steps so the user can visually confirm. - Use default JSON output for intermediate automation steps.
- After bulk creation, always run the list command to verify completeness.
- For apps with many subscriptions, process them sequentially per group to keep output readable.
- If a create call fails for a locale, log the locale and error, then continue with the remaining locales. After the batch completes, report all failures together so the user can address them.
Notes
- Subscription display names are what users see on the subscription management sheet and in purchase dialogs.
- Creating a localization for a locale that already exists will fail; always check first.
- There is no bulk API; each locale requires a separate create call.
- Use
--paginateon list commands to ensure all existing localizations are returned. - Use the
asc-id-resolverskill if you only have app names instead of IDs.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/bulk-asc-subscription-localization-ms1aw68g/download' --output '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md.part' && mv '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md.part' '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md' && test -s '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/asc-subscription-localization' && cp -R '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g' '.claude/skills/asc-subscription-localization'Cursor
test -f '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md' && test -s '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/asc-subscription-localization' && cp -R '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g' '.cursor/skills/asc-subscription-localization'Codex
test -f '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md' && test -s '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/asc-subscription-localization' && cp -R '.skill-downloads/bulk-asc-subscription-localization-ms1aw68g' '.agents/skills/asc-subscription-localization'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/bulk-asc-subscription-localization-ms1aw68g'openskills read 'bulk-asc-subscription-localization-ms1aw68g'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/bulk-asc-subscription-localization-ms1aw68g/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.