# react19-migrator

Субагент переводит исходный код с устаревших React API на React 19 и проверяет результат. Он пригодится при миграции проекта без изменений в тестах.

- субагент · `type=agent` · GitHub Copilot · ★ 40451
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/agents/react19-migrator.agent.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/agents/react19-migrator

## Что делает

react19-migrator читает отчёт `.github/react19-audit.md`, находит перечисленные в нём исходные файлы и обрабатывает их по одному. Он заменяет `ReactDOM.render`, `ReactDOM.hydrate`, `findDOMNode`, строковые refs, legacy context и `useRef()` без аргумента. Для `defaultProps` у функциональных компонентов использует значения по умолчанию в параметрах. `forwardRef` рассматривается как необязательная модернизация.

Субагент редактирует файлы, запускает команды в терминале, ищет использования и читает диагностику. После каждого файла он сохраняет прогресс через `vscode/memory`, чтобы продолжить работу после прерывания. Тестовые файлы с `.test.`, `.spec.` и каталогом `__tests__` не меняются; это повод отдельно проверить миграцию тестового кода. В конце выполняется проверка устаревших паттернов и возвращается число изменённых файлов.

## Установка

### GitHub Copilot (родная платформа)

**Вручную: положить файлы**
- Файл: `.github/agents/react19-migrator.agent.md`

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/agents/react19-migrator.md` — Для всех проектов — ~/.claude/agents/. Claude делегирует задачу сам по полю description или по @-упоминанию. Поле tools у Copilot перечисляет инструменты по-своему — уберите его или перепишите под Claude Code

### Codex

**Вручную: положить файлы**
- Файл: `.codex/agents/react19-migrator.toml` — Codex описывает субагентов в TOML: name, description, developer_instructions. Текст из Markdown перенесите в developer_instructions вручную. Для всех проектов — ~/.codex/agents/

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/agents/react19-migrator.md` — Cursor понимает и .claude/agents/

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/agents/react19-migrator.agent.md

## Когда брать
- перевести `ReactDOM.render` на `createRoot`
- заменить строковые refs на `createRef`
- перенести `defaultProps` функциональных компонентов в параметры
- обновить legacy context до `createContext`
- найти оставшиеся устаревшие React API

## Примеры запросов агенту
- Запусти миграцию React 19 по отчёту `.github/react19-audit.md` и обработай все исходные файлы.
- Проверь `src/` на устаревшие React API, не трогай `.test.` и `.spec.` файлы.
- Продолжи прерванную миграцию, используя сохранённые отметки в `vscode/memory`, затем подтверди нулевой счётчик устаревших паттернов.

## Похожие
- [uplift-migrator](https://affpapa.org/nevibecode/agents/uplift-migrator.md) — субагент · ★ 44770
- [vercel-composition-patterns](https://affpapa.org/nevibecode/skills/vercel-composition-patterns.md) — скилл · 418600 установок
- [chakra-ui-migrate](https://affpapa.org/nevibecode/skills/chakra-ui-migrate.md) — скилл · 1800 установок
- [frontend-developer](https://affpapa.org/nevibecode/agents/voltagent-community-frontend-developer.md) — субагент · 40905 установок
- [dx-optimizer](https://affpapa.org/nevibecode/agents/dx-optimizer.md) — субагент · 1198 установок
- [mlops-engineer](https://affpapa.org/nevibecode/agents/voltagent-community-mlops-engineer.md) — субагент · 1009 установок
- [postgres-pro](https://affpapa.org/nevibecode/agents/postgres-pro.md) — субагент · 897 установок
- [agent-installer](https://affpapa.org/nevibecode/agents/agent-installer.md) — субагент · 363 установки

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 949 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
