Skip to content

Commit eae8110

Browse files
committed
chore: refine release skills docs
Made-with: Cursor
1 parent fe5f2b4 commit eae8110

File tree

2 files changed

+65
-20
lines changed

2 files changed

+65
-20
lines changed

.github/copilot-instructions.md

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,44 @@
11
# Instrucciones para Gestión de Releases (Carpeta `release/`)
22

3-
Cuando se detecte una rama `release/v{VERSION}` creada automáticamente por `release-please` (al detectar commits en `master`), Copilot debe intervenir para finalizar el release:
3+
Estas instrucciones guían a Copilot sobre cómo intervenir en el flujo de releases cuando se usa `release-please` y la skill de la carpeta `release/`.
44

5-
1. **Detección de Contexto:**
6-
- Confirmar que se encuentra en una rama `release/v{VERSION}`.
7-
- Usar el archivo `release/.releaserc.yml` para configuraciones específicas.
8-
- Referencia de versión: `package.json` (campo `version`).
5+
## 1. Detección de contexto
96

10-
2. **Generación de Changelog en Español:**
11-
- Analizar los commits del PR/rama actual.
12-
- Generar/Actualizar `release/CHANGELOG.md` con secciones en español (ej. "Características", "Correcciones").
13-
- El formato debe seguir lo definido en `.releaserc.yml`.
7+
- Identificar si el usuario está en:
8+
- La rama principal (`master`/`main`) → **Modo A: crear release nuevo**.
9+
- Una rama de release creada por `release-please` (por ejemplo `release-please--branches--master--components--simple-test-project` u otra similar) → **Modo B: completar release existente**.
10+
- Usar el archivo `release/.releaserc.yml` para configuraciones específicas.
11+
- Referencia de versión: `package.json` (campo `version`) y/o manifestos de `release-please`.
1412

15-
3. **Cierre de Release:**
16-
- Actualizar la versión en `package.json`.
13+
## 2. Modo A – Crear un release nuevo (desde `master`/`main`)
14+
15+
Cuando el usuario pida algo como **"Crea un release nuevo desde master usando release-please"** y esté en `master`/`main`:
16+
17+
1. Verificar que se trata de la rama principal.
18+
2. Validar que los commits recientes siguen Conventional Commits.
19+
3. Ayudar a disparar el workflow de `release-please` (no crear ramas/PRs manualmente si no es necesario).
20+
4. Una vez que `release-please` genere el PR de release:
21+
- Sugerir al usuario cambiarse a la rama de release y continuar en **Modo B**.
22+
23+
## 3. Modo B – Completar un PR de release-please ya creado (recomendado)
24+
25+
Cuando el usuario esté en una rama de release creada por `release-please` y pida algo como
26+
**"Completa este release en esta rama de release-please: genera o actualiza el CHANGELOG en español, actualiza la versión en package.json y deja todo listo para commit en esta misma rama, sin crear un nuevo PR ni tocar master."**:
27+
28+
1. **Detección de contexto:**
29+
- Confirmar que se está en una rama de release (nombre generado por `release-please`).
30+
- No cambiar de rama a `master`/`main` ni crear nuevas ramas de release.
31+
32+
2. **Generación de changelog en español:**
33+
- Analizar los commits del PR/rama actual (desde el último tag).
34+
- Generar o actualizar `release/CHANGELOG.md` con secciones en español (ej. "Características", "Correcciones", "Documentación").
35+
- Seguir el formato definido en `.releaserc.yml`.
36+
37+
3. **Cierre de release en la rama actual:**
38+
- Actualizar la versión en `package.json` (campo `version`) según la versión del release actual.
1739
- Realizar un commit con el mensaje: `chore: release v{version} [spanish changelog]`.
1840
- Ejecutar el **Release & Communication Agent** para generar la síntesis para stakeholders (evidencia, riesgos, etc.).
19-
- Dejar el PR listo para revisión y merge manual a `master`. (El tag final lo creará `release-please` al mergear).
41+
- Dejar el PR listo para revisión y merge manual a `master`.
42+
- No crear un nuevo PR ni una nueva versión de release.
43+
44+
> Nota: si ya existe un PR de release abierto, Copilot **no debe** intentar generar otro PR de release ni forzar un nuevo cálculo de versión; solo debe completar el contenido del PR actual.

release/skill.md

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ Este documento describe la "skill" que reside en la carpeta `release/` y que per
55
### ¿Qué hace?
66

77
- Detecta configuración del proyecto mediante `.releaserc.yml`.
8-
- Se activa cuando `release-please` crea una rama `release/v{VERSION}`.
8+
- Se activa cuando `release-please` crea una rama de release (por ejemplo `release-please--branches--master--components--simple-test-project` u otro nombre generado por la acción).
99
- Inspecciona commits desde el último tag siguiendo conventional commits.
1010
- Genera o actualiza el `CHANGELOG.md` en español con secciones estándares.
1111
- Actualiza la versión en `package.json`.
1212
- Invoca al Release & Communication Agent para producir notas de versión y gestionar comunicación para stakeholders.
13-
- Deja el PR listo para revisión y merge manual a `master`.
13+
- Deja el PR listo para revisión y merge manual a `master`, sin crear PRs adicionales.
1414

1515
### Estructura de la carpeta
1616

@@ -21,9 +21,28 @@ Este documento describe la "skill" que reside en la carpeta `release/` y que per
2121

2222
### Uso
2323

24-
El usuario simplemente formula una petición a Copilot del tipo:
24+
La skill tiene dos modos de uso, según la rama en la que estés:
2525

26-
> "Crea un release" o "Genera un release automático".
26+
1. **Modo A – Crear un release nuevo (desde `master`/`main`)**
27+
28+
Úsalo solo cuando estés en la rama principal (`master` o `main`) y quieras que `release-please` calcule una nueva versión y genere un PR de release:
29+
30+
> "Crea un release nuevo desde master usando la configuración de release-please."
31+
32+
En este modo, el agente valida convenciones y ayuda a disparar el workflow de `release-please`, que creará la rama y el PR de release correspondientes.
33+
34+
2. **Modo B – Completar un PR de release-please ya creado (recomendado)**
35+
36+
Úsalo cuando ya exista un PR de release generado por `release-please` y estés situado en la **rama de ese PR** (por ejemplo `release-please--branches--master--components--simple-test-project`):
37+
38+
> "Completa este release en esta rama de release-please: genera o actualiza el CHANGELOG en español, actualiza la versión en package.json y deja todo listo para commit en esta misma rama, sin crear un nuevo PR ni tocar master."
39+
40+
En este modo, el agente:
41+
- Trabaja únicamente sobre la rama de release ya creada por `release-please`.
42+
- No recalcula la versión ni crea un nuevo PR.
43+
- Genera/actualiza `CHANGELOG.md`, actualiza `package.json` y ejecuta el Release & Communication Agent para dejar el PR listo para revisión.
44+
45+
> Importante: para evitar crear otra versión y otro PR cuando ya existe uno abierto, no uses el prompt genérico "Crea un release" estando en la rama de release. En ese caso, usa siempre el modo B ("Completa este release en esta rama…").
2746
2847
Copilot toma el control mediante los agentes definidos y ejecuta el flujo anterior, respetando la configuración en `release/.releaserc.yml`.
2948

@@ -33,7 +52,7 @@ Copilot toma el control mediante los agentes definidos y ejecuta el flujo anteri
3352

3453
Para cada release se sigue este flujo:
3554

36-
1. **Creación Automática:** `release-please` detecta commits en `master` y crea la rama `release/v{VERSION}` (ej: `release/v1.2.0`) y su respectivo PR.
55+
1. **Creación Automática:** `release-please` detecta commits en `master` y crea una rama de release y su respectivo PR (el nombre puede ser `release/v{VERSION}` o el formato por defecto de release-please, como `release-please--branches--master--components--simple-test-project`).
3756
2. **Intervención de Copilot:** Una vez en la rama, Copilot:
3857
- Actualiza `package.json` (campo `version`).
3958
- Genera `release/CHANGELOG.md` en español.
@@ -42,15 +61,16 @@ Para cada release se sigue este flujo:
4261
4. **Revisión:** El desarrollador revisa el PR que ya contiene el changelog y la síntesis.
4362
5. **Merge a master:** Al mergear el PR, `release-please` crea el tag de Git automáticamente.
4463

45-
**Ejemplo de comando Copilot:**
64+
**Ejemplos de comandos para Copilot:**
4665

4766
```
48-
"Crea un release"
67+
"Crea un release nuevo desde master usando release-please."
68+
"Completa este release en esta rama de release-please (changelog en español y versión actualizada), sin crear un nuevo PR."
4969
```
5070

5171
El sistema automáticamente:
5272

53-
- ✅ Detecta rama `release/v1.2.0` creada por release-please
73+
- ✅ Detecta la rama de release creada por release-please
5474
- ✅ Traduce y genera changelog a español
5575
- ✅ Actualiza versión en package.json
5676
- ✅ Prepara síntesis de comunicación

0 commit comments

Comments
 (0)