Главная/WordPress Fullstack/Блупринты/ИИ & Агенты/Self-Healing CI/CD в GitHub Actions с авто-исправлением багов
К карточкам раздела «ИИ & Агенты»
ИИ & Агенты(ТЗ 46 из 54)
ТЗ: Self-Healing CI/CD в GitHub Actions с авто-исправлением багов
ИИ & Агенты5 шагов • +25 XP

ТЗ: Self-Healing CI/CD в GitHub Actions с авто-исправлением багов

Создание автономного конвейера непрерывной интеграции нового поколения: перехват падений юнит- и сквозных тестов, сбор стектрейса и логов, вызов автономного агента в изолированном Docker-раннере, генерация атомарного патча, верификация тестами и открытие PR.

~10 ч работыУровень: SeniorGitHub Actions WorkflowDocker Isolated RunnerVitest / PlaywrightAnthropic Claude 3.7 / Claude Code@octokit/rest (GitHub API)Node.js 22 LTS
+5 XP за шаг
Выполнено 0 из 5 шагов (0%)
Трудозатраты~10 рабочих часов
Фриланс вилка~$450 – $750 (€400 – €700)
Оценка веб-студии~$950 – $1,600 (€900 – €1500)

ТЗ заказчика (исходный бриф):

«Автономность должна быть безопасной. Человек всегда должен иметь финальное слово перед мерджем, но рутинное копание в стектрейсах должно уйти в прошлое.»
Ключевые требования:
  • •Срабатывание только при статусе failure шага тестирования
  • •Извлечение точного пути к упавшему файлу и строке ошибки
  • •Запуск LLM с передачей файла ошибки, упавшего теста и стектрейса
  • •Проверка сгенерированного фикса повторным прогоном pnpm test
  • •Автосоздание PR с лейблами "ai-fixed" и "ready-for-review"
Ограничения проекта:
  • •Не более 3 попыток исправления за один запуск (max_iterations: 3)
  • •Строгий запрет на редактирование файлов тестов (*.test.ts, *.spec.ts)
Критерии приёмки (KPI):
  • Время от падения CI до готового PR < 3 минут
  • > 70% успешно исправленных синтаксических и логических багов
  • 0 затронутых файлов тестов

Пошаговое практическое руководство по ТЗ

Подробный разбор архитектуры, код реализации и советы эксперта по каждому этапу:

1
Этап 1 из 5

Конфигурация GitHub Actions с условным триггером if: failure()

~45 минСредний

Практическое руководство:

Опишите workflow в GitHub Actions, сохраняющий артефакт с логом тестов в JSON-формате и запускающий джобу исправления только при условии if: failure().

План и контрольные точки реализации:
1Настроить вывод тестов в формат JSON
2Сконфигурировать upload/download артефактов
3Выдать необходимые permissions для GITHUB_TOKEN
Важные технические нюансы и подводные камни:

Убедитесь, что у GITHUB_TOKEN есть права contents: write и pull-requests: write.

Ожидаемый артефакт этапа:

GitHub Actions пайплайн с изолированной джобой авто-исправления.

YAML
name: Continuous Integration & Self-Healing

on:
  push:
    branches: [main, develop]
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v3
        with:
          version: 9
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: 'pnpm'

      - run: pnpm install --frozen-lockfile
      - name: Run Test Suite
        id: run_tests
        run: pnpm test --reporter=json --outputFile=test-results.json

      - name: Upload Test Results on Failure
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: vitest-failure-report
          path: test-results.json

  auto-heal:
    needs: test
    if: failure()
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions/download-artifact@v4
        with:
          name: vitest-failure-report
      - name: Run Self-Healing Agent
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: node scripts/self-heal/agent-fix-runner.mjs
2
Этап 2 из 5

Парсинг логов ошибок и локализация проблемного контекста

~45 минСредний
3
Этап 3 из 5

Агентский цикл генерации и применения исправления

~60 минСложный
4
Этап 4 из 5

Защитный барьер: валидация отсутствия модификации тестов

~30 минЛегкий
5
Этап 5 из 5

Прогон верификации и автоматическое открытие Pull Request

~45 минСредний

Типичные грабли на этом ТЗ

3 антипаттерна

Что сдаём клиенту (Deliverables)

Чек-лист сдачи
Файл GitHub Actions workflow (.github/workflows/self-heal-ci.yml)
Скрипт парсинга логов Vitest/Jest (extract-failure-context.mjs)
Изолированный агентский скрипт исправления (agent-fix-runner.mjs)
Автоматическое открытие Pull Request через Octokit с детальным описанием
Защитный валидатор (test-tampering-detector.mjs) против изменения файлов тестов

Инструменты экосистемы Fullstack AI Lab для этого ТЗ

Интеграция