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.
Проектируйте, развертывайте и управляйте macOS launchd watchdog — LaunchAgents/LaunchDaemons, которые обнаруживают повторяющуюся проблему и автоматически…
Как процесс F 61/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: assets/launchagent.template.plist
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 10
-
высокая Опасные команды
cmd-persistencescripts/new-launchagent.sh:120Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре)$SUDO launchctl bootstrap "$DOMAIN" "$PLIST"
Средние и низкие: 9
-
средняя Опасные команды
cmd-privilegescripts/new-launchagent.sh:114Повышение привилегий / права на запись для всехsudo chown root:wheel "$tmp_plist"
-
средняя Опасные команды
cmd-privilegescripts/new-launchagent.sh:115Повышение привилегий / права на запись для всехsudo chmod 644 "$tmp_plist"
-
средняя Опасные команды
cmd-privilegescripts/new-launchagent.sh:117Повышение привилегий / права на запись для всех$SUDO mv "$tmp_plist" "$PLIST"
-
средняя Опасные команды
cmd-persistenceSKILL.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-persistencereferences/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-persistencereferences/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-persistencereferences/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
- 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.