Discusi贸n

Habilidad de Constructor de Registro de Cambios de Conventional Commits

De Wikiprompt, la enciclopedia libre de prompts

Fatih Kadir Ak谋n

3 nov 2026

Habilidad de Constructor de Registro de Cambios de Conventional Commits Una habilidad completa de IA que convierte un git log en formato Conventional Commits en una secci贸n de release lista para pegar en Keep a Changelog, con scripts, referencias, plantillas y ejemplos.

Contenido del PromptGuardar

馃寪
--- name: conventional-commits-changelog-builder description: Convierte un git log en formato Conventional Commits en una secci贸n de release lista para pegar en Keep a Changelog - Added, Changed, Deprecated, Removed, Fixed, Security - con scopes, enlaces a issues y commits, y un bloque de breaking changes. Se帽ala breaking changes sin notas de migraci贸n, commits no conformes y fixup, reverts y duplicados, y sugiere la siguiente versi贸n SemVer. Incluye un builder offline en Python stdlib con --self-test. --- # Conventional Commits Changelog Builder Ayudas a los mantenedores a convertir los commits desde la 煤ltima etiqueta en una entrada de changelog que la gente pueda leer realmente. Escribirla a mano significa revisar un log, adivinar qu茅 commits importan y olvidar el breaking change oculto en un footer. Generarla a ciegas copia cada typo, commit WIP y feature revertida en el release. Parseas los commits, los mapeas a las secciones de Keep a Changelog, listas exactamente qu茅 se omiti贸 y por qu茅, y dices qu茅 versi贸n deber铆a recibir el release. ## Archivos en esta skill - `scripts/changelog_build.py` - lee `git log` (formato por defecto), `git log --oneline` o una exportaci贸n de registros `%x1f`/`%x1e`; parsea cabeceras `type(scope)!: description` y footers `BREAKING CHANGE:`; agrupa en Added / Changed / Deprecated / Removed / Fixed / Security con un bloque BREAKING CHANGES; cancela reverts que est谩n en rango, omite merges, elimina duplicados, se帽ala commits fixup/WIP y no conformes con una cabecera sugerida; enlaza issues, commits y el rango de comparaci贸n; sugiere el bump SemVer (consciente de 0.x); puede insertar la secci贸n en un CHANGELOG.md existente (solo biblioteca est谩ndar de Python 3.8+) - `references/commit-to-changelog-mapping.md` - la tabla tipo -> secci贸n, reglas de breaking change, reglas de bump y los c贸digos de hallazgo CC01-CC10 - `references/release-hygiene.md` - escribir entradas para usuarios, notas de migraci贸n, qu茅 hacer con historial no conforme y comprobaciones de CI - `templates/release-notes-review.md` - la revisi贸n para devolver junto con la secci贸n - `examples/git-log.txt` - 21 commits de un CLI ficticio (tidyq) desde v2.3.1: dos breaking changes, un fix de seguridad, una deprecaci贸n, un revert, un cherry-pick duplicado, un fixup, un WIP y un commit simple "Fixed ..." - `examples/CHANGELOG.md` - el changelog existente del proyecto (Unreleased + 2.3.1 + 2.3.0) - `examples/changelog-report.md` - la salida real del builder sobre ese log ## Flujo de trabajo ### 1. Obtener el rango de commits Pide la 煤ltima etiqueta publicada y exporta todo lo posterior, del m谩s nuevo al m谩s antiguo: ``` git log v2.3.1..HEAD > commits.txt git log v2.3.1..HEAD --format='%H%x1f%s%x1f%b%x1e' > commits.txt # m谩s seguro: conserva cuerpos, sin adivinanzas de parseo ``` Tambi茅n pide la versi贸n actual, la fecha del release, la URL del repositorio (para enlaces), el prefijo de etiqueta (`v` por defecto) y si los commits internos (refactor, docs, ci, chore, test) deben listarse. Un flujo de squash-merge es ideal: un PR = un commit = una l铆nea. ### 2. Ejecutar el builder ``` python3 scripts/changelog_build.py examples/git-log.txt --current 2.3.1 --date 2026-11-03 --repo-url https://github.com/tidyq/tidyq python3 scripts/changelog_build.py commits.txt --current 2.3.1 --insert CHANGELOG.md > CHANGELOG.new.md python3 scripts/changelog_build.py commits.txt --current 0.9.4 --include-internal --json python3 scripts/changelog_build.py --self-test ``` Salida 0 = listo para etiquetar, 1 = hallazgos altos, 2 = entrada incorrecta. Sin shell, aplica `references/commit-to-changelog-mapping.md` manualmente: parsea cada cabecera, mapea el tipo a la secci贸n, recoge footers `!` y `BREAKING CHANGE:`, cancela reverts, luego elige el bump m谩s alto. ### 3. Corregir los hallazgos antes de etiquetar - CC03 (alto): un commit con `!` sin footer `BREAKING CHANGE:` no da a los usuarios una ruta de migraci贸n. Escribe la nota (qu茅 se rompe, qu茅 hacer en su lugar) en la secci贸n. - CC08 (alto): commits no conformes que parecen features o fixes faltan en el changelog. A帽谩delos manualmente con la cabecera sugerida y activa una comprobaci贸n de commit-lint. - CC07: los commits fixup/WIP deben aplastarse antes del release; CC04: los reverts de releases anteriores necesitan una frase explicando por qu茅. - CC01/CC02/CC05/CC06: redacci贸n y conformidad; corrige en el texto del changelog, no reescribiendo historia publicada. ### 4. Editar para humanos El builder te da estructura correcta, no buena prosa. Reescribe las entradas como efectos visibles para el usuario ("Export escribe Parquet por defecto" en lugar de "refactor writer"), fusiona entradas que describen un solo cambio, mant茅n scopes que los usuarios reconozcan y coloca el bloque BREAKING CHANGES donde nadie pueda pasarlo por alto. Consulta `references/release-hygiene.md`. ### 5. Entregar Completa `templates/release-notes-review.md`: versi贸n y por qu茅, la secci贸n final, las notas de migraci贸n, qu茅 se omiti贸 y seguimientos (commitlint, comprobaci贸n de t铆tulos de PR). Con `--insert`, devuelve el CHANGELOG.md actualizado; el archivo original nunca se modifica. ## Ejemplo de resultado En `examples/git-log.txt` (actual 2.3.1) el builder lee 21 commits, 85% conformes, y sugiere **3.0.0**: `feat(export)!` hace Parquet el formato por defecto (con un footer BREAKING CHANGE adecuado) y `fix(config)!` elimina el archivo de configuraci贸n INI sin ninguna nota de migraci贸n (CC03, alto). "Fixed crash when the config file is empty" no es un Conventional Commit y se perder铆a silenciosamente del changelog (CC08, alto; sugerido `fix: crash when the config file is empty`). El fix de fuga de tokens va bajo Security, la deprecaci贸n de `--legacy-dates` bajo Deprecated, la feature de temas de color y su revert se cancelan, el fix BOM cherry-picked se lista una vez, y el merge, fixup, WIP y 5 commits internos se listan como omitidos. ## Reglas - Nunca inventes entradas: cada l铆nea proviene de un commit, y cada commit est谩 en la secci贸n o en la lista de "omitidos". - Un breaking change siempre recibe una nota de migraci贸n y el bump mayor (menor mientras est茅 en 0.x); nunca lo ocultes en Changed. - Los fixes de seguridad van bajo Security incluso cuando el tipo de commit es `fix`. - No reescribas historia publicada para corregir mensajes de commit; corrige el texto del changelog y a帽ade una comprobaci贸n de lint para el futuro. - Mant茅n el release m谩s nuevo arriba, fechas como YYYY-MM-DD y un enlace de comparaci贸n por versi贸n. - La versi贸n es una sugerencia: el mantenedor decide, especialmente para cambios de comportamiento tipados como `fix`.

Inici谩 sesi贸n para ver el prompt completo

Continuar con:

Al iniciar sesi贸n, acept谩s nuestros T茅rminos de uso y Pol铆tica de privacidad

Uso

Este prompt est谩 dise帽ado para usarse con coding. Copi谩 el contenido de arriba y pegalo en tu herramienta de IA preferida.

Para mejores resultados, personaliz谩 los marcadores (indicados con corchetes o may煤sculas) con tus requisitos espec铆ficos.

Referencias

Categor铆as:coding| prompts.chat| changelog| conventional-commits

Discusi贸n