mitsuhiko/gh-issue-sync

Gerencie issues do GitHub localmente como arquivos Markdown. Use para triagem, busca, edição e criação de issues sem sair do editor ou terminal.

O que é gh-issue-sync?

Este skill sincroniza issues do GitHub com arquivos Markdown locais, permitindo que desenvolvedores gerenciem issues diretamente do editor ou terminal. Ele suporta comandos como `pull`, `push`, `list`, `new`, `close`, `reopen` e `diff`, e armazena issues em `.issues/open/` e `.issues/closed/`. O formato do arquivo inclui frontmatter YAML com título, labels, assignees e milestone, enquanto o número da issue é derivado do nome do arquivo. Issues temporárias recebem um ID com prefixo `T`, que é renomeado automaticamente ao fazer push. Ele também suporta comentários via arquivos `.comment.md` e oferece opções como `--force` para sobrescrever conflitos locais. Ideal para desenvolvedores que usam ferramentas como Claude Code, Cursor ou Codex, este skill melhora o fluxo de trabalho de triagem e edição de issues sem sair do ambiente de desenvolvimento.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que gh-issue-sync faz?

Sincroniza issues do GitHub com arquivos Markdown locais em .issues/open/ e .issues/closed/.

Comandos

gh-issue-sync init              # Inicializar no repositório git
gh-issue-sync pull              # Buscar issues abertas (--all para fechadas também)
gh-issue-sync push              # Enviar alterações locais (--dry-run para visualizar)
gh-issue-sync list              # Listar issues (suporta flags gh issue list + --search)
gh-issue-sync new "Título"       # Criar issue (--label, --edit)
gh-issue-sync close 42          # Fechar (--reason completed|not_planned)
gh-issue-sync reopen 42
gh-issue-sync status            # Mostrar alterações locais
gh-issue-sync diff 42           # Mostrar diff (--remote para buscar novamente)

Formato do Arquivo

.issues/open/42-corrigir-bug-login.md:

---
title: Corrigir bug de login
labels: [bug, prioridade:alta]
assignees: [alice]
milestone: v1.0
state: open
# Para fechado: state_reason: completed|not_planned
# Opcional: parent: 10, blocked_by: [11, 12], blocks: [15]
---

Corpo da issue em Markdown.

O número da issue é derivado do nome do arquivo, não armazenado no frontmatter.

Issues Temporárias

Novas issues recebem um ID com prefixo T (ex.: T1a2b3c). O nome do arquivo deve começar com T:

.issues/open/T1a2b3c-minha-nova-issue.md

Ao fazer push, o arquivo é renomeado para o número real da issue (ex.: 42-minha-nova-issue.md) e number: no frontmatter é atualizado. Quaisquer referências #T1a2b3c em outras issues também são atualizadas para #42.

Comentários

Para postar um comentário ao fazer push, crie um arquivo .comment.md ao lado da issue:

.issues/open/42.comment.md
.issues/open/42-corrigir-bug-login.comment.md

O conteúdo é Markdown simples. O arquivo é excluído após o comentário ser postado.

Notas

  • Pull ignora conflitos; use --force para sobrescrever local.

Habilidades Relacionadas