JavaRush /Курсы /Claude Code SELF /Работаем с находками субагента

Работаем с находками субагента

Claude Code SELF
6 уровень , 4 лекция
Открыта

1. Субагент находит то, что пропустил автор

Теперь Тёма проделывает всё сам и начисто — от файла-роли до выложенной обратно игры. Соберём по шагам, чтобы повторить один в один.

Шаг 1. Кладём субагента-роль в проект. Один файл, как навык был файлом, — .claude/agents/reviewer.md:

---
name: reviewer
description: Ревьюит игру на баги и шероховатости. Применять, когда просят посмотреть готовую вещь свежим взглядом.
---

# Ревьюер

Открой игру и её код впервые, без допущений «как задумано».
Найди: баги, неудобное управление, шероховатости.
Выдай список находок по пунктам, у каждой — приоритет (high / medium / low)
и точное место (файл, что именно не так).
Не правь код сам — только отчёт.

Шаг 2. Проверяем, что работник встал — набираем в строке собачку:

@
  reviewer   Ревьюит игру на баги и шероховатости…      ← на месте

Виден по собачке — значит эта сессия его знает, можно работать. Файл положили, и через пару секунд работник доступен: перезапускать разговор не нужно.

Если в списке пусто — почти всегда дело в том, что папки .claude/agents/ не было, когда мы начинали разговор. Тогда перезапускаем, сохранив его:

claude --continue

Шаг 3. Пишем бриф — короткое ТЗ проверяющему, REVIEW_BRIEF, чтобы он не растёкся по всей игре:

# REVIEW_BRIEF — Змейка v2
ПРОВЕРИТЬ:
  - поведение хвоста на резком повороте (что-то дёргается)
  - управление: нет ли задержки на поворотах
  - шероховатости, заметные игроку после релиза
МОЖНО ПРЕДЛОЖИТЬ: улучшения геймплея
НЕ ТРОГАТЬ: основную механику, базовый визуальный стиль

Шаг 4. Делегируем — одной фразой, и убираем руки с клавиатуры:

Пусть reviewer разберёт мою Змейку по REVIEW_BRIEF и найдёт, что улучшить.

Тёма откидывается и смотрит, как работа идёт без него. Ревьюер сам открывает файлы, сам гоняет игру. Несколько секунд — и в чат падает не расплывчатое «местами не очень», а разбор по пунктам:

РЕВЬЮ ЗМЕЙКИ v2 — по REVIEW_BRIEF

[HIGH]   Баг хвоста. game/index.html, функция checkCollision():
         проверка столкновения выполняется в тот кадр, когда хвост ещё
         не уехал, → заход на клетку уходящего хвоста даёт внезапную
         «смерть», хотя клетка в этот же тик освобождается.
         Проявляется на длинной змее + плотный разворот.
[MEDIUM] Управление. Поворот применяется на следующем тике, а не сразу —
         отсюда ощущение задержки. Можно применять ввод в тот же кадр.
[MEDIUM] Старт слишком быстрый: на первых секундах игрок не успевает
         сориентироваться.
[LOW]    Еда сливается с фоном на тёмных клетках — можно подсветить.
[LOW]    Нет счётчика рекорда — мелкая, но приятная деталь.

Механику и стиль не трогал (по брифу).

Тёма ведёт глазами сверху вниз — и на первой же строчке замирает.

— Да ладно.

Первым пунктом, [HIGH], точное место: game/index.html, checkCollision(), хвост на резком повороте. Тот самый баг. Не «что-то дёргается» — файл, функция, причина. Та самая дыра, над которой Саня утром сидел и кивал «всё корректно».

А придира, которая открыла его Змейку впервые в жизни, ткнула в неё сразу. Первым пунктом. За несколько секунд.

— И ведь висел в выложенной, — выдыхает Тёма, и его слегка коробит. — Я ж его неделю назад гордо в галерею кинул. «Готово». А там вон что.

Тёма откидывается и пару секунд молчит. Лёха недавно толковал ему про свежий глаз — складно, по полочкам, он кивал и думал «ну да, логично». А сейчас это уже не лекция. Сейчас это его баг, его игра, и кто-то посторонний ткнул в дыру, мимо которой он сам прошёл полдня.

— Другие могли его поймать, — говорит он тихо. — Открыли бы с телефона — и привет. А Саня сто раз мимо прошёл. Привык, что «хвост иногда чудит, ну и ладно».

Он перечитывает строчку ещё раз — и не злится, как утром, а что-то вроде уважения проскакивает.

— Не потому что она умнее Сани, — добавляет он сам себе. — Потому что свежая. Саня полдня в упор не видел — а она глянула впервые и ткнула пальцем.

2. Что берём в работу, что отклоняем

Кроме бага ревьюер принёс ещё горсть улучшений по геймплею. Поворот сделать отзывчивее. Скорость на старте чуть сбавить. Подсветить еду поярче. Добавить счётчик рекорда.

Первый порыв — старый, школярский: раз умный ревьюер насоветовал, надо брать всё, он же лучше знает. Тёма уже тянется ответить Сане «делай всё подряд» — и осаживает себя.

— Не-не, — говорит он вслух. — Список советов — это ещё не список приказов.

Решать, что ляжет в Змейку, — не ревьюеру, а ему. И он идёт по пунктам как тот, кто взвешивает каждый.

— Баг хвоста — чиню, без вопросов, стыдная дыра. Поворот отзывчивее — да, самого давно бесило, беру. Скорость на старте сбавить… — он мысленно прикидывает, — ага, тоже беру. А вот «еду поярче» — стоп.

Тёма смотрит на свою еду и понимает, что ему и так нравится.

— Не баг это. Вкусовщина. У ревьюера свой вкус, у меня свой. Заворачиваю. Счётчик рекорда — мысль хорошая, но не сегодня, отложим.

Что-то берёт, что-то откладывает, что-то заворачивает — и впервые делает это с ощущением права. Раньше он выполнял чужие хотелки: сказали — сделал. А сейчас он тот, кто решает, что вообще будет сделано.

Выбрал — отдаёт в работу. Главную дыру первой, прямо словами, как Лёха учил поручать:

Саня, почини баг хвоста в Змейке, который нашёл ревьюер.
---
[HIGH]   Баг хвоста. game/index.html, функция checkCollision():
         проверка столкновения выполняется в тот кадр, когда хвост ещё
         не уехал, → заход на клетку уходящего хвоста даёт внезапную
         «смерть», хотя клетка в этот же тик освобождается.
         Проявляется на длинной змее + плотный разворот.

Агент уходит в код Змейки и правит игровую логику — ту самую, в которой Саня утром сидел и не разглядел.

— «Готово, поправил», — читает Тёма ответ и хмыкает. — Ну-ну. Поправил он. Сейчас проверим.

Верить на слово он не собирается. Открывает игру локально, разгоняет змею до приличной длины — той самой, на которой утром ловил дёрганье, — и нарочно делает тот резкий разворот.

Секунда. Хвост проходит поворот.

Чисто. Никакого подёргивания. Ещё раз, ещё резче — чисто. Бага нет.

— Во-о-от, — тянет Тёма с удовольствием. — Другое дело. Не «агент сказал, что починил» — я своими руками лично проверил.

3. Своя доработка поверх находок

Поворот и старт Тёма докидывает Сане тем же манером — словами, одной задачей. А потом добавляет то, чего в списке придиры не было вовсе:

— А это уже от себя, — говорит он. — Придира про звук молчала. А я хочу.

Добавь в Змейку озвучку: короткий звук на поедание еды и фоновую музыку (web audio).

Саня применяет выбранные правки и подключает Web Audio. Управление стало отзывчивее, старт мягче. А потом Тёма открывает игру, ведёт змею к первому яблоку — и динамики выдают короткий приятный хрум. Фоном заводится бодрая музычка.

— О! — Тёма невольно расплывается. — Заиграло.

Он гоняет змею по экрану просто чтобы послушать. Хрум, хрум на каждое яблоко. То самое, что он хотел утром, для души. Придира сделала Змейку чище, а это — его, со своим голосом.

4. Проверяем и сдаём результат

Тёма отправляет обновлённую Змейку обратно в галерею. Туда же, где она и лежала, — только теперь это другая Змейка. Без странного бага. С живым управлением. Со звуком.

Он смотрит на неё в галерее и вдруг ловит то смутное, что вертелось ещё утром.

— Так стоп, — говорит он сам себе. — Я ж неделю назад думал, что закрыл её. Выложил — всё, забыл, перешёл к следующей.

А она, оказывается, не закрылась. В неё можно было вернуться — найти дыру, починить, добавить звука, глянуть чужими глазами.

— Получается, выложить — это не конец, — медленно тянет он. — Это… середина какая-то. Сделал 90% работы, а впереди вторые 90% работы.

Он прокручивает свою витрину взглядом — Змейка, лендинг, игрушки — и впервые видит их не как стопку готовых-и-забытых поделок. Это вещи, которые живут. И их кто-то ведёт. Он.

1
Задача
Claude code, 6 уровень, 4 лекция
Недоступна
Fresh-context чтение handoff после /clear
Fresh-context чтение handoff после /clear
1
Задача
Claude code, 6 уровень, 4 лекция
Недоступна
Подготовка HANDOFF_NOTE по входным материалам
Подготовка HANDOFF_NOTE по входным материалам
1
Опрос
Длинные задачи и Git-recovery в Claude Code, 6 уровень, 4 лекция
Недоступен
Длинные задачи и Git-recovery в Claude Code
Длинные задачи и Git-recovery в Claude Code
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ