calesthio/video-description-oversight
Provider-independent governance workflow for verifying and correcting human- or model-generated video descriptions. Use for pre-caption critique and post-caption revision, aspect-by-aspect factual review, critique precision/recall/constructiveness, second-stage peer review, calibration, appeals, versioned triplets, provenance, and acceptance reporting; not for pixel/audio QA, accessibility captioning, model training, or creative shot direction.
npx skills add https://github.com/calesthio/generative-media-skills --skill video-description-oversight
Use this skill when language about a video must be accepted as evidence-quality metadata rather than plausible prose. It governs a correction loop:
source video + specification + pre-caption
-> evidence-backed critique
-> revised post-caption
-> independent acceptance review
-> versioned triplet and decision record
The reviewer verifies what language says about media. Technical file integrity, visual artifact QA, accessibility captions, creative intent, and model post-training belong elsewhere.
The workflow is informed by Lin et al.'s CHAI framework, which reports that critiques used to revise precise video captions are most useful when accurate, complete, and constructive. Sources were verified 2026-07-14. CHAI's performance numbers are first-party research results on its data and annotator program, not universal service-level guarantees.
Use this skill for descriptions used in:
Route elsewhere for:
The workflow requires a description specification. If none exists, establish one through precise-video-description before grading completeness or terminology.
Collect:
Do not let a reviewer critique video they cannot access. A text-only “blind critique” cannot establish visual accuracy.
Before detailed review, decide:
Record the reason. Do not force a critique workflow onto an unusable source/caption pair.
Use the project's precise-description contract rather than intuition.
Check entity count, stable identifiers, visible attributes, pose, relationships, entry/exit, and unverified identity/demographic inference.
Check setting, time/weather evidence, overlays versus physical objects, transitions, and unsupported mood/theme claims.
Check action verbs, actors/targets, temporal order, simultaneous activity, contact, direction, and causal overstatement.
Check shot size, frame position, depth, overlap/occlusion, start/end framing, and subject-relative versus frame-relative direction.
Check translation versus rotation, zoom versus movement, angle/height/roll, focus changes, steadiness, playback effects, edit transitions, and fabricated technical settings.
Review at normal speed and frame-level around disputed events. Each finding must include a locator or bounded interval where possible.
Every critique must pass three independent gates:
Every finding is real and supported by visible evidence/specification. Do not add a plausible correction that the video does not establish.
All consequential errors and omissions within the agreed scope are covered. Recall is not maximal verbosity; trivial details outside the contract can remain omitted.
Each finding says how to repair the caption: replace, add, delete, reorder, qualify, or mark uncertain. “This is wrong” is not a usable correction.
Recommended finding shape:
{
"aspect": "camera",
"time_range": ["00:02.100", "00:04.800"],
"error_type": "incorrect-term",
"caption_claim": "the camera zooms in",
"evidence": "foreground/background parallax increases while field of view appears stable",
"correction": "replace with 'the camera moves forward'",
"severity": "major",
"reviewer_id": "reviewer-17",
"spec_version": "video-language-2.1"
}
This is an example schema. It must not contain invented confidence scores. Separate observed evidence from the proposed wording.
Do not invent feedback to prove that review occurred. If no corrections are required, record an explicit sentinel such as:
The description matches the reviewed source and specification; no edits are required.
An “accurate” decision still needs review scope, asset/version, reviewer, date, glossary/specification version, and any unreviewed lanes.
The author/model revises from the accepted critique. Preserve all versions; never overwrite the pre-caption.
Second-stage acceptance asks:
The accepting reviewer should be different from the first reviewer for high-risk or dataset use. Lower-risk internal work may use calibrated spot review according to a documented policy.
Define severity from downstream consequence, not word count:
Possible dispositions: accepted, accepted_with_limitations, revise, reject, escalate, blocked.
Do not mechanically waive privacy, consent, safety, or material factual errors.
Use gold examples and periodic blind calibration. Track agreement by aspect because a team may agree on Subject/Scene while failing on Spatial/Camera.
When reviewers disagree:
Do not impose a universal kappa threshold, daily review quota, compensation scheme, or expertise ladder. CHAI used a highly trained professional pipeline; teams with different content or reviewers must establish their own validated calibration criteria.
Preserve:
The (pre-caption, critique, post-caption) triplet can become a valuable dataset asset, but production permission does not automatically grant model-training permission. Create a datasheet and confirm source-video, caption, reviewer, and derivative-data rights before reuse.
C2PA or signed records can support provenance; they do not prove that a caption is true.
Detailed video descriptions may expose identity, location, private behavior, screens, health/financial details, or copyrighted story content. Minimize access, use pseudonymous reviewer IDs, define retention/deletion, separate public output from private review metadata, and audit exports.
Match reviewers to domain/language complexity. Cinematography expertise does not imply medical or cultural expertise; language fluency does not guarantee camera-motion discrimination. CHAI's findings came from trained professional creators and predominantly professional video domains. Do not assume equivalent results from untrained crowdworkers, multilingual auto-translation, long-form footage, or specialized domains.
Track trends rather than optimizing one number:
High critique volume can indicate either poor sources or overcritical reviewers. Audit evidence before drawing conclusions.
This is a complete example, not a mandatory formula.
Source: six-second kitchen shot. Pre-caption claim: “The camera zooms in on the woman as she glances to the right.”
Evidence review: background/foreground parallax changes, supporting forward camera translation; the woman looks toward frame-right, but whether that is her left/right is not needed. Focus remains on her eye.
Critique: “Camera, 00:02.0-00:05.0: replace ‘zooms in’ with ‘moves forward’ because the viewpoint translates and parallax changes rather than only the field of view. Spatial/Motion: keep ‘looks toward frame-right’; do not convert it to the subject's right without evidence. The remaining subject and scene description is accurate.”
Post-caption: “In a dim kitchen, the camera moves smoothly forward toward a woman as she raises her gaze toward frame-right; focus remains on her near eye.”
Acceptance: second reviewer confirms correction, no new claims, and records the exact source/spec versions.
Failure to avoid: “The caption is wrong about camera motion.” It lacks the supported replacement and is non-constructive.
This is a complete example, not a mandatory formula.
Pre-caption: “A knight runs through a level while the camera follows.”
Reviewed scope: all five aspects for dataset metadata.
Findings:
Constructive critique: provides each replacement/addition and preserves uncertainty. Post-caption: incorporates all five without claiming world speed or exact lens. Disposition: accepted after second review.
Failure to avoid: adding speculative game title, character name, player intent, or “dynamic exciting atmosphere.”
Verified 2026-07-14:
Take calesthio/video-description-oversight from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.