Atualize automaticamente a documentação usando a CLI do Cursor no GitHub Actions. Duas abordagens: autonomia total do agente ou workflow determinístico com modificações de arquivo feitas apenas pelo agente.
name: Auto Update Docs

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

permissions:
  contents: write
  pull-requests: write

jobs:
  auto-docs:
    if: ${{ !startsWith(github.head_ref, 'docs/') }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Cursor CLI
        run: |
          curl https://cursor.com/install -fsS | bash
          echo "$HOME/.cursor/bin" >> $GITHUB_PATH

      - name: Configure git
        run: |
          git config user.name "Cursor Agent"
          git config user.email "cursoragent@cursor.com"

      - name: Update docs
        env:
          MODEL: gpt-5
          CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH_PREFIX: docs
        run: |
          cursor-agent -p "Você está rodando em um runner do GitHub Actions.

          O GitHub CLI está disponível como `gh` e autenticado via `GH_TOKEN`. Git está disponível. Você tem acesso de escrita ao conteúdo do repositório e pode comentar em pull requests, mas não deve criar ou editar PRs.

          # Contexto:
          - Repo: ${{ github.repository }}
          - Owner: ${{ github.repository_owner }}
          - PR Number: ${{ github.event.pull_request.number }}
          - Base Ref: ${{ github.base_ref }}
          - Head Ref: ${{ github.head_ref }}
          - Docs Branch Prefix: ${{ env.BRANCH_PREFIX }}

          # Objetivo:
          - Implementar um fluxo completo de atualização de docs baseado em mudanças incrementais do PR original.

          # Requisitos:
          1) Determinar o que mudou no PR original e, se houve múltiplos pushes, calcular os diffs incrementais desde a última atualização bem-sucedida dos docs.
          2) Atualizar apenas os docs relevantes com base nessas mudanças incrementais.
          3) Manter a branch de docs persistente para este PR head usando o Docs Branch Prefix do Contexto. Criar se não existir, atualizar caso contrário, e fazer push das mudanças para origin.
          4) Você NÃO tem permissão para criar PRs. Em vez disso, poste ou atualize um único comentário de PR em linguagem natural (1–2 frases) que explique brevemente as atualizações dos docs e inclua um link de comparação inline para criar rapidamente um PR

          # Inputs e convenções:
          - Use `gh pr diff` e histórico do git para detectar mudanças e derivar intervalos incrementais desde a última atualização dos docs.
          - Não tente criar ou editar PRs diretamente. Use o formato de link de comparação acima.
          - Mantenha as mudanças mínimas e consistentes com o estilo do repo. Se nenhuma atualização de docs for necessária, não faça mudanças e não poste comentários.

          # Entregáveis quando atualizações ocorrerem:
          - Commits enviados para a branch de docs persistente para este PR head.
          - Um único comentário de PR em linguagem natural no PR original que inclua o link de comparação inline acima. Evite postar duplicatas; atualize um comentário anterior do bot se presente.
          " --force --model "$MODEL" --output-format=text