Agent skill

dropletify

Esta skill debe usarse cuando el usuario pide "desplegar en DigitalOcean", "configurar droplet", "deploy a droplet", "CI/CD para DigitalOcean", "GitHub Actions para droplet", o quiere preparar un proyecto para despliegue con Docker en DigitalOcean.

Stars 1
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/DieGopherLT/dotclaudefiles/tree/main/plugins/dotclaudefiles/skills/dropletify

SKILL.md

Despliegue de proyecto dentro de un droplet de DigitalOcean

El objetivo a alcanzar es configurar el proyecto para poder desplegarlo dentro de un droplet de DigitalOcean mediante GitHub Actions.

Requisitos previos - Docker

Todas las aplicaciones desplegadas en DigitalOcean deben estar contenidas dentro de contenedores Docker.

Hay que comprobar que existan archivos de Docker dentro del proyecto y un docker compose file para orquestarlo. Hay dos posibles escenarios:

Archivos de Docker existentes

Corroborar que existan los siguientes archivos:

  • Dockerfile en la raíz del proyecto
  • docker-compose.yml en la raíz del proyecto

Evaluar si están actualizados y alineados con las necesidades del proyecto mediante agentes de exploración.

Con base en eso, evaluar: ¿Se puede reusar el Dockerfile y docker-compose.yml existentes para el despliegue en DigitalOcean?

  • : Usar esos mismos archivos.
  • No: Invocar el agente dockerify para crear versiones optimizadas para producción.

Archivos de Docker inexistentes

Invocar el agente dockerify para analizar el proyecto y generar los archivos Docker necesarios.

El agente dockerify se encarga de:

  • Detectar runtime, framework y dependencias del proyecto
  • Crear Dockerfile optimizado con multi-stage builds y mejores prácticas
  • Generar .dockerignore apropiado
  • Usar imágenes Alpine por defecto (con fallback a Debian si hay incompatibilidades)
  • Aplicar hardening de seguridad (usuario non-root, permisos correctos)

Después de que dockerify complete su trabajo, crear manualmente el docker-compose.yml si el proyecto lo requiere para orquestación local.

Archivo de workflow para GitHub Actions

Seguir los siguientes pasos:

  • Crear un archivo de workflow de GitHub Actions en .github/workflows/deploy.yml tomando como referencia este ejemplo.
  • Crear los scripts necesarios en el directorio scripts/:
    • scripts/docker-cleanup.sh - Limpieza automática de recursos Docker (copiar este archivo)
    • scripts/rollback.sh - Rollback automático en caso de fallo (copiar este archivo)
  • En el campo env del workflow, agregar los secretos necesarios para el despliegue.
    • Ya hay algunos por defecto en el ejemplo que son para configurar el registro de contenedores y droplet de DigitalOcean.
  • Dentro del step Deploy to DigitalOcean Droplet atender la indicación de crear el archivo .env correspondiente para producción usando los valores de env del workflow.

Configuración del cleanup automático

El workflow incluye un job setup-cleanup-cron que:

  1. Verifica si el script de limpieza ya existe en el droplet (idempotente)
  2. Si no existe:
    • Copia scripts/docker-cleanup.sh desde el repositorio al droplet
    • Lo instala en /usr/local/bin/docker-cleanup.sh
    • Configura un cron job para ejecutarlo diariamente a las 3 AM
    • Ejecuta una limpieza inicial para verificar funcionamiento
  3. Si ya existe: termina sin hacer nada

El script de cleanup mantiene el droplet limpio automáticamente:

  • Retiene solo las 5 imágenes Docker más recientes por repositorio
  • Elimina contenedores detenidos, imágenes dangling, redes y volúmenes no usados
  • Registra todas las operaciones en /var/log/docker-cleanup.log

Configuración del rollback automático

El workflow incluye lógica de rollback automático en el job deploy:

  1. Instalación del script: En el primer deployment, copia e instala scripts/rollback.sh en /usr/local/bin/rollback.sh
  2. Tracking de versiones: Mantiene un archivo .rollback-<image-name>.env en el home del usuario del droplet que guarda el LAST_WORKING_TAG (último tag que funcionó correctamente)
  3. Verificación post-deployment: Después de iniciar el contenedor, verifica que esté corriendo
  4. Rollback automático: Si el contenedor falla al iniciar:
    • Lee el LAST_WORKING_TAG del archivo de rollback
    • Extrae la configuración del contenedor fallido (env vars, ports, volumes, network)
    • Despliega un nuevo contenedor usando el tag anterior con la misma configuración
    • Si el rollback tiene éxito, el deployment termina exitosamente
    • Si el rollback falla, requiere intervención manual
  5. Actualización del tag: Solo actualiza LAST_WORKING_TAG cuando un deployment es exitoso

El script de rollback puede ejecutarse manualmente:

bash
/usr/local/bin/rollback.sh <container-name> <image-name> <registry-path>

Notas sobre el despliegue

El workflow usa docker run directamente en lugar de docker-compose para simplificar el despliegue:

  • No requiere clonar el repositorio en el droplet
  • Las variables de entorno se manejan mediante archivo .env temporal
  • Para múltiples puertos, agrega más flags -p en el comando docker run

Expand your agent's capabilities with these related and highly-rated skills.

DieGopherLT/dotclaudefiles

plan-feature

1 0
Explore
DieGopherLT/dotclaudefiles

smart-interview

Esta skill debe usarse cuando el usuario pregunta "¿Preguntas?", "¿Tienes dudas?", "¿Tienes preguntas?", "¿Quieres aclarar algo?", "¿Necesitas aclarar algo?", "aclara lo que necesites", o cuando quiere aterrizar requerimientos antes de planear. Tambien la invoca plan-feature en Phase 3. Ejecuta entrevista estructurada para obtener requerimientos cuantificables, reglas de negocio traducibles a codigo, y flujos del sistema; luego anota los resultados en el plan.

1 0
Explore
DieGopherLT/dotclaudefiles

post-implementation

Esta skill debe usarse cuando el usuario pide "haz review de los cambios", "review the changes", "aplica el post-implementacion", "apply post-implementation", "run post-implementation", o cuando el plan aprobado instruye "invoke /smart-plan:post-implementation". Ejecuta workflow post-implementacion despues de que el codigo este completo con quality review (3 reviewers paralelos), auto-fix de issues (confianza >= 80%), documentacion del feature, y commit opcional. Puede usarse despues de cualquier implementacion, no solo smart-plan.

1 0
Explore
DieGopherLT/dotclaudefiles

smart-delegation

Esta skill debe usarse cuando Claude detecta que una implementacion es lo suficientemente grande como para dividirla en sub-agentes (5+ archivos, dependencias entre cambios, nuevas abstracciones que otros archivos consumen), cuando el usuario pide "delega la implementacion", "orquesta los implementadores", "usa sub-agentes", "delegate to sub-agents", "orchestrate implementers", o cuando plan-feature invoca la delegacion tras aprobar un plan.

1 0
Explore
DieGopherLT/dotclaudefiles

tdd-workflow

Esta skill debe usarse cuando el usuario pide "aplicar TDD", "desarrollo guiado por tests", "test-driven development", "red green refactor", "ciclo RGR", "escribir tests primero", "nueva feature con TDD", "mejorar testabilidad", "filosofia TDD", o menciona Iron Laws, TDD philosophy, o quiere entender el proceso TDD. NO usar cuando el usuario pide agregar tests a un proyecto existente o setup de testing — eso es testing:add-testing.

1 0
Explore
DieGopherLT/dotclaudefiles

add-testing

Esta skill debe usarse cuando el usuario pide "agregar tests a proyecto existente", "add testing to existing project", "setup de testing", "configurar infraestructura de tests", "pipeline completo de testing", "quiero tests para este modulo", "agregar cobertura de tests", "add test coverage", "integrar testing al proyecto". Ejecuta pipeline completo de 7 pasos: auditoria de testabilidad, adaptacion condicional de codigo, investigacion de dependencias, implementacion de tests, auditoria de calidad de inputs, reporte de cobertura y generacion de reglas del proyecto.

1 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results