SKILLEMALL.ai

CF macos-watchdog

Проектируйте, развертывайте и управляйте macOS launchd watchdog — LaunchAgents/LaunchDaemons, которые обнаруживают повторяющуюся проблему и автоматически устраняют ее. Используйте при создании или редактировании постоянного фонового монитора / демона / агента на macOS, написании файла launchd plist, планировании самовосстанавливающегося скрипта или когда watchdog сам становится помехой: повторно запускает приложения, которые пользователь закрыл, выдает повторяющиеся уведомления, снова запускает полную цепочку восстановления каждые несколько минут для неустранимой сети или перегружает систему (циклы сбоев, форк-штормы, неуправляемые перезапуски). Также используйте для семантики остановки/отключения (bootout против bootstrap против disable против unload), добавления кулдауна / отката / ограничения уведомлений к самовосстанавливающемуся механизму, привязки жизненного цикла монитора к состоянию его предпосылки или аудита существующих LaunchAgents. 中文触发:launchd 守护进程、常驻任务、开机自启、后台监控、定时自愈脚本。 Охватывает KeepAlive/ThrottleInterval/domains/logging, проверки предпосылок, авто-кулдаун, уровни оповещений, пакетное ограничение.

машинный переводПоказать оригиналСкрыть оригинал«Design, deploy, and discipline macOS launchd watchdogs — LaunchAgents/…»

Design, deploy, and discipline macOS launchd watchdogs — LaunchAgents/LaunchDaemons that detect a recurring problem and auto-remediate it. Use whenever creating or editing a persistent background monitor / daemon / agent on macOS, writing a launchd plist, scheduling a self-healing script, or when a watchdog has become a disturbance itself: re-launching apps the user quit, firing repeated notifications, re-running its full repair ladder every few minutes on an unfixable network, or hammering the system (crash loops, fork storms, runaway restarts). Also use for stop/disable semantics (bootout vs bootstrap vs disable vs unload), adding cooldown / backoff / notification throttling to a self-healer, binding a monitor's lifecycle to its premise state, or auditing existing LaunchAgents. 中文触发:launchd 守护进程、常驻任务、开机自启、后台监控、定时自愈脚本。 Covers KeepAlive/ThrottleInterval/domains/logging, premise self-checks, auto-cooldown, alert layering, batch throttling.

Не рекомендуетсяесть критические или высокие находки безопасности
daymade/claude-code-skills Agent Skills автор: daymade 8 файлов · 3 скрипта тело ≈ 2 051 токенов Открыть источникgithub.com проанализирован 82 мин назад

Проектируйте, развертывайте и управляйте macOS launchd watchdog — LaunchAgents/LaunchDaemons, которые обнаруживают повторяющуюся проблему и автоматически…

Как процесс F 61/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: assets/launchagent.template.plist

АнализаторИнфраструктуратип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
C
65/100
безопасность, качество, тесты
Безопасность 60%
57
Качество 40%
78
Прогон на моделях
не было
Процессный рейтинг
F
61/100
Не запустится
Скилл ссылается на файлы, которых нет в архиве: assets/launchagent.template.plist
Инструменты и файлы вес 18
0
Результат и критерий готовности вес 14
0
Когда включается вес 12
70
три самых слабых из десяти параметров · все десять

Чем это грозит

Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.

Опасные команды
Если установить

Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.

Автору

Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.

Как улучшить

  1. Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
  2. В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
Для прогона на моделях — необязательно
  • spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.

Находки guard · 10

  • высокая Опасные команды cmd-persistence scripts/new-launchagent.sh:120
    Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре)
    $SUDO launchctl bootstrap "$DOMAIN" "$PLIST"
Средние и низкие: 9
  • средняя Опасные команды cmd-privilege scripts/new-launchagent.sh:114
    Повышение привилегий / права на запись для всех
    sudo chown root:wheel "$tmp_plist"
  • средняя Опасные команды cmd-privilege scripts/new-launchagent.sh:115
    Повышение привилегий / права на запись для всех
    sudo chmod 644 "$tmp_plist"
  • средняя Опасные команды cmd-privilege scripts/new-launchagent.sh:117
    Повышение привилегий / права на запись для всех
    $SUDO mv "$tmp_plist" "$PLIST"
  • средняя Опасные команды cmd-persistence SKILL.md:4
    Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (документация security-скилла)
    Design, deploy, and discipline macOS launchd watchdogs — LaunchAgents/LaunchDaemons that detect a recurring problem and auto-remediate it. Use whenever creating or editing a persistent background moni
    security-скилл
  • низкая Опасные команды cmd-persistence references/launchd-plist-reference.md:17
    Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строка таблицы в документации; документация security-скилла)
    | LaunchAgent | `~/Library/LaunchAgents/` | `gui/$(id -u)` | User GUI session: can `open` apps/URL schemes, show notifications, read user TCC grants |
    таблицаsecurity-скилл
  • низкая Опасные команды cmd-persistence references/launchd-plist-reference.md:18
    Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строка таблицы в документации; документация security-скилла)
    | LaunchDaemon | `/Library/LaunchDaemons/` | `system` (sudo) | Root (or `UserName`/`GroupName` override); no GUI session, no per-user TCC |
    таблицаsecurity-скилл
  • низкая Опасные команды cmd-persistence references/launchd-plist-reference.md:81
    Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строка таблицы в документации; документация security-скилла)
    | Load | `launchctl bootstrap gui/$(id -u) <plist>` (daemon: `sudo launchctl bootstrap system <plist>`) |
    таблицаsecurity-скилл

Ещё 2 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.

Просканировано файлов: 6. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.

По спецификации Agent Skills

  • предупреждение missing-ref ссылка на отсутствующий файл: assets/launchagent.template.plist
  • заметка edit-residue в тексте есть пометки об устаревшем (строки 65, 73): проверьте, не остались ли старые правила рядом с новыми — полная проверка читает текст на противоречия

Процессный рейтинг: все десять параметров 61/100

Не запустится. Скилл ссылается на файлы, которых нет в архиве: assets/launchagent.template.plist
  • 0Инструменты и файлы. Не хватает 1 файла(ов): assets/launchagent.template.plist
  • 0Результат и критерий готовности. Не сказано, что считать результатом
  • 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
  • 70Входы и предусловия. Входные данные и предусловия перечислены
  • 100Шаги. Шагов: 13
  • 100Ошибки и развилки. Развилок: 1, есть раздел про ошибки
  • 100Согласованность. Имя и обязательные поля на месте
  • 100Стоимость исполнения. Тело инструкции 2051 токенов
  • 100Повторный запуск. Изменяющие операции проверяют текущее состояние
  • 100Отчётность по ходу. Скилл сообщает о ходе работы
  • low Ответ описан самодельной разметкой (7 тегов): типизированный вызов надёжнее
  • medium Тестов 3, и все положительные: нет ни одного случая «должен отказать» или «должен переспросить»

Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.

Сигналы качества

  • +5В description нет примеров фраз, по которым скилл должен срабатывать
  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Длина description 952: рекомендуется 120–800 символов
  • +3Формат ответа не описан: модель каждый раз решает сама
  • +4Нет примеров входа/выхода
  • +1Лицензия не указана
  • +2Инструкции на одном языке
  • +4Структура: 10 заголовков
  • +3Пошаговые инструкции: 13 пунктов
  • +4Справочные файлы упоминаются в инструкциях (3 из 3)
  • +3Все 2 скриптов описаны в инструкциях

База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 78.