Communitygithub.com

release

Assistente de release genérico — analisa regras de release do repositório, armazena em cache no .omc/RELEASE_RULE.md e guia o processo de release.

O que é release?

Esta skill é um assistente de release leve e ciente do contexto do repositório. Na primeira execução, ela inspeciona o projeto e a configuração de CI para derivar regras de release relevantes, armazenando-as em um arquivo `.omc/RELEASE_RULE.md` para uso futuro. Em execuções subsequentes, a skill reutiliza o cache, detectando apenas alterações nos arquivos de CI. Com base nessas regras, ela guia o usuário por um fluxo completo de release: desde a determinação da versão (patch, minor, major ou semver explícita), verificação de checklist pré-release, geração de notas de release, até a execução real (bump de versão, testes, commit, tag, push e publicação). A skill suporta vários ecossistemas (npm, PyPI, Cargo, Docker, etc.), detecta gaps para iniciantes (como ausência de workflow de CI ou tags git) e oferece scaffolding. Pode ser usada com Claude Code, Cursor ou Codex, e funciona em qualquer repositório git com CI, adaptando-se a monorepos com workspaces.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/release

Perguntar na sua IA favorita

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

Documentação

Skill de Release

Um assistente de release leve e consciente do repositório. Na primeira execução inspeciona o projeto e a CI para derivar regras de release, armazena-as em .omc/RELEASE_RULE.md para uso futuro e, em seguida, guia você por uma release usando essas regras.

Uso

/oh-my-claudecode:release [versão]
  • versão é opcional. Se omitido, a skill perguntará. Aceita patch, minor, major ou um semver explícito como 2.4.0.
  • Adicione --refresh para forçar uma reanálise do repositório mesmo quando um arquivo de regras em cache existir.

Fluxo de Execução

Passo 0 — Carregar ou Construir Regras de Release

Verifique se .omc/RELEASE_RULE.md existe.

Se NÃO existir (ou --refresh foi passado): Execute a análise completa do repositório abaixo e escreva o arquivo.

Se existir: Leia o arquivo. Em seguida, faça uma verificação delta rápida — analise .github/workflows/ (ou diretórios de CI equivalentes: .circleci/, .travis.yml, Jenkinsfile, bitbucket-pipelines.yml, gitlab-ci.yml) para quaisquer modificações mais recentes que o timestamp last-analyzed no arquivo de regras. Se arquivos de workflow relevantes foram alterados, reexecute a análise para essas seções e atualize o arquivo. Relate o que mudou.


Passo 1 — Análise do Repositório (primeira execução ou --refresh)

Inspecione o repositório e responda às perguntas a seguir. Escreva as respostas em .omc/RELEASE_RULE.md.

1a. Fontes de Versão

  • Localize todos os arquivos que contêm uma string de versão correspondente à versão atual em package.json / pyproject.toml / Cargo.toml / build.gradle / arquivo VERSION / etc.
  • Liste cada arquivo e o campo ou padrão regex usado para encontrar a versão.
  • Detecte se existe um script de automação de release (ex.: scripts/release.*, target Makefile release, bump2version, release-it, semantic-release, changesets, goreleaser).

1b. Registro / Distribuição

  • npm (package.json com publishConfig ou npm publish na CI), PyPI (pyproject.toml + twine/flit), Cargo (Cargo.toml), Docker (Dockerfile + passo push), GitHub Packages, outros.
  • Existe um passo na CI que publica automaticamente ao push de tag? Qual arquivo de workflow e job?

1c. Gatilho de Release

  • Identifique o que inicia a release: push de tag (v*), dispatch manual (workflow_dispatch), merge para main/master, merge de branch de release, padrão de mensagem de commit.

1d. Gate de Testes

  • Identifique o comando de teste e onde ele é executado na CI.
  • Os testes precisam passar antes da publicação? Anote quaisquer flags de bypass.

1e. Notas de Release / Changelog

  • Existe um CHANGELOG.md ou CHANGELOG.rst?
  • Qual convenção é usada: Keep a Changelog, Conventional Commits, gerado automaticamente pelo GitHub, nenhuma?
  • Existe um arquivo de corpo de release (ex.: .github/release-body.md) commitado antes da tag?

1f. Verificação de Primeiro Uso

  • Existe um workflow de release em .github/workflows/ (ou equivalente)? Se não, sinalize e ofereça-se para criar um scaffold.
  • Existe uma entrada no .gitignore impedindo que artefatos de build sejam commitados? Se não, sinalize.
  • Tags git estão sendo usadas? Execute git tag --list para verificar. Se não existirem tags, sinalize e explique a melhor prática.

Passo 2 — Escrever .omc/RELEASE_RULE.md

Crie ou sobrescreva o arquivo com esta estrutura:

# Regras de Release
<!-- last-analyzed: YYYY-MM-DDTHH:MM:SSZ -->

## Fontes de Versão
<!-- lista de arquivos + padrões -->

## Gatilho de Release
<!-- o que inicia a release -->

## Gate de Testes
<!-- comando + nome do job na CI -->

## Registro / Distribuição
<!-- npm, PyPI, Docker, etc. + job da CI que publica -->

## Estratégia de Notas de Release
<!-- convenção + arquivos -->

## Arquivos de Workflow da CI
<!-- caminhos para arquivos de workflow relevantes -->

## Lacunas de Configuração Inicial
<!-- quaisquer itens faltando encontrados durante a análise, ou "nenhuma" -->

Passo 3 — Determinar Versão

Se o usuário forneceu um argumento de versão, use-o. Caso contrário:

  1. Mostre a versão atual (do arquivo de versão principal).
  2. Mostre o que patch, minor e major produziriam.
  3. Pergunte ao usuário qual usar.

Valide que a versão escolhida é uma string semver válida.


Passo 4 — Checklist Pré-Release

Apresente um checklist derivado das regras de release. No mínimo:

  • Todas as alterações destinadas a esta release foram commitadas e enviadas (push)
  • A CI está verde na branch alvo
  • Testes passam localmente (execute o comando do gate de testes)
  • Bump de versão aplicado a todos os arquivos fonte de versão
  • Notas de release / changelog preparados (veja Passo 5)

Peça ao usuário para confirmar antes de prosseguir, ou execute cada passo se ele disser "pode ir".


Passo 5 — Orientação para Notas de Release

Ajude o usuário a escrever boas notas de release. Aplique a convenção que o repositório usa. Orientação padrão quando nenhuma convenção é detectada:

O que torna uma nota de release boa:

  • Comece com o que mudou para os usuários, não detalhes de implementação interna.
  • Agrupe por tipo: Novas Funcionalidades, Correções de Bugs, Alterações que Quebram Compatibilidade, Depreciações, Interno / Tarefas.
  • Para cada item: uma frase, link para o PR ou issue, credite o autor se externo.
  • Alterações que quebram compatibilidade vão primeiro e devem incluir um caminho de migração.
  • Omita alterações que os usuários nunca veem (refatorações, ajustes de CI, alterações apenas de teste), a menos que afetem a reprodutibilidade do build.

Exemplo de formato de entrada:

### Correções de Bugs
- Corrige queda de sessão na expiração do token (#123) — @contribuidor

Se o repositório usa Conventional Commits, gere um rascunho de changelog a partir de git log <tag-anterior>..HEAD --no-merges --format="%s" agrupado por tipo de commit. Mostre ao usuário e deixe-o editar.


Passo 6 — Executar Release

Usando as regras descobertas, percorra:

  1. Bump de versão — aplique a cada arquivo fonte de versão.
  2. Executar testes — execute o comando do gate de testes.
  3. Commit — git add <arquivos de versão> CHANGELOG.md e commit com chore(release): bump version to vX.Y.Z.
  4. Tag — git tag -a vX.Y.Z -m "vX.Y.Z" (tags anotadas são preferíveis a leves).
  5. Push — git push origin <branch> && git push origin vX.Y.Z.
  6. CI assume o controle — se o gatilho de release for push de tag, lembre o usuário de que a CI cuidará do restante (publicação, criação de GitHub Release). Mostre o arquivo de workflow da CI esperado.
  7. Publicação manual — se não existir automação de CI, liste o comando de publicação manual (ex.: npm publish --access public, twine upload dist/*).

Passo 7 — Sugestões de Configuração Inicial

Se lacunas foram encontradas no Passo 1f, ofereça ajuda concreta:

Nenhum workflow de release:

Seu repositório não tem um workflow de CI de release. Um workflow do GitHub Actions acionado por push de tag v* é a prática mais comum. Ele pode:

  • Executar testes
  • Publicar no npm/PyPI/etc.
  • Criar uma GitHub Release com suas notas de release

Quer que eu crie um scaffold de .github/workflows/release.yml para sua stack?

Nenhuma tag git:

Esta parece ser a primeira release. Tags git permitem que o GitHub, npm e outras ferramentas entendam seu histórico de versões. Criaremos sua primeira tag no Passo 6.

Artefatos de build não adicionados ao .gitignore:

Artefatos de build estão presentes no histórico do git ou não estão no .gitignore. Isso infla o tamanho do repositório e cria conflitos de merge. Quer que eu os adicione ao .gitignore?


Passo 8 — Verificar

Após o push:

  • Verifique o status da CI: gh run list --workflow=<workflow de release> --limit=3 (se gh estiver disponível).
  • Verifique o registro (npm, PyPI) pela nova versão após alguns minutos.
  • Confirme se uma GitHub Release foi criada: gh release view vX.Y.Z.

Relate sucesso ou sinalize quaisquer falhas.


Notas

  • Esta skill não codifica comandos ou arquivos de versão específicos do projeto. Tudo é derivado da inspeção do repositório.
  • .omc/RELEASE_RULE.md é um cache local. Faça commit dele no seu repositório se quiser compartilhar as regras derivadas com sua equipe, ou adicione-o ao .gitignore se preferir mantê-lo local.
  • Para monorepos complexos ou workspaces de múltiplos pacotes, a skill detectará padrões de workspace (npm workspaces, pnpm workspaces, Cargo workspace) e se adaptará adequadamente.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

agent-doc-discipline

Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and carrying a why, steps before reference, one meaning in one home, no restating what the environment already says. Mandatory at drydock seed generation and the launch C5 sediment pass; opt-in for any other agent-facing doc edit. The companion of minimal-code-discipline: that one disciplines code, this one disciplines papers.

ai-slop-cleaner

Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode

ask

Process-first advisor routing for Claude, Codex, Gemini, Antigravity, Grok, or Cursor via `omc ask`, with artifact capture and no raw CLI assembly

ask-navigator

Shipyard

autopilot

Full autonomous execution from idea to working code

autoresearch

Stateful single-mission improvement loop with strict evaluator contract, markdown decision logs, and max-runtime stop behavior

cancel

Cancel any active OMC mode (autopilot, ralph, ultragoal, swarm, ultrapilot, pipeline, team) and clean up retired legacy state

configure-notifications

Configure notification integrations (Telegram, Discord, Slack) via natural language

debug

Diagnose the current OMC session or repo state using logs, traces, state, and focused reproduction

deepinit

Deep codebase initialization with hierarchical AGENTS.md documentation

deep-interview

Socratic deep interview with mathematical ambiguity gating before explicit execution approval

drydock

Lay the keel of the shipyard harness in any repo — the 4-pillar shared environment (Context, Rules, Tools, Standards) across 5 surfaces (CLAUDE.md, skills, design-system, mcp/cli, shared context) so that every human and agent inherits the same design language and anyone can ship. Run once per repo; re-run with --check to audit drift.

execute

Carry an approved task through to working, verified code

external-context

Invoke parallel document-specialist agents for external web searches and documentation lookup

graph

Deterministic orchestration graph runtime - declarative DAG pipelines with journal-based crash recovery

harbor

Harbor intake for external work — the captain only handles unresolved decisions. Sweeps incoming issues and PRs, verifies every claim before disposition, reuses every decision already made, and hands the maintainer a docket whose pending items each carry one question with options, recommendation, impact and evidence. Agent-autonomous for facts and for actions covered by standing authorization; signed for every new judgment. Never merges.

hud

Configure HUD display options (layout, presets, display elements)

launch

Shipyard

loft

Loft the shape before cutting steel — answer a design question that prose cannot settle by building a throwaway artifact: a pure logic module in a clickable shell, or structurally different UI variants behind one route. The captain reacts to the artifact; the answer folds into the decision; the artifact never docks. Use when a design question stalls in words, when a navigator map carries a loft ticket, or when a spec discussion reaches

minimal-code-discipline

YAGNI-ladder coding discipline for writing changes — existence-first, reuse before writing, dependency ladder, shortest correct diff, with non-negotiables that must never be minimized away

Habilidades Relacionadas