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

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

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

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

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

cd ./my-claude-code

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

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

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

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

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

go / ЛОКАЛЬНО

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

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

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

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