/verification
Use when checking whether agent edits are reflected in the OpenChatCut project and editor.
$ npx -y skills add 0xsline/OpenChatCut --skill verification --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/verification
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when checking whether agent edits are reflected in the OpenChatCut project and editor.
SKILL.md
verification.SKILL.mdname: verification
description: Use when checking whether agent edits are reflected in the OpenChatCut project and editor.
Verification
Use the lowest verification level that proves the requested result:
| Level | Required evidence | |---|---| | L0 | Static checks such as the focused verification script, `npx tsc --noEmit`, tests, and build. | | L1 | A real Agent run against the editor at `localhost:5199`, followed by structural and rendered evidence. | | L2 | The packaged desktop app completing the user scenario, including human visual review where automation is insufficient. |
Runtime behavior changes require L0 + L1. Release and desktop-only changes also require L2 when the packaged app is the behavior under test.
Prefer two signals:
1. `read_project` for structure: assets, tracks, items, frame placement, timeline duration. 2. A visual capture path for rendered evidence at exact frames.
Use `view_timeline_frames` for composed timeline proof. This verifies the edited OpenChatCut timeline: trims, layers, captions, effects, markers, placeholders, crops, transitions, and layout.
For raw source-asset frame inspection, choose the cheapest path based on where the bytes live:
- The agent in this build has no local filesystem access; all source bytes live
in the project media store (`/media/uploads/`). Use `view_asset_frames` with the project asset id — the server takes an ffmpeg contact-sheet fast path automatically, so it is already the cheapest source-frame route.
- `view_timeline_frames` renders the composed timeline (the editor-truth check);
`view_asset_frames` samples raw source frames. Pick by what you are verifying.
- There is no separate `get_contact_sheet` tool in this build — the contact
sheet is what `view_asset_frames` / `view_timeline_frames` already return.
Use local/remote source-frame artifacts only for source understanding, moment selection, and rough trim decisions, not as edited output or timeline proof.
For local-only or upload-in-progress media, composed timeline proof may be blocked until the asset has bytes available to the renderer. Source-frame inspection via `view_asset_frames` still works as long as the asset's bytes are on disk (`/media/uploads/`).
If both visual proof paths are blocked, ask the user to inspect the OpenChatCut editor directly and note the blocker explicitly.
Useful checks:
- After import: `read_project({ "view": "assets", "assetId": "<prefix>" })`
- After move/trim: `read_project({ "view": "timeline" })`
- After visual overlay or MG on any timeline media: `view_timeline_frames({ "frames": [30, 45, 75] })`, then look at the returned frames.
- For user-requested source selection or visual moment picking: sample stills with `view_asset_frames` and inspect them. Use that only to choose source files, moments, and rough trims. Build the visible edit as OpenChatCut timeline items. Do not treat raw source inspection as timeline verification or as permission to produce the edited video elsewhere.
- For source-frame inspection: call `view_asset_frames({"assetId":"...","sourceTimesMs":[...]})` after `read_project({"view":"assets"})` confirms the asset id/type. Prefer this over asking the user to reattach the file.
- For local-only visual verification: upload/register cloud-readable media before relying on connector visual proof.
- For no-source validation: confirm the tool manifest exposed the parameters you used, then record the visible proof in the trace log.
When talking about seconds, verify the fps from `read_project` or use adapter tools that resolve fps internally.
When reporting a timeline item location, use only the latest `read_project` structure for track alias, item id, start, duration, and asset id. Do not report planned/default tracks or tool-call intent as verified placement.
Do not treat a command-line JSON response alone as sufficient when the user asks whether the editor reflects the result. Use the editor URL or visual proof when practical.
Real Agent transcript check
After every L1 Agent run, inspect the complete chat record before reporting success:
1. Read the final assistant response and every tool row created by the run. 2. Expand failed or warning rows and record the exact error. 3. Check for aborted turns, repeated retries, stale proposals, incomplete jobs, and tool results that the final response incorrectly describes as successful. 4. Compare the latest `read_project` result with the visible timeline. 5. For visual edits, inspect returned timeline frames rather than trusting the assistant summary.
A run with a correct-looking timeline but an unreported tool error is not a clean pass. Fix the cause or report the remaining error explicitly.
If verification fails, classify the gap before changing tools:
- tool description or schema was insufficient
- skill instructions were missing a step
- `read_project` did not expose enough state
- editor authorization did not complete
- media/transcription pipeline failed
- cloud render/editor observation was blocked
Read more
name: verification description: Use when checking whether agent edits are reflected in the OpenChatCut project and editor.
Verification
Use the lowest verification level that proves the requested result:
| Level | Required evidence | |---|---| | L0 | Static checks such as the focused verification script, `npx tsc --noEmit`, tests, and build. | | L1 | A real Agent run against the editor at `localhost:5199`, followed by structural and rendered evidence. | | L2 | The packaged desktop app completing the user scenario, including human visual review where automation is insufficient. |
Runtime behavior changes require L0 + L1. Release and desktop-only changes also require L2 when the packaged app is the behavior under test.
Prefer two signals:
1. `read_project` for structure: assets, tracks, items, frame placement, timeline duration. 2. A visual capture path for rendered evidence at exact frames.
Use `view_timeline_frames` for composed timeline proof. This verifies the edited OpenChatCut timeline: trims, layers, captions, effects, markers, placeholders, crops, transitions, and layout.
For raw source-asset frame inspection, choose the cheapest path based on where the bytes live:
- The agent in this build has no local filesystem access; all source bytes live
in the project media store (`/media/uploads/`). Use `view_asset_frames` with the project asset id — the server takes an ffmpeg contact-sheet fast path automatically, so it is already the cheapest source-frame route.
- `view_timeline_frames` renders the composed timeline (the editor-truth check);
`view_asset_frames` samples raw source frames. Pick by what you are verifying.
- There is no separate `get_contact_sheet` tool in this build — the contact
sheet is what `view_asset_frames` / `view_timeline_frames` already return.
Use local/remote source-frame artifacts only for source understanding, moment selection, and rough trim decisions, not as edited output or timeline proof.
For local-only or upload-in-progress media, composed timeline proof may be blocked until the asset has bytes available to the renderer. Source-frame inspection via `view_asset_frames` still works as long as the asset's bytes are on disk (`/media/uploads/`).
If both visual proof paths are blocked, ask the user to inspect the OpenChatCut editor directly and note the blocker explicitly.
Useful checks:
- After import: `read_project({ "view": "assets", "assetId": "<prefix>" })`
- After move/trim: `read_project({ "view": "timeline" })`
- After visual overlay or MG on any timeline media: `view_timeline_frames({ "frames": [30, 45, 75] })`, then look at the returned frames.
- For user-requested source selection or visual moment picking: sample stills with `view_asset_frames` and inspect them. Use that only to choose source files, moments, and rough trims. Build the visible edit as OpenChatCut timeline items. Do not treat raw source inspection as timeline verification or as permission to produce the edited video elsewhere.
- For source-frame inspection: call `view_asset_frames({"assetId":"...","sourceTimesMs":[...]})` after `read_project({"view":"assets"})` confirms the asset id/type. Prefer this over asking the user to reattach the file.
- For local-only visual verification: upload/register cloud-readable media before relying on connector visual proof.
- For no-source validation: confirm the tool manifest exposed the parameters you used, then record the visible proof in the trace log.
When talking about seconds, verify the fps from `read_project` or use adapter tools that resolve fps internally.
When reporting a timeline item location, use only the latest `read_project` structure for track alias, item id, start, duration, and asset id. Do not report planned/default tracks or tool-call intent as verified placement.
Do not treat a command-line JSON response alone as sufficient when the user asks whether the editor reflects the result. Use the editor URL or visual proof when practical.
Real Agent transcript check
After every L1 Agent run, inspect the complete chat record before reporting success:
1. Read the final assistant response and every tool row created by the run. 2. Expand failed or warning rows and record the exact error. 3. Check for aborted turns, repeated retries, stale proposals, incomplete jobs, and tool results that the final response incorrectly describes as successful. 4. Compare the latest `read_project` result with the visible timeline. 5. For visual edits, inspect returned timeline frames rather than trusting the assistant summary.
A run with a correct-looking timeline but an unreported tool error is not a clean pass. Fix the cause or report the remaining error explicitly.
If verification fails, classify the gap before changing tools:
- tool description or schema was insufficient
- skill instructions were missing a step
- `read_project` did not expose enough state
- editor authorization did not complete
- media/transcription pipeline failed
- cloud render/editor observation was blocked
Open-source, local-first conversational AI video editor with a professional multi-track timeline, Agent Skills, MCP integration, and Remotion rendering.
Repo: 0xsline/OpenChatCut
Other skills on openchatcut.
- /openchatcut
Connect an MCP-capable coding agent to OpenChatCut and edit local video projects. Use when the user asks to install, connect, or set up OpenChatCut; inspect or edit an OpenChatCut project; work with its timeline, transcript, captions, media, generation, motion graphics, audio,
Open skill - /ai-cinematic-short-film
Plan AI short films with story, shots, prompts, and continuity.
Open skill - /asset-import
Use when acquiring or importing media into a OpenChatCut project asset library for video editing or creation, including local/attached videos, user-provided paths, public media URLs, web video/audio/image assets, upload fallback decisions, and deciding between import_media,
Open skill - /create-motion-graphics
Use whenever the agent needs to add, create, hand-author, patch, or place Motion Graphic JSX assets in a OpenChatCut project. This is the direct-authoring path: use create_motion_graphic_from_code / edit_asset / edit_item, not motion-graphic-gen or submit_motion_graphic. Covers
Open skill - /explainer-video
Create finished explainer videos from a topic, script, outline, voiceover, product logic, data, technical concept, course material, or reference assets. Use when the user wants narration, motion graphics, stock footage, generated visuals, or mixed visuals to explain an idea.
Open skill - /export
Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.
Open skill

