DC macos-watchdog
Проектирует и проверяет системные службы macOS (launchd): настройка LaunchAgent/LaunchDaemon, редактирование plist-файлов, запланированное самовосстановление, повторные уведомления, повторное открытие приложений после закрытия, циклы сбоев/восстановлений, оповещения Script Editor, остановка/отключение/перезапуск, периоды ожидания/отката, ограничение уведомлений, принятие решений по оповещениям, чтение расписания, триггеры событий WatchPaths/FSEvents. Поддерживает периодические наблюдатели.
машинный переводПоказать оригиналСкрыть оригинал«Designs and audits macOS launchd watchdogs: LaunchAgent/LaunchDaemon s…»
Designs and audits macOS launchd watchdogs: LaunchAgent/LaunchDaemon setup, plist edits, scheduled self-healing, repeated notifications, apps reopening after quit, crash/repair loops, Script Editor alerts, stop/disable/restart, cooldown/backoff, notification throttling, alert decisions, schedule readback, WatchPaths/FSEvents event triggers. Supports periodic observers. launchd 守护进程、常驻任务、开机自启、后台监控、定时自愈、通知来源排查、事件驱动监控。
Проектирует и проверяет системные службы macOS (launchd): настройка LaunchAgent/LaunchDaemon, редактирование plist-файлов, запланированное самовосстановление…
Как процесс C 56/100 · Есть пробелы — Скилл ссылается на файлы, которых нет в архиве: ../macos-permissions/references/uv-fda-trap.md, assets/launchagent.template.plist
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 10
-
высокая Опасные команды
cmd-persistencescripts/new-launchagent.sh:130Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре)$SUDO launchctl bootstrap "$DOMAIN" "$PLIST"
Средние и низкие: 9
-
средняя Опасные команды
cmd-privilegescripts/new-launchagent.sh:124Повышение привилегий / права на запись для всехsudo chown root:wheel "$tmp_plist"
-
средняя Опасные команды
cmd-privilegescripts/new-launchagent.sh:125Повышение привилегий / права на запись для всехsudo chmod 644 "$tmp_plist"
-
средняя Опасные команды
cmd-privilegescripts/new-launchagent.sh:127Повышение привилегий / права на запись для всех$SUDO mv "$tmp_plist" "$PLIST"
-
низкая Опасные команды
cmd-persistencereferences/launchd-plist-reference.md:9Механизм закрепления (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:10Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строка таблицы в документации; документация security-скилла)| LaunchDaemon | `/Library/LaunchDaemons/` | `system` (sudo) | Root (or `UserName`/`GroupName` override); no GUI session, no per-user TCC |
таблицаsecurity-скилл
Ещё 4 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.
Просканировано файлов: 10. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
body-longтело SKILL.md ≈ 5422 токенов (рекомендуется < 5000); вынесите детали в references/ - предупреждение
missing-refссылка на отсутствующий файл: ../macos-permissions/references/uv-fda-trap.md - предупреждение
missing-refссылка на отсутствующий файл: assets/launchagent.template.plist - заметка
edit-residueв тексте есть пометки об устаревшем (строки 167, 178): проверьте, не остались ли старые правила рядом с новыми — полная проверка читает текст на противоречия
Процессный рейтинг: все десять параметров 56/100
- 0Инструменты и файлы. Не хватает 2 файла(ов): ../macos-permissions/references/uv-fda-trap.md, assets/launchagent.template.plist
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 23, без проверки текущего состояния
- 40Результат и критерий готовности. Не сказано, что считать результатом
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 70Стоимость исполнения. Тело инструкции 5422 токенов
- 100Шаги. Шагов: 27
- 100Ошибки и развилки. Развилок: 2, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- high Скилл велит модели самой совершать необратимое действие, без подтверждения человеком
- low Ответ описан самодельной разметкой (9 тегов): типизированный вызов надёжнее
- medium Тестов 3, и все положительные: нет ни одного случая «должен отказать» или «должен переспросить»
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +4Нет примеров входа/выхода
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 419 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 13 заголовков
- +3Пошаговые инструкции: 27 пунктов
- +4Справочные файлы упоминаются в инструкциях (6 из 6)
- +3Все 3 скриптов описаны в инструкциях
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 56.