Проектная лаборатория

Собственный Claude Code

0 / 13этапов пройдено

Этап 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 go

2. Откройте папку в IDE

cd ./my-claude-code

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage sk5 --allow-paid-api

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста