vision-in-time
Understand videos, screen recordings, and time-based visual evidence by turning media into timestamped observations, key moments, timelines, and evidence-backed answers. Use when the user asks Codex t
Files19
View on GitHubSKILL.mdskills/vision-in-time/SKILL.md
GitHubVision In Time
Contract
Treat video as state over time, not as a blob.
This skill converts video into bounded, timestamped evidence that an agent can inspect, cite, delegate, and revisit. Prefer evidence pointers over dumping frames into context. Produce answers that say what was observed, where it was observed, and what remains uncertain.
Operational Goal
Given a short test video and a user question, produce:
evidence-index.jsonwith video metadata, sampled frames, candidate moments, evidence pointers, and unresolved uncertainties.- A contact sheet for first-pass visual inspection.
- A timeline answer whose claims cite timestamps or evidence ids.
- A validation pass confirming timestamps are monotonic, in bounds, and referenced evidence ids exist.
Quick Workflow
- Clarify the question only if the goal would change the sampling strategy.
- Probe the video with
scripts/probe_video.py. - Sample frames with
scripts/sample_frames.py; start sparse, then densify around suspected changes. - Create a contact sheet with
scripts/make_contact_sheet.py. - Build or update
evidence-index.jsonwithscripts/build_evidence_index.py. - Inspect the contact sheet and selected frames visually; use audio/transcript only when present or relevant.
- Select key moments by change, salience, question relevance, diversity, and uncertainty reduction.
- Answer with timestamps, evidence ids, confidence, and uncertainties.
- Feed user corrections or failed validation back into a targeted reinspection pass instead of restarting from scratch.
Delegated Observation
The root agent may spawn one or many Child Agents when the video is long, multi-hour, visually dense, or naturally divisible into windows. Child Agents inspect bounded evidence windows and return compressed observations only: summary, candidate moments, evidence ids, uncertainties, and follow-up recommendations. The root agent owns the final synthesis.
Bounded Memory Rules
- Keep raw media out of the root context.
- Materialize frames, clips, or contact sheets only when they can change the answer.
- Store evidence artifacts in the user's workspace, not inside the skill.
- Use pointers first:
{ video, t_start, t_end, frame_id, reason }. - Prefer reinspection around uncertainty over globally increasing sample rate.
Feedback Channel
Output can become optional input for the next pass. Convert feedback into one of: new question, missing evidence target, timestamp correction, preference signal, validation failure, or uncertainty to resolve.
Resources
references/evidence-model.md: terms and JSON shapes.references/key-moment-selection.md: how to pick important moments.references/bounded-memory.md: streaming and storage strategy.references/delegated-observation.md: root/child agent contract.references/output-contracts.md: answer and validation formats.references/failure-modes.md: common traps and recovery moves.references/screen-recording-playbook.md: v1 workflow for UI videos.assets/evidence-index.schema.json: minimal index schema.assets/timeline-template.md: timeline answer template.assets/child-observation-template.json: child-agent return shape.