Release de Easymailing Skills
Analiza los cambios pendientes, determina la versión semver, actualiza el CHANGELOG, hace commit, push y crea un release en GitHub.
Flujo principal
FASE 1: Análisis de cambios ↓ FASE 2: Determinar versión ↓ FASE 3: Actualizar CHANGELOG ↓ FASE 4: Commit y push ↓ FASE 5: Crear release en GitHub
Fase 1: Análisis de cambios
Paso 1.1: Ver estado del repositorio
Ejecuta estos comandos para entender qué ha cambiado:
Estado actual
git status
Cambios en archivos
git diff
Último tag/release
git describe --tags --abbrev=0 2>/dev/null || echo "No hay tags previos"
Commits desde el último tag (si existe)
git log $(git describe --tags --abbrev=0 2>/dev/null)..HEAD --oneline 2>/dev/null || git log --oneline -10
Paso 1.2: Resumir cambios
Presenta al usuario un resumen de los cambios detectados:
Cambios detectados
Archivos modificados:
- kb-article/kb-article.md
- kb-article/scripts/zendesk.ts
Resumen de cambios:
- [descripción breve de cada cambio significativo]
Fase 2: Determinar versión
Reglas de versionado semver
Analiza los cambios y determina el tipo de incremento:
MAJOR (x.0.0) - Cambios breaking:
-
Eliminar o renombrar una skill
-
Cambiar estructura de archivos de forma incompatible
-
Cambiar flujo de skill de forma que rompa uso existente
MINOR (0.x.0) - Nueva funcionalidad:
-
Añadir nueva skill
-
Añadir nuevo comando o fase a una skill existente
-
Añadir nueva integración (API, herramienta)
PATCH (0.0.x) - Correcciones y mejoras menores:
-
Corregir bugs
-
Mejorar documentación
-
Ajustar textos o formatos
-
Refactorizar sin cambiar funcionalidad
Paso 2.1: Proponer versión
Obtén la versión actual:
git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0"
Propón la nueva versión y explica por qué:
Versión propuesta: v1.2.0
Razón: Se añadió nueva funcionalidad (comando update en zendesk.ts)
¿Te parece bien esta versión o prefieres otra?
Espera confirmación del usuario antes de continuar.
Fase 3: Actualizar CHANGELOG
Paso 3.1: Leer CHANGELOG actual
cat CHANGELOG.md
Paso 3.2: Preparar entrada del changelog
Genera la entrada para el CHANGELOG siguiendo el formato existente:
[X.Y.Z] - YYYY-MM-DD
Added
- Descripción de funcionalidades nuevas
Changed
- Descripción de cambios en funcionalidades existentes
Fixed
- Descripción de correcciones
Solo incluye las secciones que apliquen (Added, Changed, Fixed, Removed, etc.)
Paso 3.3: Actualizar CHANGELOG.md
Mueve el contenido de [Unreleased] a la nueva versión y deja [Unreleased] vacío:
[Unreleased]
[X.Y.Z] - YYYY-MM-DD
[contenido movido de Unreleased + cambios actuales]
Fase 4: Commit y push
Paso 4.1: Añadir archivos
git add -A
Paso 4.2: Crear commit
Usa un mensaje descriptivo que resuma los cambios:
git commit -m "feat: descripción breve de los cambios principales
- Detalle 1
- Detalle 2
- Detalle 3"
Convenciones de prefijos:
-
feat: nueva funcionalidad
-
fix: corrección de bugs
-
docs: documentación
-
refactor: refactorización
Paso 4.3: Push
git push origin main
Fase 5: Crear release en GitHub
Paso 5.1: Preparar notas del release
Las notas deben incluir:
-
Resumen de los cambios principales
-
Lista de cambios (copiada del CHANGELOG)
-
Créditos si aplica
Paso 5.2: Crear release
gh release create vX.Y.Z --title "vX.Y.Z - Título descriptivo" --notes "$(cat <<'EOF'
Cambios en esta versión
Added
- ...
Changed
- ...
Fixed
- ... EOF )"
Paso 5.3: Confirmar al usuario
✅ Release creado exitosamente
- Versión: vX.Y.Z
- URL: https://github.com/usuario/repo/releases/tag/vX.Y.Z
- Commit: [hash]
El CHANGELOG.md ha sido actualizado y los cambios están publicados.
Invocación
/release
O cuando el usuario diga:
-
"haz release"
-
"publica los cambios"
-
"sube a git"
-
"crear release"
-
"nueva versión"