skills/job-babysitter/SKILL.md
This skill should be used to watch a long-running background job (ffmpeg/media encode, qmd or other embedding/vector-DB run, batch agent/LLM pipeline, or a real-browser/agent-browser daemon) until it finishes or wedges, then deliver a verdict (done, needs-attention, or blocked) plus the exact next command, without burning dozens of manual poll commands. Triggers on "babysit this job", "watch this until it's done", "ping me when the encode/embed/batch finishes", "is this background process stuck", "monitor this ffmpeg/qmd run", or any request to wait on a long-running process and be told when it's complete or hung.
npx skillsauth add glebis/claude-skills job-babysitterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Stop manually polling long-running background jobs. Instead of dozens-to-hundreds of
ls -lh / ps checks while guessing at completion, start one background watcher that
detects the terminal state via plateau heuristics, then routes a verdict — done,
needs-attention, or blocked — with the exact next command.
A night-shift nurse for background jobs: it checks vitals on a schedule and escalates only when something is actually wrong.
Use when a job will run long enough that babysitting it by hand wastes attention:
Do NOT use for jobs that finish in seconds, or where a single Bash call already
returns the result.
This skill orchestrates Claude Code's own primitives — do not reimplement them:
run_in_background: true. When it exits, the harness
re-invokes the agent automatically — no manual polling loop needed.scripts/watch_job.py) owns the deterministic part: poll with backoff,
detect plateau, distinguish done from stuck, emit a verdict JSON.references/playbook.md.Determine what can be watched, in order of reliability:
pgrep, or ps.Read references/playbook.md § "Completion heuristics by job type" to pick flags for
the specific job type (ffmpeg, embed, batch, browser).
Run with run_in_background: true. Always pass --pid when known; add file/log
signals as corroboration. Write the verdict to a known path.
scripts/watch_job.py \
--label "lab05 stream encode" \
--pid <PID> \
--output-file /path/to/output.mp4 \
--plateau-bytes 65536 --plateau-polls 5 --stuck-after 120 \
--max-wait 7200 \
--verdict-out /tmp/job-babysitter-<label>.json
The watcher prints a one-line JSON heartbeat per poll (tail it for live progress) and
writes the final verdict JSON to --verdict-out on exit.
Tuning lives in the playbook; sensible defaults: --interval 10 (backs off to 60),
--plateau-polls 4, --stuck-after 300, --max-wait 7200.
The harness re-invokes the agent when the background watcher finishes. Read the
verdict JSON. It has status ∈ {done, needs-attention, blocked}, a reason,
suggested_next, elapsed time, and final size.
ffprobe for media, count match for embeds), then proceed with the original task.--max-wait. Report honestly: "gave up
waiting" ≠ "failed". Offer to re-check or extend the ceiling.Default to in-session resume. If the user picked a channel (Telegram, voice/TTS,
desktop notification), route per references/playbook.md § "Notification routing".
Always include the status emoji, label, elapsed time, and the exact next command.
--stuck-after — the watcher already enforces this before returning needs-attention.pkill, kill, WAL checkpoint, VACUUM,
daemon restart. Diagnose read-only first.scripts/watch_job.py — background watcher: plateau detection, stuck-vs-done logic,
verdict JSON. Stdlib only, Python 3.11+.references/playbook.md — per-job-type completion heuristics, the safe-recovery
table, and notification routing. Load when picking watcher flags or handling a
needs-attention/blocked verdict.data-ai
--- name: disk-cleanup description: Scan and clean macOS caches, package-manager data, crash dumps, and app caches to reclaim disk space. Deterministic — a config registry (targets.json) plus two scripts (survey.py read-only, clean.py executor) do all the measuring and deleting; the agent only relays a compressed summary and makes the few human-judgment calls. IMPORTANT — use this skill whenever the user's request on macOS involves: freeing disk space, cleaning/clearing caches, "disk is full", "
development
Generate and edit images using Google's Gemini image generation models (Nano Banana family). Supports style presets, platform-specific sizing (YouTube/slides/blog), variants, image editing via inlineData, reference images for style transfer, and organized output with metadata. Default model is Nano Banana 2 (gemini-3.1-flash-image-preview). Key is auto-decrypted via SOPS.
development
--- name: agency-docs-updater description: End-to-end pipeline for publishing Claude Code lab meetings. Accepts optional args: date (YYYYMMDD, "yesterday", "today") and lab number (e.g. "04"). Examples: "yesterday 04", "20260420 05", "04" (today, lab 04), "" (today, auto-detect lab). --- # Agency Docs Updater Execute ALL steps automatically in sequence. Only pause if a step fails and cannot be recovered. Read `references/learnings.md` before starting for known pitfalls. **Configuration**: pat
tools
This skill should be used when applying proper typography to prose text or files in Russian, English, German, or French — smart quotes per locale («ёлочки», “curly”, „Gänsefüßchen“, « guillemets »), correct dashes (тире, em/en dash, Gedankenstrich, tiret), non-breaking spaces, ranges, ellipsis, and French espaces insécables before ! ? ; :. Fully deterministic via a pinned typograf-based CLI; never apply these rules by hand. Triggers on "типографика", "typograf", "оттипографь", "smart quotes", "fix typography", "неразрывные пробелы".