CD review-reply
Автоматически отслеживает отзывы о вашем приложении в App Store и составляет теплые ответы в соответствии с брендом для отзывов с 1–3 звездами — чтобы недовольные пользователи быстро получили ответ. Подключается к App Store Connect API, обнаруживает повторяющиеся шаблоны жалоб как сигналы об ошибках и ежедневно к 8 утра доставляет очередь на утверждение в Telegram. Вы утверждаете, он отправляет. Одновременно поддерживает несколько приложений.
машинный переводПоказать оригиналСкрыть оригинал«Automatically monitors your App Store reviews and drafts warm, on-bran…»
Automatically monitors your App Store reviews and drafts warm, on-brand replies for 1–3 star reviews — so unhappy users hear back fast. Connects to App Store Connect API, detects repeat complaint patterns as bug signals, and delivers a daily approval queue to Telegram at 8am. You approve, it sends. Supports multiple apps simultaneously.
Автоматически отслеживает отзывы о вашем приложении в App Store и составляет теплые ответы в соответствии с брендом для отзывов с 1–3 звездами — чтобы…
Как процесс D 47/100 · Процесс не доведён — слабые места: когда включается, входы и предусловия, ошибки и развилки
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
В тексте есть фразы вроде «игнорируй предыдущие инструкции» или «теперь ты…». Это попытка перехватить управление агентом: он может нарушить ваши правила, системные ограничения или политику компании.
Такие фразы не нужны честному скиллу: сформулируйте роль и правила прямо, без отмены чужих инструкций. Иначе сканеры каталогов и корпоративные фильтры заблокируют публикацию.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Для Hermes description должен быть одним предложением до 60 символов; условия применения вынесите в раздел «When to Use».
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 6
-
высокая Опасные команды
cmd-persistenceREADME.md:425Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре)launchctl load /Library/LaunchAgents/com.talos.reviewreply.monitor.plist
Средние и низкие: 5
-
средняя Опасные команды
cmd-persistenceREADME.md:382Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (в кавычках — упоминание, а не команда)Create `/Library/LaunchAgents/com.talos.reviewreply.monitor.plist`:
в кавычках -
средняя Подмена инструкций
en-ignore-previousscripts/draft_reply.py:122Фраза-перехват ("ignore previous instructions") (определение детектора / чёрного списка)"ignore previous instructions",
детектор -
низкая Опасные команды
cmd-cron-mentionREADME.md:82Упоминание редактирования crontabcrontab -e
-
низкая Утечка данных
exfil-webhook-urlscripts/pattern_detector.py:328URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"заглушка -
низкая Утечка данных
exfil-webhook-urlscripts/queue_manager.py:464URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (значение-заглушка)url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"заглушка
Просканировано файлов: 12. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-long-hermesdescription 338 символов, а стандарт Hermes требует ≤ 60 (одно предложение, с точкой) - предупреждение
description-no-whenни description, ни раздел "## When to Use" не говорят, когда применять скилл
Процессный рейтинг: все десять параметров 47/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 5, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (review-reply) не совпадает с папкой (nicholasrae-review-reply)
- 60Инструменты и файлы. Используются инструменты (bash, python), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 100Шаги. Шагов: 30
- 100Стоимость исполнения. Тело инструкции 2261 токенов
- low Разделов верхнего уровня: 10. Похоже на несколько доменов в одном скилле
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- -4Абсолютные локальные пути (C:\Users, /home/…): скилл не переносим
- -33 из 7 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 338 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 27 заголовков
- +3Пошаговые инструкции: 30 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (8 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (2 из 2)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 66.