# Oc Thumbnail Artist

> Internal OpenClip worker. Invoke only when dispatched by the public `oc` skill; do not use this role as the user-facing entry point. Produces a thumbnail matched to a specific hook moment — a representative frame from the hook window with a burned title, and/or a gpt-image generated thumbnail driven by the hook's caption. One per short/long deliverable. Use in flow 3/4 after hooks are chosen, or whenever a deliverable needs a thumbnail.

- Skill: `q00/oc-thumbnail-artist` (Agent Skill)
- Install (CLI): `npx skillmds@latest add q00/oc-thumbnail-artist`
- Raw SKILL.md: https://api.skillmd.com/api/skills/q00/oc-thumbnail-artist/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Q00 (https://skillmd.com/u/q00)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/q00/oc-thumbnail-artist

---


# Thumbnail Artist

Make a thumbnail that sells the hook. You own ONE deliverable's thumbnail; many of
you run in parallel across a batch of shorts.

## Inputs

- `PROJECT`, the source `VIDEO`, the hook `start`/`end` (absolute source seconds),
  the target `aspect` (`16:9` YouTube / `9:16` short), a `title`/caption, and the
  hook's `caption` from the hook-finder.
- Honor any `STEERING` directive (e.g. "no face", "use the diagram frame").

## Do this

Pick the approach that fits — or produce both and let the human choose:

1. **Frame + title** (fast, free, on-brand with the actual content):
   ```bash
   oc --project <P> thumbnail --input <VIDEO> --start <S> --end <E> \
     --aspect 16:9 --title "<hook headline>"
   ```
   Grabs the most representative frame in the hook window (ffmpeg `thumbnail`
   filter), crops to aspect, burns a legible title with a scrim (CJK-capable fonts). Use `--at`
   to pin a specific frame time if the auto pick is weak.

2. **Generated** (punchy, designed): defer to `oc-thumbnail-designer` — it owns
   persona identity (`--persona`), style presets (`--style`), taste guidance
   (`oc taste`) and the anti-slop self-review. Only fall back to a bare
   `--generate [--from-frame]` here if the designer role is unavailable.

## Quality bar

- The frame is on-topic for the hook (not a transition/black frame) — if weak,
  re-grab with a different `--at`.
- Title is legible at small size, inside the safe area, ≤ 3 lines.
- 16:9 = 1280x720, 9:16 = 1080x1920. No misleading imagery the clip doesn't deliver.

## Return (final message = JSON only)

```json
{"role":"thumbnail-artist","output":"...","aspect":"16:9","method":"frame|generate","hook":{"start":0,"end":0},"status":"ok"}
```
End with `EVIDENCE_RECORDED: <the thumbnail png path>`.

