CF agentic-lending-morpho
Планирование и выполнение рабочего процесса кредитования Morpho-first для рынков на базе Api3. Используйте, когда пользователь хочет получить доступ к рынку Morpho или набору рынков для выбранных залоговых и заемных активов, нуждается в разрешении маршрута оракула для этих активов, хочет проверить готовность фида Api3 или профинансировать его, когда это безопасно, а затем хочет честно выполнить путь развертывания оракула Morpho + рынка и его верификацию. Этот вариант может перейти от планирования к реальному финансированию фидов и развертыванию рынка, когда поддерживаемый путь доступен и пользователь явно разрешает выполнение с подписантом. По умолчанию сначала используйте планирование, сухой прогон или защищенную верификацию. Не используйте для потоков Euler EVK или неподдерживаемых маршрутов оракула.
машинный переводПоказать оригиналСкрыть оригинал«Plan and execute the Morpho-first agentic lending workflow for Api3-ba…»
Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collateral and borrow assets, needs the oracle route resolved for those assets, wants Api3 feed readiness checked or funded when safe, and then wants the Morpho oracle + market deployment and verification path run honestly. This variant can progress from planning into real feed funding and market deployment when the supported path is available and the user explicitly allows signer-backed execution. Default to planning, dry-run, or guarded verification first. Do not use for Euler EVK flows or unsupported oracle routes.
Планирование и выполнение рабочего процесса кредитования Morpho-first для рынков на базе Api3.
Как процесс F 60/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: references/deployment-packs/<chain>/
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Как улучшить
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 30
✓ Критических и высоких находок нет
Средние и низкие: 30
-
средняя Утечка данных
net-credential-usescripts/lib/part2-morpho-planner.js:1008Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис)assertHexAddressIfPresent(entry.irmAddress, `${label}.byMarketKey.${marketKey}.irmAddress`); -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json:2Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"contractName": "Api3…ace",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/evk-addresses.api3-supported-overlap.json:14Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"evc": "0x0C…383",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/evk-addresses.api3-supported-overlap.json:15Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"eVaultFactory": "0x29…C8e"
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/evk-addresses.api3-supported-overlap.json:18Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"edgeFactory": "0xA9…9Bd",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/evk-addresses.api3-supported-overlap.json:19Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"evkFactoryPerspective": "0xB3…182",
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/evk-addresses.api3-supported-overlap.json:20Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"escrowedCollateralPerspective": "0x4e…DdE"
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/feed-status.json:7Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"supp…ace": true,
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/feed-status.json:19Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"supp…ace": true,
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/feed-status.json:31Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"supp…ace": true,
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/feed-status.json:43Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"supp…ace": true,
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokendata/part2/feed-status.json:57Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"supp…ace": true,
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/example-request.json:16Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример; в кавычках — упоминание, а не команда)"address": "0xaf…831"
тестовый файлв кавычках -
низкая Секреты в коде
secret-high-entropy-tokenreferences/live-request-template.json:16Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)"address": "0xaf…831"
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/api3-feed-manager.js:16Строка, похожая на токен (может быть id, хеш или секрет)Api3…ory,
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/api3-feed-manager.js:18Строка, похожая на токен (может быть id, хеш или секрет)comp…ess,
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/api3-feed-manager.js:961Строка, похожая на токен (может быть id, хеш или секрет)const communalProxy = chainState?.communalProxy || comp…ess(chainId, dapiName);
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/api3-feed-manager.js:1045Строка, похожая на токен (может быть id, хеш или секрет)const communalProxy = chainState?.communalProxy || comp…ess(chainId, dapiName);
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/api3-feed-manager.js:1496Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)from: '0x00…EaD',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-morpho-planner.js:13Строка, похожая на токен (может быть id, хеш или секрет)const { Api3…ory } = require('@api3/contracts'); -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-morpho-planner.js:53Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)const DEFAULT_DRY_RUN_SIMULATION_FROM_ADDRESS = '0x00…EaD';
в кавычках -
низкая Утечка данных
net-credential-usescripts/lib/part2-morpho-planner.js:1007Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (в кавычках — упоминание, а не команда)assertAllowedKeys(entry, ['irmAddress', 'lltv'], `${label}.byMarketKey.${marketKey}`);в кавычках -
низкая Утечка данных
net-credential-usescripts/lib/part2-morpho-planner.js:1913Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (определение детектора / чёрного списка)blockers.push(`No approved Morpho IRM is configured for ${marketKey}. Supply request.morphoPolicy.defaultIrmAddress or request.morphoPolicy.byMarketKey.${marketKey}.irmAddress.`);детектор -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-morpho-planner.js:2289Строка, похожая на токен (может быть id, хеш или секрет)function buil…ion(proxyDeployment, marketKeys = []) { -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-morpho-planner.js:2335Строка, похожая на токен (может быть id, хеш или секрет) (значение-заглушка)return buil…ion(proxyDeployment, [...marketKeys].sort());
заглушка -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-planner.js:22Строка, похожая на токен (может быть id, хеш или секрет)Api3…ce: path.join(CONTRACT_ARTIFACT_DIR, 'Api3PartialAggregatorV2V3Interface.json'),
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-planner.js:165Строка, похожая на токен (может быть id, хеш или секрет)supp…ce: classification !== 'unsupported',
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-planner.js:1597Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'Api3…ace remains the preferred compatibility layer for Api3-backed legs.',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-planner.js:1609Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)'Api3 via Api3…ace is the default route when a direct compatible feed is sufficient.',
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenscripts/lib/part2-planner.js:1735Строка, похожая на токен (может быть id, хеш или секрет)supp…ce: true,
Просканировано файлов: 46. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
missing-refссылка на отсутствующий файл: references/deployment-packs/<chain>/
Процессный рейтинг: все десять параметров 60/100
- 0Инструменты и файлы. Не хватает 1 файла(ов): references/deployment-packs/<chain>/
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 30Повторный запуск. Изменяющих операций: 60, без проверки текущего состояния
- 50Когда включается. Не сказано, при каком запросе скилл включается
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 85Шаги. Шагов: 97, расплывчатых формулировок: 1
- 100Ошибки и развилки. Развилок: 11, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 3204 токенов
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 11. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (6 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Нет примеров входа/выхода
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Описание говорит, когда скилл НЕ применять
- +3Длина description 672 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 12 заголовков
- +3Пошаговые инструкции: 97 пунктов
- +3Формат ответа описан явно
- +4Справочные файлы упоминаются в инструкциях (5 из 5)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 85.