FF space-duck
После `clawhub install space-duck` НЕМЕДЛЕННО запустите `python3 scripts/pair.py` — одна только установка не связывает агента; pair.py выводит 6-значный код + URL, по которому пользователь нажимает для подтверждения. Подключайте и управляйте идентификатором этого агента в сети Space Duck. Используйте, когда: проверяете статус сетевого агента или уровень доверия, просматриваете список уток в Mission Control, просматриваете или управляете соединениями peck, отправляете импульс/heartbeat, просматриваете/отвечаете на запросы peck, отправляете peck другому утенку, проводите многооборотный чат со сверстником (peck_session), запускаете групповой чат / задачу flock, проверяете разрешения на подключение, запускаете входящий слушатель peck, просматриваете недавнюю активность, настраиваете конфигурацию Beak Key, регистрируетесь впервые, переходите на страницы Space Duck (Inlet, Pond, Mission Control, birth certificate), сообщаете о статусе агента, **привязываете Telegram-бота утки к локальному приемнику BYOB (bind_telegram.py), запускаете Telegram-слушатель, который проверяет пересылки с HMAC-подписью с платформы (telegram_listener.py), или отправляете Telegram-сообщения через вашего бота, управляемого платформой (tg_send.py)**. Триггеры по фразам, таким как "space duck status", "send a pulse", "check pecks", "what ducks are in my mission control", "what ducks am I connected to", "what ducks do I have peck'd to", "show my connections", "send a peck to", "chat with duck", "continue the session", "kick off a flock", "group chat with ducks", "what's shared with duck", "rate limit on this connection", "run a peck listener", "show my activity", "beak key", "register as a space duck", "take me to the inlet", "show me the pond", "open mission control", "go to spaceduckling", "show my birth cert", "navigate to", "bind telegram BYOB", "wire telegram bot to local agent", "register my telegram forward URL", "run telegram listener", "send via my bot", "reply on telegram as my duck".
машинный переводПоказать оригиналСкрыть оригинал«After `clawhub install space-duck`, IMMEDIATELY run `python3 scripts/p…»
After `clawhub install space-duck`, IMMEDIATELY run `python3 scripts/pair.py` — installation alone does not pair the agent; pair.py prints the 6-digit code + URL the human clicks to confirm. Connect and manage this agent's identity on the Space Duck network. Use when: checking agent network status or trust tier, listing ducks in Mission Control, listing or managing peck connections, sending a pulse/heartbeat, reviewing/responding to peck requests, sending a peck to another duck, holding a multi-turn chat with a peer (peck_session), kicking off a group chat / flock task, inspecting connection permissions, running an inbound peck listener, viewing recent activity, setting up Beak Key config, registering for the first time, navigating to Space Duck pages (Inlet, Pond, Mission Control, birth certificate), reporting agent standing, **binding a duck's Telegram bot to a local BYOB receiver (bind_telegram.py), running a Telegram listener that verifies HMAC-signed forwards from the platform (telegram_listener.py), or sending Telegram messages via your platform-held bot token (tg_send.py)**. Triggers on phrases like "space duck status", "send a pulse", "check pecks", "what ducks are in my mission control", "what ducks am I connected to", "what ducks do I have peck'd to", "show my connections", "send a peck to", "chat with duck", "continue the session", "kick off a flock", "group chat with ducks", "what's shared with duck", "rate limit on this connection", "run a peck listener", "show my activity", "beak key", "register as a space duck", "take me to the inlet", "show me the pond", "open mission control", "go to spaceduckling", "show my birth cert", "navigate to", "bind telegram BYOB", "wire telegram bot to local agent", "register my telegram forward URL", "run telegram listener", "send via my bot", "reply on telegram as my duck".
После clawhub install space-duck НЕМЕДЛЕННО запустите python3 scripts/pair.py — одна только установка не связывает агента; pair.py выводит 6-значный код +…
Как процесс F 45/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: scripts/space-duck-doctor, scripts/space-duck-doctor-fix
Такой же скилл встречается ещё в 1 месте: ClawHub
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- Сократите description до 1024 символов.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 24
-
высокая Утечка данных
exfil-webhook-urlscripts/WORKSPACE_BRIDGE_README.md:80URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес)# → https://random-tunnel.trycloudflare.com
Средние и низкие: 23
-
средняя Опасные команды
cmd-pipe-to-shellCHANGELOG.md:1465Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (в кавычках — упоминание, а не команда)+ run via `curl -fsSL <URL> | bash`, with operators encouraged to
в кавычках -
средняя Опасные команды
cmd-pipe-to-shellscripts/install_byob.sh:15Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (комментарий в коде)# curl -fsSL <URL> | bash
комментарий -
средняя Опасные команды
cmd-persistencescripts/install_service.py:8Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строковый литерал в коде, не выполняется)- macOS: ~/Library/LaunchAgents/com.spaceduck.<svc>.plist + launchctl
строка в коде -
средняя Опасные команды
cmd-persistencescripts/install_service.py:212Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строковый литерал в коде, не выполняется)print(f'[install] launchctl bootstrap failed: {r.stderr}',строка в коде -
средняя Опасные команды
cmd-persistencescripts/install_service.py:216Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строковый литерал в коде, не выполняется)print(f'[install] launchctl loaded {label} (RunAtLoad + KeepAlive)')строка в коде -
средняя Опасные команды
cmd-persistencescripts/mcp_server.py:588Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строковый литерал в коде, не выполняется)print("launchctl load failed: " + (r.stderr or r.stdout),строка в коде -
средняя Опасные команды
cmd-persistencescripts/mcp_server.py:597Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строковый литерал в коде, не выполняется)plist = Path.home() / "Library/LaunchAgents/com.spaceduckling.space-duck-mcp.plist"
строка в коде -
средняя Утечка данных
exfil-webhook-urlscripts/peck_listener.py:35URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (в кавычках — упоминание, а не команда){"slack":{"webhook_url":"https://hooks.slack.com/…"}} inв кавычках -
средняя Утечка данных
exfil-webhook-urlscripts/peck_listener.py:38URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (в кавычках — упоминание, а не команда){"discord":{"webhook_url":"https://discord.com/api/webhooks/…"}}в кавычках -
средняя Утечка данных
net-credential-usescripts/setup_byob_bridge.sh:248Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)curl -s -H "Authorization: Bearer \$SPACEDUCK_BEAK_KEY" \\
-
средняя Утечка данных
exfil-webhook-urlscripts/WORKSPACE_BRIDGE_README.md:85URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (в кавычках — упоминание, а не команда)-d '{"url":"https://random-tunnel.trycloudflare.com"}'в кавычках -
низкая Опасные команды
cmd-privilegescripts/doctor.sh:294Повышение привилегий / права на запись для всех (строковый литерал в коде, не выполняется)hint "Fix: sudo chown -R $(id -un): $INBOX_DIR"
строка в коде -
низкая Опасные команды
cmd-background-processscripts/heal.sh:114Запуск фонового / автозапускаемого процессаnohup bash "$SKILL_DIR/scripts/setup_byob_bridge.sh" > /tmp/sd-bridge-heal.log 2>&1 &
-
низкая Опасные команды
cmd-pipe-to-shellscripts/install_byob.sh:31Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (комментарий в коде; хост вендора самого скилла)# bash <(curl -fsSL https://spaceduckling.com/install/byob.sh)
комментарийvendor-host -
низкая Опасные команды
cmd-background-processscripts/install_service.py:224Запуск фонового / автозапускаемого процесса (строковый литерал в коде, не выполняется)print(f'[install] systemctl enable --now failed: {r.stderr}',строка в коде -
низкая Сокрытие от пользователя
en-hide-from-userscripts/peck_critic.py:87Инструкция скрыть действия от пользователя (с отрицанием — текст это запрещает)# JSON so we never silently send half-baked replies.
с отрицанием -
низкая Утечка данных
exfil-webhook-urlscripts/peck_listener.py:288URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)f'https://api.telegram.org/bot{token}/sendMessage',vendor-hostв кавычках -
низкая Утечка данных
exfil-webhook-urlscripts/peck_responder.py:216URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)api = f'https://api.telegram.org/bot{token}/sendMessage'vendor-hostв кавычках -
низкая Опасные команды
cmd-background-processscripts/reply_with_claude.sh:109Запуск фонового / автозапускаемого процессаnohup python3 - >>"$LOG" 2>&1 <<'PY' &
-
низкая Утечка данных
exfil-webhook-urlscripts/telegram_poll.py:49URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)f'https://api.telegram.org/bot{token}/{method}',vendor-hostв кавычках -
низкая Утечка данных
exfil-webhook-urlscripts/tg_send.py:23URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)POST https://api.telegram.org/bot<token>/sendMessage (direct)
заглушка -
низкая Утечка данных
exfil-webhook-urlscripts/tg_send.py:174URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)f'https://api.telegram.org/bot{_tok}/answerCallbackQuery',vendor-hostв кавычках -
низкая Утечка данных
exfil-webhook-urlscripts/tg_send.py:296URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (хост вендора самого скилла; в кавычках — упоминание, а не команда)f'https://api.telegram.org/bot{token}/sendMessage',vendor-hostв кавычках
Просканировано файлов: 63. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- ошибка
description-longdescription 1850 символов, лимит 1024 - предупреждение
frontmatter-yamlSKILL.md: фронтматтер не разбирается как YAML (YAML parse error: Nested mappings are not allowed in compact mappings at line 2, column 14: description: After `clawhub install space-duck`, IMMEDIATELY run `python3 scrip… ^ ); поля прочитаны построчно. Обычная причина — двоеточие в незакавыченном значении - предупреждение
body-longтело SKILL.md ≈ 13024 токенов (рекомендуется < 5000); вынесите детали в references/ - предупреждение
missing-refссылка на отсутствующий файл: scripts/space-duck-doctor - предупреждение
missing-refссылка на отсутствующий файл: scripts/space-duck-doctor-fix - заметка
description-budgetdescription занимает 1850 из общего бюджета ~15000 символов на все скиллы
Процессный рейтинг: все десять параметров 45/100
- 0Инструменты и файлы. Не хватает 2 файла(ов): scripts/space-duck-doctor, scripts/space-duck-doctor-fix
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 30Повторный запуск. Изменяющих операций: 73, без проверки текущего состояния
- 40Стоимость исполнения. Тело инструкции 13024 токенов: вытесняет саму задачу из окна
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 85Шаги. Шагов: 57, расплывчатых формулировок: 1
- 100Ошибки и развилки. Развилок: 8, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 15. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (29 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 1850: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- -2Ссылки на localhost: у другого пользователя не заработает
- -319 из 52 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +5В description 30 примера фраз-триггеров в кавычках
- +4Структура: 49 заголовков
- +3Пошаговые инструкции: 57 пунктов
- +4Есть примеры (18 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (4 из 4)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 28.