Проектная лаборатория
Собственный Claude Code
Этап 09 · Навыки
Передача аргументов навыку
Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.
На этом этапе вы добавите передачу аргументов навыку.
Подстановки
Навык, всегда выполняющий одно и то же, не очень полезен. Настоящие навыки принимают входные данные: развернуть <сервис>, проверить <файл>.
Навыки принимают входные данные через подстановки в основном тексте. Программа заменяет их перед отправкой модели. Есть два вида:
| Подстановка | Чем заменяется |
|---|---|
$ARGUMENTS |
Всё после имени навыка одной строкой |
$ARGUMENTS[0], $ARGUMENTS[1], … |
Один аргумент по позиции, начиная с нуля |
$0, $1, $2, … |
Краткая запись для отдельных аргументов |
Оба вида могут встречаться в одном тексте, а одна подстановка — повторяться несколько раз.
Выполнение подстановок
Для такого вызова:
$ ./your_program.sh -p "/apple staging eu-west"$ARGUMENTS заменяется на staging eu-west, $0 — на staging, а $1 — на eu-west.
Поэтому основной текст:
Deploy to $0 in region $1. Full request was: $ARGUMENTSотправляется модели в таком виде:
Deploy to staging in region eu-west. Full request was: staging eu-westАргументы разделяются пробельными символами. Обрабатывать кавычки не требуется.
Проверки
Тестирующая система создаст два навыка и дважды запустит программу.
Основной текст первого навыка просит повторить $ARGUMENTS; он вызывается со случайным числом:
$ ./your_program.sh -p "/apple 4127"
4127Основной текст второго просит вывести $1, затем $0, поэтому два случайных слова из аргументов возвращаются в обратном порядке:
$ ./your_program.sh -p "/grape mango pear"
pear mangoОна проверит, что:
- Подстановка
$ARGUMENTSвоспроизводит всю строку аргументов. - Позиционные подстановки дают нужные слова в порядке, указанном в основном тексте.
Примечания
- Вызов навыка без аргументов тоже должен работать. Заменяйте подстановки пустыми строками.
- Claude Code поддерживает другие подстановки, включая именованные аргументы и переменные сессии. В этом расширении мы их не рассматриваем.
Для проверки этого проекта нужен ключ 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 wd2 --allow-paid-apiЗапускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.