Claude Code: работа с coding-агентом5. Как направлять агента
Lab: пишем свой skill
Засчитывается, когда отвечены все вопросы квиза
Что получится
В Cadence появится skill проекта .claude/skills/database-migrations/SKILL.md с процедурой изменения схемы БД. Из файла инструкций проекта уйдут и сама процедура, и строка-указатель на неё. Вы проверите, что описание skill-а попало в список skills, а потом поручите агенту изменить схему и увидите в transcript-е, что он сам вызвал skill и прошёл его шаги: миграция, seed-скрипт, reseed, проверка типов.
Указатель при этом меняет место, но не исчезает.
Подготовка
- Стенд из раздела 1: Claude Code и учебный репозиторий Cadence с установленными зависимостями.
- Отдельная git-ветка в Cadence для этого Lab-а, чтобы потом легко откатиться.
- Шаги миграции в Cadence: либо в файле инструкций проекта, либо в
docs/database-migrations.md, если вы делали практику из 5.2. - Bite-ы 5.2–5.4: паттерн «документ плюс указатель», устройство skill-а и уровни хранения.
Шаги
-
Запустите
claudeв корне Cadence и наберите/skills. Запишите, какие skills в списке и у каких из них есть описание. Это исходная картина: что агент видит до ваших изменений. -
Выполните
/contextи запишите две строки: сколько занимают файлы инструкций и сколько — skills. -
Попросите агента перенести процедуру в skill проекта. Не вызывайте никакой skill вручную — пусть агент сам решит, что ему нужно:
Move the database migration steps into a project skill at .claude/skills/database-migrations/SKILL.md. Write a description that says when to use it. Then remove the steps and any pointer to them from AGENTS.md, and delete docs/database-migrations.md if it exists.Агент создаст папку skill-а,
SKILL.mdи уберёт старые следы процедуры. -
Откройте
.claude/skills/database-migrations/SKILL.mdи проверьте frontmatter. Первая строка файла —---, естьnameиdescription, и описание начинается со сценария: изменение схемы, добавление или изменение колонки или таблицы. Если описание говорит, что skill делает, но не когда его использовать, допишите условие сами. -
Выполните
/clearи снова/skills. В списке должен появитьсяdatabase-migrationsс вашим описанием. Claude Code отслеживает.claude/skills/и подхватывает новый skill без перезапуска. -
Выполните
/contextи сравните с шагом 2: файлы инструкций стали меньше, а skills — немного больше, на одно описание. -
Поручите агенту изменить схему:
In the purchases table, rename pricePaid to amountPaid. -
Нажмите
Ctrl+Oи найдите в transcript-е вызов skill-аdatabase-migrations. Он должен произойти до генерации миграции, в момент, когда агент понял, что меняет схему. -
Если
npm run db:generateостановится на интерактивном вопросе (например, переименовать колонку или создать новую), агент не сможет ответить сам. Запустите команду в своём терминале, выберите переименование и напишите агенту, что миграция сгенерирована. -
Дождитесь, пока агент закончит, и посмотрите, какие шаги он назвал в итоге. Это должны быть шаги из вашего skill-а: обновить seed-скрипт, сделать reseed, запустить проверку типов.
Проверка результата
Выполните в корне Cadence:
ls .claude/skills/database-migrations/
grep -rn "pricePaid" app scripts
npm run db:seed
npm run typecheck
Результат засчитывается, если:
- в папке skill-а есть
SKILL.md; grepничего не находит: старого имени не осталось ни в схеме, ни в seed-скрипте;npm run db:seedиnpm run typecheckзавершаются без ошибок;- в файле инструкций проекта нет ни шагов миграции, ни строки-указателя на них;
- в transcript-е шага 8 есть вызов
database-migrations.
Если не получилось
- Skill не появился в
/skills. Проверьте путь: файл должен называться ровноSKILL.mdи лежать в.claude/skills/<skill-name>/. Если первая строкаSKILL.md— не---, Claude Code не читает frontmatter и считает весь файл телом skill-а. - Skill есть в списке, но агент его не вызвал. Проверьте, что в
descriptionесть слова, которыми вы описали задачу: «schema», «column», «table». Запустите Claude Code с--debug, чтобы увидеть ошибку разбора YAML, если она есть. В крайнем случае вызовите/database-migrationsвручную и перепишите описание. - Агент прошёл процедуру, но пропустил seed-скрипт. Добавьте в начало
SKILL.mdстроку о том, что каждое изменение схемы попадает и вscripts/seed.ts. Самое важное держите в начале файла: после compaction Claude Code сохраняет только начало вызванного skill-а.
Проверь себя
Где после шага 5 оказался context pointer на процедуру миграций?
database-migrations
/skills
после
/clear
показал
database-migrations
с описанием. Указатель переехал в список skills. Тело
SKILL.md
при старте не загружается — только когда агент вызывает skill.
Как изменились числа /context между шагами 2 и 6?
Что вы сделали, если на шаге 9 npm run db:generate остановился на интерактивном вопросе?
/database-migrations
вручную ещё раз
Когда в transcript-е шага 8 появился вызов database-migrations?
purchases
— с описанием и загрузил
SKILL.md
, прежде чем выполнять шаги. В начале сессии skill не вызывается, а ждать ошибки ему незачем.
Источники
- Anthropic, Extend Claude with skills
- Anthropic, Commands
- Anthropic, Interactive mode
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.