annotate
Build and verify a PII gold set with HUMAN annotators (first-class). Launch the browser annotator, label spans per the codebook,…
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)
$ npx -y skills add glebis/claude-skills --skill job-babysitter --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/job-babysitterContext preview
The summary Claude sees to decide when to auto-load this skill.
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)
name: job-babysitter description: 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.
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:
re-invokes the agent automatically — no manual polling loop needed.
detect plateau, distinguish done from stuck, emit a verdict JSON.
and **notification routing** — all in `references/playbook.md`.
Determine what can be watched, in order of reliability:
launch, `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.
e.g. `ffprobe` for media, count match for embeds), then proceed with the original task.
the recovery playbook: diagnose read-only FIRST. **Never kill or run destructive recovery (pkill, WAL checkpoint, VACUUM) without asking the user.**
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.
daemon restart. Diagnose read-only first.
imply a success the watcher did not observe.
a manual fast-polling loop.
verdict JSON. Stdlib only, Python 3.11+.
table, and notification routing. Load when picking watcher flags or handling a needs-attention/blocked verdict.
~100 skills for Claude Code — meeting pipelines, research, image generation, TDD, publishing, personal analytics, and Claude Code ops. Each skill is a self-contained folder with a SKILL.md; Claude triggers them from natural language.
Build and verify a PII gold set with HUMAN annotators (first-class). Launch the browser annotator, label spans per the codebook,…
De-identify a session transcript (file or folder) by redacting PII LOCALLY before any sharing or cloud use. Produces a redacted…
Run a corpus-scale, STATS-ONLY PII audit over a folder of session transcripts LOCALLY and produce an aggregate report — counts by…
Residual re-identification RISK CHECK on text you have ALREADY redacted (defensive, dual-use). Use when the user asks to "check…
Put the real values back into an analysis that was produced from GREEN (placeholder) text — LOCALLY, using the user's own…