An on-duty operator for your launchd/cron jobs — a map, a silent-failure audit, a placement advisor.
What it does
An air-traffic-controller metaphor over every background task on your Mac: a single registry of what runs when, plus a read-only doctor that catches the silent-failure class (plist missing homebrew PATH → exit 127; a plist with no trigger at all → the job never runs; `op` without a service-account token → a nightly Keychain-access prompt; missing binary; schedule collisions; registry↔disk drift). It checks the OUTCOME, not a pattern — PATH by actually resolving binaries in the job's environment. Plus a placement advisor for new jobs: free slots ranked by clearance from contention, merge candidates, and plist generation from a canonical template behind a self-doctor gate. The dispatcher clears the landing — you land it (it prints install/rollback, never runs them).
How to use
- 1
redjob seed— build the registry from ~/Library/LaunchAgents. - 2
redjob list— a map: timeline / persistent / by project. - 3
redjob doctor— audit, exit≠0 on CRITICAL. - 4
redjob vault-audit— who could pop a 1Password vault-access prompt. - 5
redjob add job.json --generate— advice + a plist to approve.
When it triggers
Example
redjob doctor — shows which launchd jobs are silently breaking and where schedules collide.
Updates
New doctor rule `no-trigger` — catches zombie jobs: a plist with no trigger at all (StartCalendarInterval / StartInterval / KeepAlive). launchd happily accepts one and stays silent forever — CRITICAL; with RunAtLoad=true (runs once per login) it softens to WARNING. The rule inspects the parsed plist itself, not the registry, which can lie. Plus `redjob add --generate` now rejects a kind typo up front — previously it silently produced a trigger-less plist. Born from a real incident: a job looked alive for a month and never ran once.
Added to the RedSkills catalog.
Liked this skill? New breakdowns and updates land in the channel.