BD solana
Операции с кошельком Solana — создание кошельков, проверка баланса, отправка SOL/токенов, обмен через Jupiter, запуск токенов на Pump.fun
машинный переводПоказать оригиналСкрыть оригинал«Solana wallet operations - create wallets, check balances, send SOL/to…»
Solana wallet operations - create wallets, check balances, send SOL/tokens, swap via Jupiter, launch tokens on Pump.fun
Операции с кошельком Solana — создание кошельков, проверка баланса, отправка SOL/токенов, обмен через Jupiter, запуск токенов на Pump.fun
Как процесс D 46/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 18
✓ Критических и высоких находок нет
Средние и низкие: 18
-
средняя Утечка данных
net-redirectable-api-keyscripts/jup_swap.py:32Скрипт отправляет API-ключ на хост из переменной окружения — ключ можно перенаправить на другой серверAPI key + configurable base URL from environment
-
низкая Утечка данных
read-dotenvscripts/initialize.py:96Чтение файла .env (определение детектора / чёрного списка)print(" source .env")детектор -
низкая Секреты в коде
secret-high-entropy-tokenscripts/jup_swap.py:38Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"SOL": "So11…112",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/jup_swap.py:40Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"USDC": "EPjF…t1v",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/jup_swap.py:41Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"USDT": "Es9v…NYB",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/jup_swap.py:42Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"PYUSD": "2b1k…GXo",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/jup_swap.py:43Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"USDS": "USDS…wcA",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/pumpfun.py:41Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)PUMP_PROGRAM_ID = Pubkey.from_string("6EF8…F6P")в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/pumpfun.py:42Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)PUMP_GLOBAL = Pubkey.from_string("4wTV…njf")в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/pumpfun.py:43Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)PUMP_FEE_RECIPIENT = Pubkey.from_string("CebN…9iM")в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/pumpfun.py:44Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)PUMP_EVENT_AUTHORITY = Pubkey.from_string("Ce6T…9F1")в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/pumpfun.py:45Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)TOKE…_ID = Pubkey.from_string("Toke…uEb")в кавычках -
низкая Утечка данных
read-dotenvSKILL.md:55Чтение файла .envsource .env
-
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:165Строка, похожая на токен (может быть id, хеш или секрет)python3 {baseDir}/scripts/wallet.py send 7xKX…AsU 0.1 -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:168Строка, похожая на токен (может быть id, хеш или секрет)python3 {baseDir}/scripts/wallet.py token-balance EPjF…t1v -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:171Строка, похожая на токен (может быть id, хеш или секрет)python3 {baseDir}/scripts/wallet.py send-token EPjF…t1v 7xKX…AsU 10 -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:190Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| USDC | `EPjF…t1v` |
таблица -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:191Строка, похожая на токен (может быть id, хеш или секрет) (строка таблицы в документации)| USDT | `Es9v…NYB` |
таблица
Просканировано файлов: 6. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "triggers"
Процессный рейтинг: все десять параметров 46/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 6, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (solana) не совпадает с папкой (solana-skills)
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Шаги. Шагов: 16
- 100Стоимость исполнения. Тело инструкции 1262 токенов
- low Разделов верхнего уровня: 10. Похоже на несколько доменов в одном скилле
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 119: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 23 заголовков
- +3Пошаговые инструкции: 16 пунктов
- +4Есть примеры (18 блоков кода)
- +3Все 4 скриптов описаны в инструкциях
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 83.