> For the complete documentation index, see [llms.txt](https://vladislaveremeev.gitbook.io/qa_bible/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladislaveremeev.gitbook.io/qa_bible/ai-v-testirovanii/claude-code.md).

# Claude Code

**Claude Code** — официальный CLI-агент от Anthropic, дающий модели Claude прямой доступ к кодовой базе, файловой системе, терминалу и git. Запускается в терминале, работает с реальным проектом без копирования кода в чат.

В отличие от чат-интерфейса, Claude Code **действует**: читает файлы, редактирует код, запускает тесты, создаёт коммиты и PR — в реальной среде разработки.

***

## Установка и запуск

```bash
npm install -g @anthropic-ai/claude-code
cd /path/to/your/project
claude
```

Требования: Node.js 18+, API-ключ Anthropic (или подписка Claude Pro/Max).

Claude Code читает проект с текущей директории. Автоматически подхватывает:

* Файловую структуру проекта
* `CLAUDE.md` — файл с инструкциями для агента (если есть)
* `.gitignore` — игнорирует перечисленные файлы

***

## Что умеет Claude Code

### Работа с кодом

```
> Добавь валидацию email в форму регистрации

Агент:
1. Читает существующую форму
2. Изучает используемый стек (React, Vue, vanilla JS)
3. Добавляет валидацию в нужный файл
4. Обновляет тесты, если они есть
```

### Работа с тестами

```
> Все тесты в payment_service упали после рефакторинга — почини

Агент:
1. Читает лог упавших тестов
2. Находит изменения в коде (git diff)
3. Обновляет тесты под новые сигнатуры
4. Запускает suite, проверяет результат
```

### Git-операции

```
> Создай PR с описанием всех изменений

Агент:
1. git diff — смотрит все изменения
2. Формирует описательное сообщение коммита
3. git commit, git push
4. Создаёт PR через gh CLI
```

### Анализ и исследование

```
> Найди все места, где не обрабатываются ошибки сети

Агент:
1. Поиск по всем файлам
2. Анализ обработки ошибок
3. Список проблемных мест с контекстом
```

***

## Режимы работы

### Интерактивный режим

```bash
claude
```

Постоянная сессия. Задаёшь задачи одну за другой, агент сохраняет контекст в рамках сессии.

### Одиночный запрос (headless)

```bash
claude -p "Запусти тесты и покажи только упавшие"
claude --print "Проверь наличие SQL-инъекций в db_queries.py"
```

Подходит для CI/CD-пайплайнов и скриптов автоматизации.

### Режим продолжения

```bash
claude --continue        # продолжить последнюю сессию
claude --resume [id]     # продолжить конкретную сессию
```

***

## CLAUDE.md — инструкции для агента

`CLAUDE.md` — файл в корне проекта (или поддиректории), который Claude Code читает перед каждой сессией. Позволяет задать контекст и правила работы.

### Для QA-проекта:

```markdown
# CLAUDE.md

## Стек
- Backend: Python FastAPI
- Frontend: React + TypeScript
- Тесты: pytest (backend), Jest + Playwright (frontend)
- БД: PostgreSQL

## Соглашения
- Тест-кейсы: формат Given/When/Then
- Баг-репорты: severity/priority/steps/expected/actual
- Запуск тестов: `make test` (все), `make test-unit`, `make test-e2e`

## Что НЕ трогать
- Папка `migrations/` — только вручную
- `.env` файлы — не редактировать, не читать содержимое

## Тестовая среда
- Локальный запуск: `docker-compose up -d`
- Тесты изолированы через TestContainers
- Скриншоты Playwright: `tests/screenshots/`
```

***

## Инструменты агента

Claude Code имеет набор встроенных инструментов:

| Инструмент | Что делает                               |
| ---------- | ---------------------------------------- |
| `Read`     | Читает файлы                             |
| `Edit`     | Точечное редактирование файла            |
| `Write`    | Создание нового файла                    |
| `Bash`     | Выполнение команд в терминале            |
| `Glob`     | Поиск файлов по паттерну                 |
| `Grep`     | Поиск по содержимому файлов              |
| `Agent`    | Запуск субагентов для параллельных задач |

Дополнительные возможности через **MCP-серверы**: браузер, базы данных, внешние API.

***

## Применение в QA

### 1. Анализ требований и генерация тест-кейсов

```
> Прочитай user_stories/checkout.md и сгенерируй тест-кейсы в формате Given/When/Then
```

Агент читает требования, строит матрицу покрытия, генерирует тест-кейсы.

### 2. Исследовательское тестирование кода

```
> Найди потенциальные уязвимости в auth/ директории
```

Агент читает весь код авторизации, ищет небезопасные паттерны, классифицирует находки.

### 3. Покрытие тестами

```
> Покрытие тестами в payment_service упало ниже 80% — напиши недостающие тесты
```

Агент смотрит coverage report, находит непокрытые ветки, пишет тесты.

### 4. Генерация баг-репортов из логов

```
> Прочитай crash_logs/prod_2026-03-20.log и сформируй баг-репорты по каждому уникальному крешу
```

### 5. Помощь при code review

```
> Посмотри этот PR и найди потенциальные проблемы с точки зрения тестируемости
```

### 6. Автоматизация рутинных задач

```
> Обнови все snapshot-тесты после изменения дизайна компонентов
```

***

## Модели разрешений

Claude Code спрашивает разрешение на опасные действия:

| Действие              | Поведение по умолчанию              |
| --------------------- | ----------------------------------- |
| Чтение файлов         | Без запроса                         |
| Редактирование файлов | Показывает diff, ждёт подтверждения |
| Выполнение команд     | Спрашивает разрешения               |
| `git commit`          | Спрашивает разрешения               |
| `git push`            | Спрашивает разрешения               |
| Сетевые запросы       | Зависит от MCP-сервера              |

**`--dangerously-skip-permissions`** — режим автоматического одобрения всех действий (только для CI/CD в изолированной среде).

***

## Hooks — автоматизация событий

Hooks позволяют запускать скрипты при событиях агента:

```json
// ~/.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{
          "type": "command",
          "command": "echo 'Агент собирается выполнить команду' >> agent.log"
        }]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Edit",
        "hooks": [{
          "type": "command",
          "command": "npx prettier --write $CLAUDE_FILE_PATH"
        }]
      }
    ]
  }
}
```

**Применение в QA:**

* `PreToolUse` на `Bash` — логирование всех команд агента
* `PostToolUse` на `Edit` — автоматический запуск линтера после правки
* `PostToolUse` на `Write` — авто-добавление в `SUMMARY.md` при создании файлов

***

## Субагенты (Agents)

Claude Code умеет запускать субагенты для параллельного выполнения задач:

```
> Протестируй все 5 модулей параллельно

Оркестратор запускает 5 субагентов одновременно:
  Субагент 1 → тестирует auth/
  Субагент 2 → тестирует payment/
  Субагент 3 → тестирует notification/
  Субагент 4 → тестирует reporting/
  Субагент 5 → тестирует admin/

Результаты → оркестратор → итоговый отчёт
```

Это ускоряет выполнение независимых задач в несколько раз.

***

## Интеграция с CI/CD

```yaml
# .github/workflows/ai-qa.yml
name: AI QA Review

on:
  pull_request:
    branches: [main]

jobs:
  claude-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Run QA analysis
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude --print "
            Проанализируй изменения в этом PR.
            1. Найди потенциальные баги в изменённом коде
            2. Проверь, что тесты покрывают новый функционал
            3. Выяви edge cases, которые не обработаны
            Выведи структурированный отчёт.
          " > qa_report.txt

      - name: Post report to PR
        run: gh pr comment ${{ github.event.number }} --body-file qa_report.txt
```

***

## Ограничения

* **Контекстное окно** — при работе с большими кодовыми базами агент может не удержать весь контекст. Решение: использовать субагенты, разбивать задачи.
* **Стоимость** — каждая итерация REPL-loop стоит токенов. Длинные сессии могут быть дорогостоящими.
* **Недетерминизм** — одна и та же задача может быть выполнена по-разному при повторном запуске.
* **Зависимость от качества инструкций** — чем чётче `CLAUDE.md` и задача, тем качественнее результат.

***

## Связанные материалы

* [Agentic Development](/qa_bible/ai-v-testirovanii/agentic-development.md)
* [MCP серверы для тестирования](/qa_bible/ai-v-testirovanii/mcp-servery-dlya-testirovaniya.md)
* [REPL-loop](/qa_bible/ai-v-testirovanii/repl-loop.md)
* [AI агентные инструменты](/qa_bible/ai-v-testirovanii/agenty-ai-instrumenty.md)
* [Human-in-the-Loop](/qa_bible/ai-v-testirovanii/human-in-the-loop.md)
