Communitygithub.com

amagnatema/ship-cloudflare-sites

Desarrolla, audita, aprovisiona, libera, verifica y recupera sitios web en Cloudflare Workers, incluyendo Next.js/OpenNext, Wrangler, D1, R2, secretos, dominios, almacenamiento en caché e implementaciones versionadas. Úsalo para configurar sitios web en Cloudflare, preparación para despliegues, lanzamientos en producción, cambios de infraestructura, reversiones o iteraciones de lanzamiento repetibles; no lo uses para alojamiento solo en Pages o productos de Cloudflare no relacionados.

¿Qué es ship-cloudflare-sites?

Este skill especializado permite gestionar el ciclo de vida completo de sitios web alojados en Cloudflare Workers, incluyendo frameworks como Next.js/OpenNext, Wrangler, bases de datos D1, almacenamiento R2, secretos, dominios personalizados, caché y despliegues versionados. Está diseñado para desarrolladores y equipos que necesitan auditar la configuración del proyecto, aprovisionar recursos remotos, liberar versiones de forma segura, realizar reversiones controladas y verificar el estado del sitio post-despliegue. Es compatible con cualquier repositorio que utilice Cloudflare Workers, y sigue un flujo de trabajo basado en evidencia, utilizando scripts locales para auditar el proyecto antes de cualquier cambio remoto. El skill opera en varios modos: auditoría/planificación (solo lectura), desarrollo/configuración, aprovisionamiento de recursos, liberación (con despliegue directo o promoción gradual), y recuperación ante fallos. Implementa salvaguardas invariables como distinguir entornos local, preview/staging y producción, mantener secretos fuera del código fuente y la salida, modelar cambios en D1 como migraciones ordenadas, y verificar cada despliegue mediante pruebas de humo en la URL pública. Es ideal para desarrolladores que buscan automatizar y estandarizar el proceso de despliegue de sitios en Cloudflare, minimizando riesgos y asegurando la consistencia entre entornos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/amagnatema/ship-cloudflare-sites/tree/HEAD/skills/ship-cloudflare-sites

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Ship Cloudflare Sites v1.1

Opera a partir de la evidencia del repositorio y el alcance solicitado por el usuario. Una solicitud para desplegar autoriza el flujo de trabajo de despliegue ordinario para el entorno nombrado; pregunta solo cuando se vuelva necesario un cambio adicional destructivo, irreversible o materialmente más amplio. Nunca infieras un destino de producción a partir de un entorno no especificado.

Descubrir el proyecto

  1. Lee las instrucciones del repositorio e inspecciona el árbol de trabajo actual antes de editar.
  2. Ejecuta scripts/audit-cloudflare-project.sh <project-root> e inspecciona cada bloqueador reportado.
  3. Resuelve el framework, el gestor de paquetes, el adaptador, el punto de entrada del Worker, la configuración de Wrangler, los entornos, los bindings, las migraciones, los dominios, la ruta de CI y los nombres de secretos a partir de los archivos, no de la memoria.
  4. Utiliza la CLI fijada por el repositorio. Verifica el comportamiento mutable de Cloudflare/OpenNext en la ayuda local --help y en la documentación oficial actual antes de hacer cambios remotos.
  5. Lee solo las referencias relevantes:

Elegir el modo de operación

  • Auditar/planificar: permanece solo lectura. Devuelve evidencia, bloqueadores, riesgos y las siguientes acciones exactas.
  • Desarrollar/configurar: edita y verifica localmente. Crea recursos remotos solo cuando el usuario haya solicitado aprovisionamiento o el despliegue lo requiera.
  • Aprovisionar: confirma cuenta, zona, entorno, nombres y propiedad prevista; crea únicamente los recursos faltantes y persiste los IDs devueltos en la configuración elegida.
  • Liberar: compila una vez, luego despliega ese artefacto verificado. Usa despliegue directo para liberaciones de bajo riesgo cuando se solicite; usa carga de versiones más promoción controlada para liberaciones arriesgadas o explícitamente graduales.
  • Recuperar: selecciona una versión conocida del Worker que sea correcta, luego maneja por separado el estado de D1 y R2. Las versiones del Worker no contienen estado de almacenamiento.

Aplicar salvaguardas invariables

  • Distingue los recursos locales, de preview/staging y de producción. Haz explícito el destino de cada comando remoto.
  • Mantén los valores secretos fuera del código fuente, la salida, las capturas de pantalla y los argumentos del shell. Reporta solo nombres y presencia.
  • Revisa un árbol de trabajo sucio antes de la liberación. No descartes, confirmes ni envíes cambios de usuario no relacionados.
  • Modela los cambios en D1 como migraciones ordenadas y prefiere expandir/rellenar/contraer entre liberaciones.
  • Usa claves R2 inmutables o versionadas para activos con caché larga. Trata la sobrescritura, eliminación, cambio de CORS y purga de caché como un cambio coordinado.
  • Trata los dominios personalizados del Worker y los dominios personalizados de R2 como recursos separados. Verifica de forma independiente el dominio raíz, www, redirecciones canónicas, certificados y el nombre de host de los activos.
  • No consideres que una carga es una liberación exitosa. Verifica el nombre de host público, las rutas críticas, el comportamiento respaldado por D1, un objeto R2 representativo y los registros posteriores al despliegue.

Producir un registro de liberación

Devuelve:

  • ID de liberación, commit de Git, entorno, nombres de recursos del Worker y almacenamiento;
  • cambios de origen/configuración enviados y cambios del árbol de trabajo excluidos;
  • puertas locales y sus resultados;
  • migraciones de D1 más marcador de recuperación/exportación y orden de compatibilidad;
  • cambios en R2/dominio/caché/secretos sin valores de secretos;
  • ID de versión/despliegue del Worker y porcentaje de tráfico cuando esté disponible;
  • URLs de pruebas de humo y resultados;
  • objetivo de reversión, advertencias de almacenamiento y acciones manuales restantes.

Si una puerta falla, detente antes del límite inseguro, conserva la evidencia e indica lo que queda. No debilites una puerta en silencio.

Skills relacionados