Actualiza automáticamente la documentación usando Cursor CLI en GitHub Actions. Dos enfoques: autonomía completa del agente o flujo de trabajo determinístico con modificaciones de archivos únicamente por el 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 "Estás ejecutándote en un runner de GitHub Actions.

          El CLI de GitHub está disponible como `gh` y autenticado mediante `GH_TOKEN`. Git está disponible. Tienes acceso de escritura al contenido del repositorio y puedes comentar en pull requests, pero no debes crear ni 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 un flujo completo de actualización de documentación basado en cambios incrementales del PR original.

          # Requisitos:
          1) Determinar qué cambió en el PR original y, si ha habido múltiples pushes, calcular los diffs incrementales desde la última actualización exitosa de documentación.
          2) Actualizar únicamente la documentación relevante basándote en esos cambios incrementales.
          3) Mantener la rama de documentación persistente para este PR head usando el Docs Branch Prefix del Contexto. Créala si no existe, actualízala en caso contrario, y haz push de los cambios a origin.
          4) NO tienes permisos para crear PRs. En su lugar, publica o actualiza un único comentario de PR en lenguaje natural (1–2 oraciones) que explique brevemente las actualizaciones de documentación e incluya un enlace de comparación inline para crear rápidamente un PR

          # Inputs y convenciones:
          - Usa `gh pr diff` e historial de git para detectar cambios y obtener rangos incrementales desde la última actualización de documentación.
          - No intentes crear ni editar PRs directamente. Usa el formato de enlace de comparación mencionado arriba.
          - Mantén los cambios mínimos y consistentes con el estilo del repo. Si no son necesarias actualizaciones de documentación, no hagas cambios ni publiques comentarios.

          # Entregables cuando ocurran actualizaciones:
          - Commits enviados a la rama de documentación persistente para este PR head.
          - Un único comentario de PR en lenguaje natural en el PR original que incluya el enlace de comparación inline mencionado arriba. Evita publicar duplicados; actualiza un comentario previo del bot si existe.
          " --force --model "$MODEL" --output-format=text