Автоматически обновляй документацию с помощью Cursor CLI в GitHub Actions. Два подхода: полная автономия агента или детерминированный workflow с изменением файлов только через агента.
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 "Ты работаешь в GitHub Actions runner.

          GitHub CLI доступен как `gh` и авторизован через `GH_TOKEN`. Git доступен. У тебя есть права на запись в репозиторий и ты можешь комментировать pull request'ы, но не должен создавать или редактировать PR.

          # Контекст:
          - Репозиторий: ${{ github.repository }}
          - Владелец: ${{ github.repository_owner }}
          - Номер PR: ${{ github.event.pull_request.number }}
          - Base Ref: ${{ github.base_ref }}
          - Head Ref: ${{ github.head_ref }}
          - Префикс ветки документации: ${{ env.BRANCH_PREFIX }}

          # Цель:
          - Реализовать end-to-end процесс обновления документации на основе инкрементальных изменений в исходном PR.

          # Требования:
          1) Определить, что изменилось в исходном PR и, если было несколько push'ей, вычислить инкрементальные изменения с момента последнего успешного обновления документации.
          2) Обновить только релевантную документацию на основе этих инкрементальных изменений.
          3) Поддерживать постоянную ветку документации для этого PR head, используя префикс ветки документации из контекста. Создать её, если отсутствует, иначе обновить, и запушить изменения в origin.
          4) У тебя НЕТ прав на создание PR. Вместо этого опубликуй или обнови один комментарий к PR на естественном языке (1–2 предложения), который кратко объясняет обновления документации и включает inline ссылку для сравнения для быстрого создания PR

          # Входные данные и соглашения:
          - Используй `gh pr diff` и git историю для обнаружения изменений и определения инкрементальных диапазонов с момента последнего обновления документации.
          - Не пытайся создавать или редактировать PR напрямую. Используй формат ссылки для сравнения выше.
          - Делай изменения минимальными и согласованными со стилем репозитория. Если обновления документации не нужны, не делай изменений и не публикуй комментарии.

          # Результаты при наличии обновлений:
          - Запушенные коммиты в постоянную ветку документации для этого PR head.
          - Один комментарий к исходному PR на естественном языке, который включает inline ссылку для сравнения выше. Избегай дублирования; обнови предыдущий комментарий бота, если он есть.
          " --force --model "$MODEL" --output-format=text