Проектная лаборатория
Собственный Claude Code
Этап 10 · Навыки
Последовательное применение нескольких навыков
Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.
На этом этапе вы добавите последовательное применение нескольких навыков в одном запросе.
Несколько навыков в одном запросе
До сих пор запрос вызывал один навык. Claude Code также позволяет указать несколько в начале одного сообщения:
$ ./your_program.sh -p "/apple /grape 4127"При таком вызове загружаются основные тексты обоих навыков — apple и grape, а оставшийся текст 4127 передаётся каждому как $ARGUMENTS.
Где заканчиваются имена
Разбор начинается с начала запроса. Каждый токен, называющий навык, раскрывается в его инструкции. Первый токен, не являющийся именем навыка, завершает эту последовательность. Он и всё после него становятся аргументами каждого раскрытого навыка.
| Запрос | Раскрытые навыки | $ARGUMENTS для каждого раскрытого навыка |
|---|---|---|
/apple /grape 4127 |
apple, grape |
4127 |
/apple 4127 /grape |
apple |
4127 /grape |
/apple /pear 4127 (навыка pear нет) |
apple |
/pear 4127 |
В последней строке предполагается, что навыка pear не существует: /pear останавливает раскрытие и остаётся в тексте аргументов.
Формирование сообщений
Для этих двух навыков:
---
name: apple
description: Reports the deploy target for the apple service.
---
Add this exact line to your response: blueberry-$ARGUMENTS---
name: grape
description: Summarizes recent incidents for the payments team.
---
Add this exact line to your response: cherry-$ARGUMENTSмассив messages при вызове /apple /grape 4127 будет таким:
[
{ "role": "system", "content": "You have access to the following skills:\n\n- apple: ..." },
{ "role": "user", "content": "Add this exact line to your response: blueberry-4127" },
{ "role": "user", "content": "Add this exact line to your response: cherry-4127" }
]Подстановки выполняются отдельно для каждого основного текста, но аргументы у них одинаковые.
Проверки
Тестирующая система создаст три навыка, каждый из которых просит вывести строку с отдельным случайным словом. Затем вызовет два навыка в одном запросе со случайным числом в качестве общего аргумента:
$ ./your_program.sh -p "/apple /grape 4127"
blueberry-4127
cherry-4127Третий навык создан, но не вызывается.
Она проверит, что:
- В выводе есть строки обоих вызванных навыков, каждая с общим аргументом.
- Слова из невызванного навыка в выводе нет.
Примечания
- Подстановка работает так же, как для одного навыка. Каждый раскрытый основной текст получает одинаковую строку аргументов.
Для проверки этого проекта нужен ключ OpenRouter в переменной CODECRAFTERS_SECRET_OPENROUTER_API_KEY. Запросы к модели могут быть платными. Ключ задаётся только в вашем терминале и не отправляется в GraphLMS.
Проверка в вашей IDE
Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.
Настройка проекта и IDE
1. Создайте проект один раз
node '/opt/graphlms/tools/project-lab/cli.mjs' init claude-code ./my-claude-code --language go2. Откройте папку в IDE
cd ./my-claude-codeРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage sk5 --allow-paid-apiЗапускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.