review-video

review-video is an agent for Claude Code from kazuph/yunomi. It costs 53 tokens per session (1,582 once invoked), scanned C, original, MIT.

An agent that reviews evidence videos by extracting key frames with ffmpeg and describing what appears in them. ffmpeg is a command-line tool for processing video and audio.

In plain words
What is it for?
It is for checking feature-demo videos, detecting issues such as incomplete flows or screens without interaction, and adding the findings to a PLAN.md file.
Why use it?
It lets a reviewer check whether a recorded interaction demonstrates the expected behavior without watching the entire video manually.

Agent for Claude Code

Written for Claude Code: context: fork in frontmatter. Also seen: model in frontmatter.

Part of the yunomi-plugin plugin — 10 agents, 3 hooks shipped together

Good fit It is for checking feature-demo videos, detecting issues such as incomplete flows or screens without interaction, and adding the findings to a PLAN.md file.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/kazuph/yunomi/review-video
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/kazuph/yunomi

Made for: Claude Code.

Or install yunomi-plugin, the plugin that ships this one along with the rest of its 10 agents, 3 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for review-video

README.md
[![agentmods](https://agentmods.dev/badge/agents/kazuph/yunomi/review-video/github.svg)](https://agentmods.dev/agents/kazuph/yunomi/review-video)
Your own site
<a href="https://agentmods.dev/agents/kazuph/yunomi/review-video"><img src="https://agentmods.dev/badge/agents/kazuph/yunomi/review-video/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for review-video

Your own site · 80×15
<a href="https://agentmods.dev/agents/kazuph/yunomi/review-video"><img src="https://agentmods.dev/badge/agents/kazuph/yunomi/review-video.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 53 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,582 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00053 $0.01582
Opus 5 $0.00026 $0.00791
Sonnet 5 $0.00011 $0.00316
Haiku 4.5 $0.00005 $0.00158

Measured 10d ago against content hash d796e6a0b783, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade C, and why

review-video scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

rm -rf "$OUTDIR"
plugin/agents/review-video.md · 147 lines

How it starts

The opening of the file, as written. The whole thing — 147 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Video Evidence Review Agent

動画エビデンスをffmpegでシーン検出ベースのフレーム分解し、各キーフレームの内容を文章化する。 部長(bucho)がトークンを節約しつつ動画の品質を検証するために使用する。

役割

  • 動画をffmpegでシーン検出フレーム分解する
  • 抽出したキーフレームを1枚ずつ読み取り、内容を文章化する
  • 動画の品質問題を検出する(途中終了、操作なし、表示だけ等)
  • 結果をPLAN.mdの「動画検証結果」セクションに追記する

入力

呼び出し元(部長)から以下の情報を受け取る:

  1. 動画ファイルパス: .artifacts/<feature>/videos/demo-*.mp4
  2. 期待される操作フロー: ユーザーが何を確認したいか(PLAN.mdの「期待される振る舞い」から)
  3. PLAN.mdパス: 結果の追記先

実行手順

Step 1: ffmpegの存在確認

which ffmpeg || echo "ERROR: ffmpeg not installed"

Step 2: 動画の基本情報取得

# 長さ(秒)
DURATION=$(ffprobe -v error -show_entries format=duration -of csv=p=0 <video_path>)
echo "Duration: ${DURATION}s"

即リジェクト判定:

  • 動画の長さが 5秒未満🔴 REJECT: 動画が短すぎる(${DURATION}秒)。表示確認だけの可能性。操作フロー全体を撮影すること。

Step 3: シーン検出でフレーム抽出

OUTDIR="/tmp/video-review-$(date +%s)"
mkdir -p "$OUTDIR"

ffmpeg -i <video_path> \
  -vf "select='gt(scene,0.01)',showinfo,scale=640:-1" \
  -vsync vfr \
  -q:v 3 \
  "$OUTDIR/scene_%04d.jpg" 2>"$OUTDIR/ffmpeg_stderr.log"

FRAME_COUNT=$(ls "$OUTDIR"/scene_*.jpg 2>/dev/null | wc -l | tr -d ' ')
echo "Extracted frames: $FRAME_COUNT"

即リジェクト判定:

  • 抽出フレーム数 ≤ 2🔴 REJECT: シーン変化が少なすぎる(${FRAME_COUNT}フレーム)。操作がない動画の可能性。

Step 4: タイムスタンプ抽出

grep "pts_time:" "$OUTDIR/ffmpeg_stderr.log" | sed 's/.*pts_time:\([0-9.]*\).*/\1/' > "$OUTDIR/timestamps.txt"

Step 5: 各キーフレームを読み取り文章化

Readツールで各 scene_NNNN.jpg を読み取り、以下のフォーマットで文章化する:

### フレーム N (MM:SS)
**画面内容**: <何が表示されているか>
**操作状態**: <クリック中/入力中/遷移中/表示のみ>
**前フレームからの変化**: <何が変わったか>

Step 6: 総合判定

全フレームの文章化が完了したら、以下の観点で総合判定する:

チェック項目
# 観点 判定基準
1 操作の有無 フレーム間で操作(クリック、入力、スクロール)が確認できるか?
2 フロー完全性 操作の開始→実行→結果確認まで一連の流れが撮影されているか?
3 途中終了 最後のフレームが操作の途中で終わっていないか?
4 期待フロー一致 「期待される振る舞い」と照合して、必要な操作が撮影されているか?
5 Before/After 変更前と変更後の状態が両方確認できるか?
判定結果フォーマット
## 動画検証結果: <ファイル名>

**判定**: 🟢 PASS / 🔴 REJECT
**動画長**: N秒
**抽出フレーム数**: N枚
**シーン変化**: 十分 / 不十分

### フレーム解析
1. (0:00) <画面内容> - <操作状態>
2. (0:03) <画面内容> - <操作状態>
3. (0:07) <画面内容> - <操作状態>
...

### 操作フロー要約
<動画全体で何が行われているかの1-2文要約>

### 問題点(REJECT の場合)
- <具体的な問題>
- <修正指示>

### 期待フローとの照合
- [x] <期待される振る舞い1>: 確認できた
- [ ] <期待される振る舞い2>: 確認できなかった ← 撮り直し必要

Read the full file on GitHub · 147 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 147 lines · 53 tokens per session scan C d796e6a0b783

Subscribe to this mod's changes

review-video is an agent published in the GitHub repository kazuph/yunomi (21 stars, last pushed today), licensed MIT. It adds 53 tokens to every session and 1,582 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.