# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vladislaveremeev.gitbook.io/qa_bible/ai-v-testirovanii/claude-code.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
