mcpbeat

Verification

0xsline/verification

Use when checking whether agent edits are reflected in the OpenChatCut project and editor.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
778
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/0xsline/OpenChatCut --skill verification

The instruction itself

2 sections, as written by the author

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:

  • read_project for structure: assets, tracks, items, frame placement, timeline duration.
  • 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:

  • Read the final assistant response and every tool row created by the run.
  • Expand failed or warning rows and record the exact error.
  • Check for aborted turns, repeated retries, stale proposals, incomplete jobs,

and tool results that the final response incorrectly describes as successful.

  • Compare the latest read_project result with the visible timeline.
  • 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

How to use it

Copy the folder

Take 0xsline/verification from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.

Install what it needs

The instructions reference npx. Without those the skill loads but fails at the first command.