Все скиллы

redjob

Для разработчиковКод и качество

Дежурный оператор парка launchd/cron джоб — карта, аудит тихих поломок, советник размещения.

Вставь в Claude Code — он установит этот навык

Что делает

Метафора авиадиспетчера над всеми фоновыми задачами мака: единый реестр «что когда бегает», read-only doctor-аудит класса тихих поломок (plist без PATH к homebrew → падение 127; plist вообще без триггера → джоба никогда не запустится; `op` без service-account токена → окно доступа к Keychain ночью; отсутствующий бинарь; коллизии расписаний; дрифт реестр↔диск). Проверяет ИСХОД, а не паттерн — PATH реальным резолвом бинарей в окружении джобы. Плюс советник новой джобы: свободные слоты по клиренсу от контеншена, кандидаты на слияние, генерация plist из канон-шаблона с self-doctor-гейтом. Диспетчер разрешает посадку — сажает человек (печатает install/rollback, не выполняет).

Как пользоваться

  1. 1redjob seed — собрать реестр из ~/Library/LaunchAgents.
  2. 2redjob list — карта: timeline / persistent / по проектам.
  3. 3redjob doctor — аудит, exit≠0 при CRITICAL.
  4. 4redjob vault-audit — кто может открыть окно доступа к 1Password-сейфу.
  5. 5redjob add job.json --generate — совет + plist под апрув.

Когда срабатывает

«что у меня бегает»«карта джоб»«аудит джоб»«куда посадить джобу»/redjob

Пример

redjob doctor — покажет, какие launchd-джобы тихо ломаются и где коллизии расписаний.

Обновления

  • Новое правило doctor `no-trigger` — ловит джобу-зомби: plist без единого триггера (StartCalendarInterval / StartInterval / KeepAlive). launchd такой примет и будет вечно молчать — CRITICAL; если стоит RunAtLoad=true (запуск раз на логин) — мягче, WARNING. Правило смотрит в сам распарсенный plist, а не в реестр, который может врать. Плюс `redjob add --generate` теперь заворачивает опечатку в kind на входе — раньше она молча давала plist без триггера. Родилось из реального инцидента: джоба месяц выглядела живой и ни разу не запустилась.

  • Добавлен в каталог RedSkills.

Понравился скилл? Новые разборы и обновления — в канале.