Receitas

Básico

Gerador de Notas de Versão

Gere notas de versão formatadas a partir de tags git com detalhes de PRs, issues vinculadas e créditos de contribuidores.

Prompt

Use a skill do Dagu para criar um workflow gerador de notas de versão. Consulte as referências de schema, agente de codificação e armadilhas para a sintaxe correta. Pergunte ao usuário: - Qual repositório? (padrão: o repositório atual, detectado via gh repo view --json nameWithOwner) - Quais tags comparar? (padrão: tag mais recente vs tag anterior, auto-detectadas) Pré-requisitos: gh CLI autenticado (gh auth login), pelo menos um CLI de agente de codificação IA instalado. O workflow deve: 1. Resolver as duas tags git a comparar. Se não especificadas, auto-detectar as tags mais recente e anterior usando a API do GitHub. Saída como JSON para que as etapas subsequentes possam referenciar campos individuais via JSON path (ex: ${TAGS.to}). 2. Extrair todos os números de PR dos commits entre as duas tags usando a API de comparação do GitHub com --jq (NÃO use jq CLI). Saída com um número de PR por linha. 3. Para cada PR, buscar detalhes via gh api graphql: número, título, login do autor, resumo do corpo (primeiros ~300 caracteres), labels e closingIssuesReferences (número, título, login do autor). Construir um array JSON com os resultados. - CRÍTICO: Ao iterar sobre a saída de uma etapa anterior, NÃO use "for X in $VAR" — o Dagu captura saída multilinha em uma única variável string, então a divisão por palavras não funciona. Em vez disso, leia o arquivo stdout da etapa anterior linha por linha: `while IFS= read -r line; do ... done < "${prev_step.stdout}"`. Remova caracteres não numéricos de cada linha com `tr -dc '0-9'` antes de passar para a query GraphQL. - A string de query GraphQL do gh usa nomes de variáveis com prefixo $ ($owner, $name, $num). Estes são seguros em scripts do Dagu porque o Dagu só expande variáveis ${entre chaves} e padrões $nomedavariavel que correspondem a variáveis Dagu definidas — nomes $indefinidos são preservados como estão para o shell. No entanto, passe variáveis inteiras para -F sem aspas (ex: -F num=$NUM e não -F num="$NUM") para que o gh as envie como inteiros, não strings. 4. Use uma única etapa de agente de IA (auto-detectar qual CLI está disponível, usar o modelo mais barato) para categorizar cada PR e formatar as notas de versão finais. Forneça o JSON de detalhes dos PRs, o template do changelog e contexto (repositório, tags, data, dono do repositório para excluir dos contribuidores). 5. Salvar a saída em DAG_DOCS_DIR. 6. Usar defaults.retry_policy e timeout_sec: 300 na etapa do agente de IA. O template de formato do changelog DEVE ser definido como uma variável de ambiente de nível superior usando YAML multiline (|) para que os usuários possam personalizar a saída sem editar a lógica das etapas.

Primeiros passos

1. Instalar Dagu

curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bash

2. Instalar skill do Dagu

claude mcp add dagu -- dagu mcp

3. Iniciar Dagu

dagu start-all

Para mais detalhes, consulte o guia de início rápido

Receitas relacionadas