launch-release
/octopus:launch-release é o comando que roda logo após um release versionado
ser publicado. Ele lê o changelog, o histórico git e as entradas de roadmap
dos refs fornecidos, sintetiza uma narrativa canônica de release e renderiza
em um conjunto temático de mensagens de canal prontas pra colar e uma landing
page autocontida.
O que resolve
Uma tag de versão sem anúncio voltado ao usuário é só um número. Escrever esse anúncio manualmente para email, Slack, Discord, banner in-app e slide deck significa revoicear a mesma prosa de changelog seis vezes — cada vez perdendo contexto sobre qual benefício destacar e qual evidência citar.
launch-release resolve o problema de re-voicing estruturalmente. Ele expande
cada entrada do changelog em um registro {feature, benefit, evidence} uma
vez, depois projeta esse registro em cada canal de acordo com o intent do tema
(reter usuários existentes, expandir suas capacidades, reparar um problema
visível ou educar sobre algo já entregue). A narrativa é escrita uma vez e
todos os canais leem dela — nenhum canal inventa seu próprio headline.
Como funciona
- Resolução de refs — aceita tags de versão (
v1.7.0), ranges de tag (v1.5.0..v1.7.0) ou IDs de roadmap. Quando nenhum ref é fornecido, usa tudo desde a última tag de release. - Expansão FBE — cada highlight do changelog é reescrito em um registro
feature / benefit / evidenceantes de qualquer canal ser renderizado.benefité sempre em segunda pessoa (“agora você pode…”);evidenceé omitido em vez de fabricado quando o material-fonte não suporta. - Resolução de tema — temas controlam paleta, tipografia, layout, tom de
voz, intent e estilo de CTA. A cascade é: prompt
--design-from(tema customizado viafrontend-design) → flag--theme→.octopus.yml→ defaultclassic. Doze temas predefinidos vêm instalados. - Síntese da narrativa — um
narrative.ymlé gerado primeiro, com headline, proof statement e CTA. Todos os canais leem dele; nenhum canal pode inventar sua própria abertura. - Saída — todos os artefatos vão pra
docs/releases/YYYY-MM-DD-<slug>/:index.htmlcanônico (autocontido, todo CSS inline),narrative.yml,notes.md,theme.yml, e um subdiretóriochannels/com os arquivos de canal selecionados.
Uso & parâmetros
/octopus:launch-release [<ref>...] [--theme=<name>] [--since=<tag>] [--audience=<level>] [--channels=<list>] [--design-from="<prompt>"] [--dry-run]<ref>...— zero ou mais tags de versão, ranges de tag ou IDs de roadmap. Quando omitido, usa--since=<última-tag-de-release>..HEAD.--theme=<name>— um dos temas predefinidos instalados. Default pelo.octopus.yml, senãoclassic.--since=<tag>— atalho pra<tag>..HEADquando nenhum ref posicional é fornecido.--audience=<user|developer|executive>— ajusta o tom e nível de detalhe em todos os canais. Default:user.--channels=<lista>— subconjunto deemail,slack,discord,in-app-banner,status-page,x-announcement,whatsapp,slides. Default:email,slack,in-app-banner. Useallpra todos os canais,nonesó pra artefatos canônicos.--design-from="<prompt>"— sintetiza um tema customizado viafrontend-designe persiste pra reutilização futura. Sobrescreve--theme.--dry-run— imprime o plano e sai sem escrever nenhum arquivo.
Dupla
/octopus:launch-release cuida da retenção — usuários existentes. Pra
aquisição (novas audiências, posts sociais, copy de landing page), use
/octopus:launch-feature. Um release completo geralmente usa os dois: um kit
pro mercado e outro pra usuários existentes. Rode /octopus:release primeiro
pra criar a tag e a entrada de changelog, depois launch-release pra gerar o
pacote voltado ao usuário.