Saltar al contenido
WebViewGold Del vibe coding a la App Store
Español
Consigue WebViewGold

Claude Code

Un subagente de Claude Code que revisa tu app según las reglas de App Store y Google Play

Un subagente es un archivo Markdown en .claude/agents/ con sus propias instrucciones, su propia lista de herramientas y su propia ventana de contexto. Dale las reglas de las tiendas que tumban a las apps basadas en web y revisará tu app web y los dos proyectos de WebViewGold como un compañero estricto de App Review, antes de que lo hagan Apple o Google. Abajo tienes el archivo completo del agente, cómo ejecutarlo y qué hacer con su informe.

Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.

  • Garantía de aprobación – o te devolvemos el dinero en 14 días
  • Sin programar
  • Pago único, actualizaciones gratuitas
  • Soporte humano 24/7
  • Hecho en Alemania desde 2014 · ISO 27001

Por qué un subagente es mejor que un prompt de revisión largo

Podrías pegar una lista de comprobación en tu sesión principal de Claude Code. Funciona una vez, y luego aparecen tres problemas. La revisión lee decenas de archivos (rutas, autenticación, precios, Info.plist, AndroidManifest.xml) y llena el contexto que necesitas para la corrección en sí. La sesión que escribió el código es también la que lo califica, así que tiende a justificar sus propias decisiones en lugar de señalarlas. Y la lista vive en tu portapapeles, no en el repositorio.

Un subagente resuelve las tres cosas. Claude Code lo inicia con una ventana de contexto nueva, le pasa solo la tarea y recibe solo el informe. Su línea tools puede dejar fuera Edit y Write, de modo que el revisor no puede "arreglar" cosas a escondidas mientras revisa. Y como el archivo está en .claude/agents/, todo el que clone el repositorio, incluidas una sesión en la nube o un job de CI, obtiene el mismo revisor con las mismas reglas.

Mantén clara la división del trabajo: tu CLAUDE.md le dice a Claude cada día cómo escribir código compatible con las tiendas; el subagente evalúa una versión candidata cuando se lo pides.

El archivo completo del agente

Guárdalo como .claude/agents/store-review-checker.md. Las rutas native/ios y native/android suponen que los proyectos de WebViewGold están junto a tu app web; cámbialas según tu estructura. Todo lo que hay debajo de la segunda línea --- se convierte en el prompt de sistema del subagente. Las instrucciones se quedan en inglés y funcionan igual de bien aunque hables con Claude en español.

markdown
---
name: store-review-checker
description: Strict pre-submission reviewer for the Apple App Store and Google Play. Reviews this web app and its WebViewGold iOS and Android projects against the store rules that reject web-based apps and returns a prioritized report. Use proactively before every store submission, after changes to login, payments, account settings, legal pages or native config, and whenever the user asks whether the app will pass review. Read-only, it reports and never edits.
tools: Read, Grep, Glob, Bash, WebFetch
model: inherit
color: orange
---

You are a senior App Store and Google Play reviewer. You review a web app that is
published as native iOS and Android apps with WebViewGold, a native shell that loads
the production URL of this web app in a WKWebView (iOS) or Android WebView.
Your job: find what would get the next submission rejected, before Apple or Google do.

## Ground rules
- You are read-only. Never create, edit or delete files. Use Bash only for read-only
  commands such as git log, git diff, git show, git tag and ls. Never install, build,
  deploy, commit or push.
- Every finding needs evidence: a file path and line, a route, or a file that is missing.
  If you cannot verify something from the repository, put it under "Needs a human check"
  instead of guessing.
- Do not invent WebViewGold settings or URL schemes. The sources of truth are the pages
  under https://www.webviewgold.com/docs/ and https://www.webviewgold.com/llms-full.txt.
- Store rules change. When a finding depends on the exact current wording of a guideline
  (external purchase links, target API level, account deletion details), name the
  guideline to re-check instead of presenting the rule as permanent.

## Where to look
1. CLAUDE.md and docs/store-review.md first: app facts, demo account notes, review history.
2. Web app: routes, auth flows, settings, pricing and checkout, legal pages, error and
   empty states, and everything gated by isNativeApp() or the WebViewGold user agent token.
3. iOS project in native/ios: Config.swift (host, webviewurl, useragent_iphone,
   useragent_ipad, feature switches), Info.plist (usage descriptions, display name),
   entitlements.
4. Android project in native/android: Config.java (HOST, HOME_URL, USER_AGENT, require*
   flags), AndroidManifest.xml (permissions, intent filters), app/build.gradle
   (applicationId, targetSdk, versionCode, versionName).
5. If a release tag exists, review git diff <last-release-tag>..HEAD with extra care.

## What to check

Apple App Store
- 4.2 Minimum functionality: the app offers more than the website in a browser tab.
  Push, offline handling, the share sheet, biometrics or similar are actually wired in.
  A marketing site or a list of links as the main experience is a blocker.
- 2.1 App completeness: no placeholder text, lorem ipsum, "coming soon", dead buttons,
  404 links or test data. Everything behind a login is reachable with a demo account.
- 2.3 Accurate metadata: in-app wording matches the app name; no "Get it on Google Play"
  or other platform references inside the iOS app.
- 3.1.1 and 3.1.2 Payments: digital goods and subscriptions used in the app go through
  in-app purchase in the native app. Flag every web checkout, price and external payment
  link visible inside the app. US storefront rules for external purchase links have
  changed since 2025: mark those findings "decide with the current guideline text".
- 4.8 Login services: if Google, Facebook or another third-party login exists, an
  equivalent privacy-focused option such as Sign in with Apple is offered.
- 5.1.1 Privacy: a privacy policy route that describes real data practices; account
  deletion inside the app (not only by email) when users can create accounts; every
  usage description in Info.plist belongs to a feature that is used and states a
  specific purpose.
- 5.1.2 Tracking: ads or cross-app tracking only after the App Tracking Transparency prompt.
- 1.2 User-generated content (posts, chat, shared AI output): report, block, filtering
  and a published contact.
- 4.0 Design: safe-area padding on fixed bars, tap targets of at least 44 pt, no
  horizontal scrolling at 320 px width, no hover-only controls.

Google Play
- Minimum functionality and webview spam: the same substance test as Apple 4.2.
- User Data policy and Data safety: list every SDK and endpoint that receives user data
  and compare it with the privacy policy; mismatches with the Data safety form are blockers.
- Account deletion: an in-app path plus a public web URL for deletion requests.
- Permissions: every permission in AndroidManifest.xml is used; unused require* flags
  in Config.java are false.
- Target API level: report targetSdk and tell the user to compare it with Google's
  current requirement.
- Impersonation and intellectual property: no brand names, logos or screenshots the
  developer does not own.
- Families: if children could be part of the audience, flag it as a human decision.

WebViewGold configuration
- Config.swift and Config.java point to the production domain over HTTPS, never to
  localhost, a LAN address, 10.0.2.2, a tunnel or a preview deployment.
- The user agent token the web app checks for is set in useragent_iphone,
  useragent_ipad and USER_AGENT.
- askforpushpermissionatfirstrun is false if the web app asks later with registerpush://.
- deletecache (iOS) and CLEAR_CACHE_ON_STARTUP (Android) are false unless the user
  wants a logout on every launch.

## Report format
Return exactly these four parts and nothing else.

### Verdict
One sentence: "Ready to submit", "Ready after fixing N blockers" or "Not ready".

### Findings
| # | Severity | Store | Guideline | Evidence | Fix | Where to fix |
Severity: Blocker (likely rejection), Risk (rejection possible), Polish.
Where to fix: web app, WebViewGold config, store console, or human decision.
Sort by severity, merge duplicates, at most 15 rows.

### Needs a human check
What you could not verify from the repository: device behavior, App Store Connect
metadata, screenshots, Data safety answers.

### Review notes draft
Three to six sentences for App Review: what the app does, which native features to try,
where the demo account is provided. Never include passwords.

Qué hace cada parte del archivo

name y description

El name es cómo lo llamas (@agent-store-review-checker). La description es lo que Claude lee cuando decide por su cuenta si delega, por eso enumera las situaciones que lo activan: antes de un envío, después de cambios en el inicio de sesión, los pagos o la configuración nativa, y la pregunta de si la app pasará la revisión.

tools

Read, Grep y Glob para inspeccionar archivos, Bash para comandos de git de solo lectura y WebFetch para consultar el texto actual de las directrices o la documentación de WebViewGold. Ni Edit ni Write: el revisor informa y tú decides qué cambia.

model y color

inherit usa el modelo con el que se ejecuta tu sesión. Pon opus para una pasada más lenta y profunda en un código grande o sonnet para comprobaciones rápidas. color solo cambia cómo aparece el agente en la terminal.

Reglas básicas (Ground rules)

Sin pruebas no hay hallazgo: cada hallazgo necesita un archivo y una línea; si no, va a "Needs a human check". Esta sola regla elimina la mayoría de las advertencias vagas que vuelven inútiles las revisiones automáticas.

Las comprobaciones

Agrupadas por tienda y vinculadas a una directriz o al nombre de una política, para que cada hallazgo se pueda rastrear. El bloque de WebViewGold detecta errores de configuración que nunca aparecerían al revisar solo la app web.

Formato del informe

Una tabla fija con la gravedad y "Where to fix" (app web, configuración de WebViewGold, consola de la tienda, decisión humana). Una salida fija hace que las ejecuciones sean comparables y fáciles de pegar en una sesión de corrección.

¡Una forma estupenda de convertir tu web app en una app nativa! Entrega rápida y una manera genial de llevar tus apps a las tiendas sin tener que desarrollar una app nativa completa.

Kevin Joling · FlightConnections & TrainConnections · Trustpilot

Dale los datos que no puede leer en el código

Algunas cosas no están en el repositorio: qué vendes, qué funciones activaste en los proyectos nativos, cómo inicia sesión el revisor, qué dijo Apple la última vez. Ponlas en un archivo corto que el agente lea primero. Deja fuera las contraseñas reales: su sitio es la sección App Review de App Store Connect y el formulario App access de la Play Console.

markdown
# Store review facts (read first by the store-review-checker subagent)

## App
- Store name: Example App
- iOS bundle ID: com.example.app / Android applicationId: com.example.app
- Production URL loaded by both apps: https://app.example.com
- User agent token checked by the web app: WebViewGoldApp

## Native features switched on in WebViewGold
- iOS: OneSignal push (kPushEnabled), QR scanner, Face ID via bioauth://
- Android: OneSignal push (PUSH_ENABLED), QR scanner, biometrics via bioauth://
- Not used: location, microphone, contacts, AdMob

## Money
- Pro subscription. Web: Stripe checkout. Native apps: in-app purchase via RevenueCat only.

## Accounts
- Email sign-up and Google login; Sign in with Apple offered on iOS.
- Reviewer demo account: credentials are entered in App Store Connect (App Review
  Information) and in the Play Console (App access). Role: regular user with sample data.

## Review history
- 1.0 rejected under Guideline 4.2 (no native features). 1.1 added push and QR check-in.
- 1.2 approved on both stores.

Instálalo y ejecuta tu primera revisión

Unos diez minutos, la mayor parte leyendo el primer informe.

  1. Crea el archivo del agente

    Ejecuta mkdir -p .claude/agents en la raíz del repositorio, guarda el archivo de arriba como .claude/agents/store-review-checker.md y haz commit. Claude Code vigila la carpeta y detecta los cambios posteriores en segundos; solo cuando la carpeta agents es completamente nueva hay que reiniciar la sesión una vez.

  2. Añade el archivo de datos

    Guarda docs/store-review.md con los datos reales de tu app y tu historial de revisiones. Actualízalo después de cada resultado, aprobado o rechazado; la sección de historial es lo que evita que el mismo error se repita.

  3. Inicia la revisión

    Pega el prompt de abajo o llama al agente directamente con @agent-store-review-checker revisa la versión candidata. Claude Code también delega por su cuenta cuando preguntas algo como "¿pasará esto App Review?", porque así lo indica la description.

  4. Lee el veredicto y después los bloqueantes

    Empieza por la línea Verdict y sigue con las filas Blocker. Cada fila dice dónde está la solución. Las correcciones de la app web vuelven a tu sesión principal, las de la configuración de WebViewGold son pequeñas ediciones en Config.swift o Config.java, y los puntos de las consolas se convierten en tu lista de tareas para App Store Connect y la Play Console.

  5. Corrige y vuelve a revisar

    Pide a la sesión principal que corrija los bloqueantes uno por uno, con un commit para cada uno, y luego ejecuta otra vez el subagente. Una segunda ejecución limpia sobre el mismo commit es tu señal para compilar.

  6. Revisa también el sitio en producción

    El subagente lee código. Pasa la comprobación gratuita de preparación para App Store y la comprobación de preparación para Play Store por tu URL de producción para detectar lo que solo muestra el sitio desplegado, y después prueba la compilación en un teléfono real.

El prompt de revisión

Cambia la versión, la etiqueta y los nombres de archivo por los tuyos. El último párrafo evita que la sesión principal se lance a editar antes de que hayas leído el informe.

Pégalo en Claude Code en la raíz de tu proyecto
Usa el subagente store-review-checker para revisar este proyecto antes de enviar la versión 1.3 al App Store y a Google Play.

Alcance: toda la app web más native/ios y native/android. La última versión aprobada tiene la etiqueta v1.2.0, así que presta especial atención a los commits posteriores a esa etiqueta. Los datos de la app, las notas sobre la cuenta demo y nuestro historial de revisiones están en docs/store-review.md.

Cuando el subagente termine, muéstrame su informe exactamente como lo escribió. Después propón un plan de correcciones solo para las filas Blocker, agrupado en: cambios en la app web, cambios en la configuración de WebViewGold y tareas en las consolas de las tiendas. No edites ningún archivo hasta que yo confirme el plan.

Errores que restan utilidad al revisor

  • Darle permisos de escritura. Un revisor con Edit y Write se pone a arreglar cosas y sus hallazgos acaban enterrados en un diff. Mantén la línea tools en solo lectura y haz las correcciones en la sesión principal.
  • Suponer que Bash es inofensivo. El subagente sigue tus reglas de permisos habituales, así que sus comandos de shell siguen pidiendo aprobación salvo que los hayas permitido. Si no quieres que ejecute ningún comando, quita Bash de la línea tools; seguirá pudiendo leer todos los archivos.
  • Fijar reglas que cambian. Las reglas de la tienda de EE. UU. sobre enlaces de pago han cambiado desde 2025, Google sube cada año el nivel de API objetivo y los detalles de la eliminación de cuenta se siguen precisando. El archivo le pide al agente que nombre la directriz que hay que volver a comprobar en lugar de presentar una regla como permanente. Relee el propio archivo del agente una vez al año.
  • Esperar que vea la app. No puede ver pantallas renderizadas, tus metadatos de App Store Connect ni tus capturas. Pega los textos de la ficha en el archivo de datos si quieres que los revise, y prueba en dispositivos.
  • Informes sin límite. Sin el tope de 15 filas y la escala de gravedad recibes cuarenta notas del tipo "podrías mejorar". Los informes cortos se leen.
  • Rutas equivocadas. Si tu proyecto de iOS está en ios/ en lugar de native/ios, cambia el archivo, o el agente marcará las comprobaciones nativas como "not found".

Antes de fiarte de un informe limpio

  • El informe nombra los archivos que leyó: rutas de la app web, Config.swift, Config.java, Info.plist y AndroidManifest.xml.
  • La cuenta demo del archivo de datos funciona hoy en la URL de producción.
  • /privacy, /terms y /delete-account cargan en el dominio de producción, no solo en desarrollo.
  • Los dos archivos de configuración apuntan al dominio HTTPS de producción.
  • Cada descripción de uso de Info.plist corresponde a una función que puedes demostrar.
  • Abriste la compilación en un iPhone real y en un teléfono Android real, una vez en modo avión.
  • Tus notas para la revisión siguen la plantilla de notas para la revisión.

Preguntas frecuentes

¿Dónde se guardan los archivos de subagentes de Claude Code?

Los subagentes del proyecto están en .claude/agents/ dentro del repositorio y se comparten mediante Git. Los subagentes personales que deben funcionar en todos tus proyectos van en ~/.claude/agents/. Cada archivo es Markdown con frontmatter YAML; name y description son obligatorios y todo lo demás es opcional.

¿Usará Claude Code el subagente sin que se lo pida?

Puede hacerlo. Claude decide a partir del campo description, por eso el ejemplo enumera situaciones concretas que lo activan y dice "use proactively". Si quieres ir sobre seguro, nombra el subagente en tu prompt o menciónalo con @.

¿Qué modelo debería usar el subagente de revisión?

inherit es un buen valor por defecto. Cambia la línea model a opus para una pasada más lenta y exhaustiva antes de una versión importante, o a sonnet cuando lo ejecutes a menudo sobre cambios pequeños.

¿Puede revisar mi ficha de App Store Connect y mis respuestas de privacidad?

No directamente, porque solo ve el repositorio. Copia la descripción, las palabras clave y las respuestas de App Privacy y Data safety en un archivo como docs/store-listing.md, y el agente las comparará con lo que el código recoge de verdad.

¿Un informe limpio significa que Apple y Google aprobarán la app?

No. Elimina los problemas previsibles, pero los revisores prueban la app en funcionamiento y las políticas cambian. WebViewGold añade una red de seguridad para el resto: si Apple o Google rechazan la app por motivos que no tienen nada que ver con tu contenido, puedes reclamar el reembolso de la licencia dentro de los 14 días posteriores a la compra.

¿Puedo ejecutar el mismo subagente en CI o en Claude Code en la web?

Sí. Las sesiones en la nube y la GitHub Action de Claude Code trabajan sobre un checkout de tu repositorio, así que el archivo del agente que subiste con commit también está disponible allí. La guía de GitHub Actions muestra un workflow que ejecuta una revisión de preparación para las tiendas en cada pull request.

Tres formas de llevar tu app a las tiendas

El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.

Hazlo tú mismo

$109 por plataforma, pago único

La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.

Ver planes en la página principal

Full Service

$698 por plataforma $798

Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.

Detalles del Full Service Con tecnología de WeSetupYourWebViewApp

Precios de la Oferta de invierno válidos hasta el 31 de diciembre de 2026.

¿Listo para lanzar tu app?

Garantía de aprobación en App Store & Google Play – o te devolvemos el dinero en 14 días

¿Prefieres delegarlo? Full Service: configuramos, compilamos y entregamos en 72 horas, desde $698 por plataforma. ¿Preguntas? Chatea con nosotros 24/7.

Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.