AIAgent SkillsXcodeStoreKitProductividad

Agent Skills, parte 2: qué instalar según el tipo de app

En la parte 1 conté qué tengo instalado de forma global: las siete skills que uso en casi cualquier sesión de iOS o macOS. Esta última parte cubre lo demás, que son las skills que solo tienen sentido cuando una app hace algo concreto: vender suscripciones, exponer acciones a Siri, mostrar widgets, guardar datos con Core Data.

Esas no las instalo de forma global. Las pongo dentro del proyecto que las necesita, así solo cuestan contexto cuando trabajo en ese repo.

Si llegas directo a esta parte y no sabes qué es una skill, empieza por la parte 0.

Cómo instalar una skill en un proyecto

En Claude Code, las skills de un proyecto viven en .claude/skills/ dentro del repo. El proceso es el mismo de la parte 1 (clonar, escanear, copiar solo la carpeta, anotar el commit), con otro destino:

git clone --depth 1 https://github.com/AvdLee/Core-Data-Agent-Skill /tmp/core-data
cd ~/.claude/skills/skill-scanner && uv run scripts/scan_skill.py /tmp/core-data/core-data-expert
mkdir -p ~/ruta/a/tu-app/.claude/skills
cp -R /tmp/core-data/core-data-expert ~/ruta/a/tu-app/.claude/skills/

Después decides si .claude/skills/ entra al control de versiones. Si trabajas con más gente, commitearla tiene sentido: todo el equipo usa las mismas instrucciones. Si es un proyecto personal o prefieres no versionar contenido de terceros, va al .gitignore.

Todas las skills de comunidad que menciono abajo las revisé y las pasé por skill-scanner antes de escribir este post. Ninguna tuvo hallazgos.

Si tu app vende algo: StoreKit 2

Aquí hay dos familias que cubren lo mismo, y mi regla de una sola fuente por tema aplica: elige una, no las dos.

  • rshankras/claude-code-apple-skills: paywall-generator arma un paywall de suscripciones con StoreKit 2 y SwiftUI, y subscription-lifecycle cubre lo que pasa después de la compra: periodo de gracia, reintentos de cobro, códigos de oferta, ofertas de recuperación, cambios de plan y seguimiento del estado de la suscripción. Son las que elegí para mis apps con suscripciones.
  • storekit de dpearson2699/swift-ios-skills: una sola skill que implementa y revisa compras y suscripciones, incluyendo SubscriptionStoreView, verificación de derechos y los distintos tipos de compra. Es mejor opción si ya tienes compras funcionando y quieres revisarlas.

Sobre ese segundo repositorio: su licencia es PolyForm Perimeter 1.0.0. Permite usar las skills en trabajo comercial, incluso en proyectos cerrados. Lo que no permite es usarlas para ofrecer un producto que compita con ellas, como otro paquete de skills. El repositorio tiene decenas de skills; copia solo las que vayas a usar.

Si tu app habla con Siri, Shortcuts o Spotlight: App Intents

Aquí las mejores son de Apple, y vienen en pareja:

  • app-intents-specialist: buenas prácticas que no cambian de versión a versión. Atrapa errores que no son obvios: perform() es Sendable, no @MainActor; el sistema puede reintentarlo, así que el trabajo irreversible va al final; el id de un AppEntity tiene que ser estable entre lanzamientos y dispositivos; los valores de un AppEnum se guardan como texto, así que nunca se renumeran.
  • app-intents-whats-new-27: lo nuevo de iOS 26 e iOS 27, como supportedModes en lugar del deprecado openAppWhenRun, intents que se pueden deshacer, requestChoice, snippets interactivos, Visual Intelligence y la migración de @AssistantIntent a @AppIntent(schema:).

Las dos se reparten el trabajo de forma explícita: cada una le dice al agente cuándo usar la otra. Se instalan desde el export de Xcode 27, igual que en la parte 1.

Si tu app tiene widgets

widget-generator (rshankras) genera widgets de WidgetKit para la pantalla de inicio y la pantalla de bloqueo, con su timeline provider, elementos interactivos y configuración con App Intents.

La alternativa es widgetkit de dpearson2699. De nuevo, una sola.

Si tu widget es configurable, combínalo con las skills de App Intents de la sección anterior: la configuración de un widget es un intent.

Si tu app usa Core Data

core-data-expert de Antoine van der Lee cubre el stack completo: configuración, fetch requests y NSFetchedResultsController, guardado y conflictos al combinar cambios, hilos y Swift Concurrency, operaciones en lote, historial persistente, migraciones, rendimiento y sincronización con CloudKit.

Core Data no está muerto. Si tu app lleva años en la App Store, probablemente lo usa, y migrar a SwiftData no siempre vale la pena. Para cuando sí vale la pena, existe migration-patterns (rshankras), que cubre esa migración y otras: UIKit a SwiftUI, ObservableObject a @Observable, Objective-C a Swift y StoreKit 1 a StoreKit 2.

Si tu app usa Apple Intelligence

foundation-models (rshankras) cubre el framework de modelos en el dispositivo: generación de texto, salida estructurada y uso de herramientas (tool calling).

Es de las skills con más valor, porque es una API reciente con poca presencia en el entrenamiento de los modelos.

Si tu app reproduce música

musickit de dpearson2699 cubre la integración con Apple Music: búsqueda en el catálogo, flujos de suscripción, cola de reproducción, controles remotos y la información de “Now Playing”.

Si tu app está en más de un idioma

ios-localization de dpearson2699 cubre String Catalogs (.xcstrings), nombres de claves estables, LocalizedStringKey y LocalizedStringResource, plurales, formatos de números y fechas, diseño de derecha a izquierda y Dynamic Type.

Para escribir y proteger tests

En la parte 1 instalé modernize-tests de forma global para migrar tests viejos. Para escribir tests nuevos uso otra:

  • swift-testing-expert de Antoine van der Lee: estructura de tests, #expect y #require, traits y tags, tests parametrizados, ejecución en paralelo, patrones para esperar código asíncrono y cómo arreglar tests inestables. Hay otra skill de Swift Testing de Paul Hudson; elegí esta para no tener dos fuentes.

Antes de un refactor grande, sobre todo si se lo voy a encargar a un agente, uso dos de rshankras:

  • characterization-test-generator: escribe tests que capturan lo que el código hace hoy, aunque no sea lo ideal. Así, si el refactor cambia algo sin querer, un test falla.
  • flow-walkthrough: recorre flujos completos en el simulador con XCUITest, toma una captura por paso y revisa el grafo de navegación para encontrar pantallas sin salida. Atrapa errores que no se ven en una revisión de código.

Las dos crean y ejecutan archivos, así que piden permisos para correr comandos y escribir. Es normal; solo tenlo en cuenta.

Para entender SwiftUI más a fondo

Dos skills que no instalo de forma global, pero que traigo a un proyecto cuando el problema es SwiftUI en sí:

  • swiftui-specialist (Apple): la skill oficial de buenas prácticas. Como conté en la parte 1, la estoy comparando contra swiftui-expert-skill en proyectos reales antes de decidir cuál queda global.
  • data-flow (rshankras): el modelo mental de SwiftUI, es decir, identidad, ciclo de vida y dependencias de las vistas, quién es dueño de cada estado y cómo Observation rastrea cambios propiedad por propiedad. Es la que necesitas cuando el estado se reinicia sin razón aparente o una vista se recalcula de más.

Si tu app usa Firebase

De firebase/agent-skills, el repositorio oficial de Firebase:

  • firebase-crashlytics: configuración y uso de Crashlytics.
  • xcode-project-setup: modifica el archivo del proyecto de Xcode (.pbxproj) de forma segura para agregar Swift Packages y enlazar archivos. Es más útil de lo que parece, porque editar el .pbxproj a mano es una de las cosas que un agente rompe con más facilidad.

Si tus builds son lentos

Xcode Build Optimization de Antoine van der Lee son seis skills que trabajan juntas: miden tus builds, encuentran qué archivos tardan más en compilar, revisan la configuración del proyecto y de Swift Package Manager, y proponen arreglos.

Traen scripts de Python que ejecutan xcodebuild en tu máquina, incluyendo builds limpios para medir. Los leí: trabajan solo en local y no se conectan a internet. Aun así, cuenta con que un análisis completo tarda lo que tarden varios builds de tu proyecto.

Antes de mandar a revisión

Tres cosas que corro antes de publicar:

  • audit-xcode-security-settings (Apple): audita la configuración de seguridad del proyecto y activa de forma gradual Enhanced Security, advertencias del compilador y checks del analizador estático. La corro una vez por app y la repito cuando cambio algo grande en la configuración.
  • privacy-manifests (rshankras): el PrivacyInfo.xcprivacy, las APIs que requieren declarar un motivo, los dominios de rastreo, las declaraciones de SDKs de terceros y App Tracking Transparency.
  • rejection-handler (rshankras): revisa la app contra los motivos de rechazo más comunes antes de enviarla y, si te rechazan, ayuda a responder en el Resolution Center o a apelar.

Como alternativa a esas dos últimas está app-store-review de dpearson2699, que hace una auditoría similar en una sola skill. Una u otra.

Lo que reviso y todavía no uso a fondo

Hay dos colecciones que pasaron el escáner y que tengo identificadas, pero con las que todavía no tengo suficiente experiencia para recomendarlas sin reservas:

  • app-store-connect-cli-skills: automatizan TestFlight, metadatos, envíos y firmado a través de asc, una herramienta de línea de comandos de la comunidad para App Store Connect. Necesitan una llave de la API de App Store Connect. Si las pruebas, crea una llave con el rol mínimo que necesites, nunca de administrador.
  • aso-skills: optimización de la ficha en la tienda. Las que me interesan son aso-audit, keyword-research y metadata-optimization. Funcionan sin cuenta; si conectas el servicio de Appeeky (por su API o su servidor MCP), trabajan con datos reales de búsqueda.

El servidor MCP de Xcode

Una skill le da conocimiento al agente. Un servidor MCP le da herramientas: en el caso de Xcode, cosas como compilar, correr tests o consultar la documentación de Apple.

Xcode 27 incluye mcpbridge, un puente que conecta un agente externo con las herramientas MCP de Xcode. Es lo que necesita device-interaction, la skill de la parte 1, para funcionar fuera del asistente de Xcode.

Para conectarlo con Claude Code:

  1. En los ajustes de Xcode 27, en la sección de Intelligence, permite que agentes externos usen las herramientas de Xcode.
  2. Registra el servidor:
claude mcp add --scope user --transport stdio xcode -- xcrun mcpbridge

mcpbridge se conecta al Xcode que tengas seleccionado con xcode-select, así que Xcode tiene que estar abierto mientras lo usas.

Si necesitas más control sobre el simulador del que ofrece Xcode, existe MobileBuildMCP de Sentry, antes llamado XcodeBuildMCP. Considera dos cosas: envía telemetría a Sentry (se puede desactivar) y deja un proceso corriendo en segundo plano.

Resumen por tipo de app

Si tu app…Instala en el proyecto
Vende suscripciones o compraspaywall-generator + subscription-lifecycle, o storekit
Se integra con Siri, Shortcuts o Spotlightapp-intents-specialist + app-intents-whats-new-27
Tiene widgetswidget-generator o widgetkit
Usa Core Datacore-data-expert (+ migration-patterns si migras)
Usa Apple Intelligencefoundation-models
Reproduce músicamusickit
Está en varios idiomasios-localization
Necesita tests nuevos o va a un refactor grandeswift-testing-expert, characterization-test-generator, flow-walkthrough
Usa Firebasefirebase-crashlytics, xcode-project-setup
Compila lentoXcode Build Optimization
Está por publicarseaudit-xcode-security-settings, privacy-manifests, rejection-handler

Cierre de la serie

Si me quedo con una idea de todo esto, es que menos es más. Una skill bien elegida le ahorra al agente horas de suposiciones; diez skills que cubren lo mismo lo confunden. El valor no está en tener muchas, sino en tener las correctas para lo que estás construyendo hoy.

En resumen:

  • Parte 0: qué es una skill y por qué importa que Apple publique las suyas.
  • Parte 1: las siete globales y cómo decidir qué va global.
  • Parte 2 (esta): lo que se instala por proyecto, según lo que hace cada app.

Y tres hábitos que aplican a cualquier skill que encuentres después de leer esto: revísala antes de instalarla, instala solo la carpeta que necesitas y vuelve a revisarla cuando salga una versión nueva.