CommunityProgramación y desarrollogithub.com

mitsuhiko/gh-issue-sync

Gestiona incidencias de GitHub localmente como archivos Markdown. Útil para triar, buscar, editar y crear incidencias sin salir de tu editor o terminal.

¿Qué es gh-issue-sync?

Esta habilidad sincroniza incidencias de GitHub con archivos Markdown locales, permitiendo a los desarrolladores gestionar sus incidencias sin salir del editor o terminal. Es ideal para triaje, búsqueda, edición y creación. Soporta plataformas como GitHub CLI y repositorios Git. Funciona mediante un comando CLI que extrae, empuja y administra incidencias localmente en carpetas `.issues/open/` y `.issues/closed/`, con soporte para comentarios, cambios temporales y actualización automática de referencias.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mitsuhiko/gh-issue-sync/tree/main/skill

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace gh-issue-sync?

Sincroniza incidencias de GitHub con archivos Markdown locales en .issues/open/ y .issues/closed/.

Comandos

gh-issue-sync init              # Inicializar en un repositorio git
gh-issue-sync pull              # Obtener incidencias abiertas (--all para cerradas también)
gh-issue-sync push              # Enviar cambios locales (--dry-run para previsualizar)
gh-issue-sync list              # Listar incidencias (admite flags de gh issue list + --search)
gh-issue-sync new "Título"      # Crear incidencia (--label, --edit)
gh-issue-sync close 42          # Cerrar (--reason completed|not_planned)
gh-issue-sync reopen 42
gh-issue-sync status            # Mostrar cambios locales
gh-issue-sync diff 42           # Mostrar diff (--remote para volver a obtener)

Formato de archivo

.issues/open/42-arreglar-error-login.md:

---
title: Arreglar error de login
labels: [bug, priority:high]
assignees: [alice]
milestone: v1.0
state: open
# Para cerradas: state_reason: completed|not_planned
# Opcional: parent: 10, blocked_by: [11, 12], blocks: [15]
---

Cuerpo de la incidencia en Markdown.

El número de incidencia se deriva del nombre del archivo, no se almacena en el frontmatter.

Incidencias temporales

Las nuevas incidencias obtienen un ID con prefijo T (ej., T1a2b3c). El nombre del archivo debe comenzar con T:

.issues/open/T1a2b3c-mi-nueva-incidencia.md

Al hacer push, el archivo se renombra al número real de la incidencia (ej., 42-mi-nueva-incidencia.md) y se actualiza number: en el frontmatter. Cualquier referencia #T1a2b3c en otras incidencias también se actualiza a #42.

Comentarios

Para publicar un comentario al enviar cambios, crea un archivo .comment.md junto a la incidencia:

.issues/open/42.comment.md
.issues/open/42-arreglar-error-login.comment.md

El contenido es Markdown plano. El archivo se elimina después de publicar el comentario.

Notas

  • Pull omite conflictos; usa --force para sobrescribir local.

Skills relacionados