BD solana-wallet
Управляйте кошельками Solana и Polygon, выполняйте арбитраж погоды Polymarket, публикуйте в X/Twitter и совершайте обмены Raydium — все с помощью естественного языка.
машинный переводПоказать оригиналСкрыть оригинал«Manage Solana and Polygon wallets, run Polymarket weather arbitrage, p…»
Manage Solana and Polygon wallets, run Polymarket weather arbitrage, post to X/Twitter, and execute Raydium swaps — all from natural language.
Управляйте кошельками Solana и Polygon, выполняйте арбитраж погоды Polymarket, публикуйте в X/Twitter и совершайте обмены Raydium — все с помощью…
Как процесс D 47/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Назначение скилла само по себе рискованное: работа с кошельками, паролями браузера, наступательная безопасность. Даже честная реализация даёт агенту доступ к тому, что стоит денег.
Объясните в description, зачем нужен доступ и как он ограничен; добавьте тесты, которые показывают отказ на опасных запросах.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 12
✓ Критических и высоких находок нет
Средние и низкие: 12
-
средняя Рискованное назначение
intent-wallet-secretsSKILL.md:227Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеровwallet private key (AES-256-GCM, per-wallet salt → ~/.raphael/)
-
средняя Рискованное назначение
intent-wallet-secretssrc/polymarketClob.ts:5Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров// Order signing: EIP-712 Order struct signed with the EVM wallet private key.
-
низкая Секреты в коде
secret-high-entropy-tokensrc/balance.ts:25Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда){ programId: new PublicKey("Toke…5DA") }в кавычках -
низкая Утечка данных
read-dotenvsrc/environment.ts:8Чтение файла .env (в кавычках — упоминание, а не команда)if (!val) throw new Error(`Missing required env var: ${key}\nRun: cp .env.example .env && pnpm setup`)в кавычках -
низкая Секреты в коде
secret-high-entropy-tokensrc/evmBalance.ts:9Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)const USDC_ADDRESS = "0x3c…359" // Native USDC on Polygon
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokensrc/polymarketClob.ts:13Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)const USDC_POLYGON = "0x3c…359"
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokensrc/polymarketClob.ts:16Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)const NEG_RISK_CTF_EXCHANGE = "0xC5…80a"
в кавычках -
низкая Утечка данных
exfil-secret-in-urlsrc/polymarketOracle.ts:184Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)`https://clob.polymarket.com/price?token_id=…&side=…
заглушка -
низкая Секреты в коде
secret-high-entropy-tokensrc/swap.ts:9Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)export const SOL_MINT = "So11…112"
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokensrc/swap.ts:10Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)export const USDC_MINT = "EPjF…t1v" // mainnet USDC
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokensrc/swap.ts:11Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)export const USDC_DEVNET_MINT = "4zMM…cDU"
в кавычках -
низкая Секреты в коде
secret-password-literalsrc/wallet.ts:51Захардкоженный пароль / ключ (возможно, пример)const secretKey = bs58Decode(priv…s58)
Просканировано файлов: 28. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 47/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 40Согласованность. Имя во frontmatter (solana-wallet) не совпадает с папкой (raphael-solana)
- 55Ошибки и развилки. Развилок: 1
- 60Инструменты и файлы. Используются инструменты (node), но во frontmatter они не объявлены
- 100Шаги. Шагов: 22
- 100Стоимость исполнения. Тело инструкции 2333 токенов
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Ответ описан самодельной разметкой (22 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -32 из 2 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 142 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 19 заголовков
- +3Пошаговые инструкции: 22 пунктов
- +4Есть примеры (5 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 68.