---
name: wasabeef/auto-actualizar-descripción-y-etiquetas-de-pr
source: https://app.decimal.ai/s/wasabeef-auto-actualizar-descripcio-n-y-etiquetas-de-pr@1/SKILL.md
source_sha256: dbcad3648758
---

# Auto-actualizar descripción y etiquetas de PR

## Resumen

Un comando que actualiza automáticamente las descripciones y etiquetas de Pull Request. Analiza los cambios de Git para generar y establecer descripciones y etiquetas apropiadas.

## Uso

```bash
/pr-auto-update [opciones] [número de PR]
```

## Opciones

- `--pr <número>`: Especificar número de PR objetivo (se detecta automáticamente desde la rama actual si se omite)
- `--description-only`: Actualizar solo la descripción (mantener etiquetas sin cambios)
- `--labels-only`: Actualizar solo etiquetas (mantener descripción sin cambios)
- `--dry-run`: Mostrar contenido generado sin realizar actualizaciones reales
- `--lang <idioma>`: Especificar idioma (es, en)

## Ejemplos Básicos

```bash
# Auto-actualizar PR para rama actual
/pr-auto-update

# Actualizar PR específico
/pr-auto-update --pr 1234

# Actualizar solo descripción
/pr-auto-update --description-only

# Verificar con dry-run
/pr-auto-update --dry-run
```

## Detalles de Características

## 1. Auto Detección de PR

Detecta automáticamente el PR correspondiente desde la rama actual:

- Busca PR abierto relacionado con la rama actual
- Obtiene información del PR usando GitHub CLI
- Soporta tanto GitHub.com como GitHub Enterprise

## 2. Generación de Descripción

Genera automáticamente descripción del PR analizando:

- **Análisis de Commits**: Resumen de mensajes de commit
- **Detección de Cambios**: Cambios principales en archivos
- **Extracción de Propósito**: Identificación del objetivo del cambio
- **Referencias de Issues**: Detección automática de #123 mentions

## 3. Sugerencia de Etiquetas

Sugiere etiquetas apropiadas basadas en:

- **Tipo de Cambio**: `enhancement`, `bug`, `documentation`
- **Área de Impacto**: `frontend`, `backend`, `database`
- **Prioridad**: `high priority`, `low priority`
- **Estado**: `work in progress`, `ready for review`

## 4. Análisis de Impacto

Analiza el impacto de los cambios:

- **Archivos Modificados**: Lista de archivos y estadísticas
- **Dependencias**: Cambios en package.json, Gemfile, etc.
- **Breaking Changes**: Detección de cambios incompatibles
- **Cobertura de Tests**: Verificación de tests agregados

## Formato de Descripción Generada

## Estructura Estándar

```markdown
## 📋 Resumen

[Descripción breve del propósito del PR]

## 🎯 Objetivo

- [Problema que resuelve]
- [Beneficio que aporta]

## 📝 Cambios Realizados

- [Cambio principal 1]
- [Cambio principal 2]
- [Cambio principal 3]

## 🧪 Testing

- [ ] Tests unitarios agregados/actualizados
- [ ] Tests de integración pasando
- [ ] Probado manualmente

## 📊 Impacto

- **Archivos modificados**: X archivos
- **Líneas agregadas**: +XXX
- **Líneas eliminadas**: -XXX

## 📌 Issues Relacionados

- Resuelve #123
- Relacionado con #456

## 📸 Capturas de Pantalla

[Si aplica, capturas de UI/resultado]

## ⚠️ Notas para Revisores

[Puntos específicos que necesitan atención]
```

## Personalización por Tipo

**Para Features**:

- Enfoque en funcionalidad nueva
- Documentación de uso
- Ejemplos de implementación

**Para Bugfixes**:

- Descripción del bug original
- Causa raíz identificada
- Solución implementada

**Para Refactoring**:

- Justificación del cambio
- Mejoras de rendimiento/mantenibilidad
- Compatibilidad hacia atrás

## Integración con CI/CD

## GitHub Actions

```yaml
name: Auto Update PR
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  update-pr:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Update PR Description
        run: |
          /pr-auto-update --pr ${{ github.event.pull_request.number }}
```

## Pre-commit Hook

```bash
#!/bin/bash
# .git/hooks/pre-push
if [ -n "$(git status --porcelain)" ]; then
  echo "Actualizando PR antes de push..."
  /pr-auto-update --dry-run
fi
```

## Configuración

## Archivo `.pr-auto-update.yml`

```yaml
# Configuración personalizada
language: es # Idioma por defecto
labels:
  enabled: true
  custom:
    - "needs-review"
    - "urgent"
description:
  template: "custom" # usar template personalizado
  include_stats: true
  include_screenshots: false
```

## Variables de Entorno

```bash
export PR_AUTO_UPDATE_LANG=es
export PR_AUTO_UPDATE_TEMPLATE=detailed
export GITHUB_TOKEN=ghp_xxxxx
```

## Solución de Problemas

## Error: "No se encontró PR asociado"

```bash
# Verificar rama actual
git branch --show-current

# Listar PRs abiertos
gh pr list

# Crear PR si no existe
gh pr create
```

## Error: "Permisos insuficientes"

```bash
# Verificar autenticación
gh auth status

# Re-autenticar si necesario
gh auth login
```

## Descripción no se actualiza

```bash
# Forzar actualización
/pr-auto-update --pr 1234 --force

# Verificar cambios locales
git status
git diff main...HEAD
```

## Patrones Comunes

## Proyecto Flutter

```markdown
Implementado {nombre_funcionalidad} para resolver {problema_usuario}.

- **Implementación UI**: Creada nueva pantalla {nombre_pantalla}
- **Gestión de Estado**: Agregados providers de Riverpod
- **Integración API**: Implementadas queries y mutaciones GraphQL
- **Tests**: Agregados tests de widgets y tests unitarios

- **Arquitectura**: {patrón_utilizado}
- **Dependencias**: {paquetes_agregados}
- **Rendimiento**: {optimizaciones_realizadas}
```

## Proyecto Node.js

```markdown
Implementado endpoint {nombre_API} para {caso_uso}.

- **Implementación API**: Creado nuevo endpoint {ruta_endpoint}
- **Validación**: Agregada lógica de validación de requests
- **Base de Datos**: Implementadas operaciones en tabla {nombre_tabla}
- **Tests**: Agregados tests de integración y unitarios

- **Autenticación**: Validación de tokens JWT
- **Autorización**: Control de acceso basado en roles
- **Validación de Entrada**: Protección contra inyección SQL
```

## Mejora CI/CD

```markdown
Mejorado workflow de GitHub Actions para {efecto_logrado}.

- **Rendimiento**: Reducido tiempo de build en {tiempo}
- **Confiabilidad**: Reforzado manejo de errores
- **Seguridad**: Mejorada gestión de secretos

- **Paralelización**: Ejecución paralela de {nombre_jobs}
- **Caché**: Optimizada estrategia de caché para {objetivo_cache}
- **Monitoreo**: Agregado monitoreo de {métricas}
```

## Mejores Prácticas

1. **Ejecutar antes de solicitar revisión**: Asegura descripciones actualizadas
2. **Usar `--dry-run` primero**: Revisa cambios antes de aplicar
3. **Mantener commits limpios**: Facilita generación de descripción
4. **Configurar templates**: Consistencia en equipo
5. **Integrar con CI**: Automatización completa

## Casos de Uso Avanzados

## Monorepo con Múltiples Packages

```bash
# Detectar cambios por package
git diff main...HEAD --name-only | grep "^packages/"
/pr-auto-update
"Genera descripción separada para cada package modificado"
```

## PR con Múltiples Colaboradores

```bash
# Incluir co-autores
git log --format="%an <%ae>" | sort -u
/pr-auto-update
"Incluye sección de colaboradores en la descripción"
```

## Release PR

```bash
# Para PRs de release
git log v1.0.0...HEAD --oneline
/pr-auto-update --labels-only
"Agrega etiquetas de release y changelog"
```

## Limitaciones

- Requiere GitHub CLI instalado y configurado
- No modifica PRs ya mergeados
- Límite de 65,536 caracteres en descripción
- No puede cambiar título del PR (usar `gh pr edit` para eso)

## Ver También

- `/pr-create` - Crear nuevo PR
- `/pr-review` - Generar revisión de PR
- `/commit-message` - Generar mensajes de commit
- `gh pr` - GitHub CLI para PRs