MUST USE when source footage or a material folder is provided and material understanding or 03_analysis generation is needed. Trigger not only on explicit analysis requests ('分析して', '素材を見て') but also when the user points at footage and says things like 'この動画で', 'この素材で', or any request that requires understanding the provided media before planning or editing.
full-pipeline
Use when the user wants an end-to-end run from source footage to a rough cut or final packaged video, or asks "素材から動画を作って", "全自動で", "編集して", or "粗編集を作って". Prefer the official full-pipeline entrypoint, then fall back to individual stage Skills for recovery.
含まれるファイル(3)
- SKILL.md13.3 KB
- references/gate-conditions.md8.0 KB
- references/recovery-playbook.md6.7 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
full-pipeline
いつ使うか(必ず発火する条件)
- ユーザーが「素材から動画を作って」「全自動で」「編集して」「粗編集を作って」と言ったとき
- rough cut まで、または final package までを途中 stage を跨いで進めたいとき
- 既存 project に artifact はあるが、「途中から再開して」「続きから直して」と言われたとき
このスキルは orchestration 専用。 通常は repo 公式の単一エントリ npm run full-pipeline -- --project <id> --source-dir <dir> を使う。失敗時や部分再実行だけ、既存 stage Skill を Gate 付きでつなぐ。
実行可能契約
- Manifest:
.agents/skills/agent-skill-contracts.json - Commands:
npm run full-pipeline -- --project <project-id> --source-dir <source-dir>,npx tsx scripts/analyze.ts,npx tsx scripts/editorial-agent-task.ts,npx tsx scripts/compile-timeline.ts,npm run render-route,npm run package - Public flags:
--project,--source-dir,--content-hint,--lyrics,--timing-plan,--from,--skip-analyze,--skip-footage-db,--skip-render,--skip-qa,--no-qwen3vl,--no-clap-audio,--help - Resume stages:
ingest,stt,marlin,visual-quality,peak,embeddings,triage,blueprint,compile,render,QA
上記は生成manifestと契約テストで検証される。analyze-footage など個別stageの
フラグを、公開 full-pipeline CLIのフラグとして扱わないこと。
前提条件
- この repo の正式デフォルトは
npm run full-pipeline。内部では既存のanalyze -> build-footage-db -> editorial-pipelineの意味論を保ったまま連結する - 実行中は staged progress / ETA を表示し、実測時間を
03_analysis/pipeline-timings.jsonに追記する - 次回実行では
pipeline-timings.jsonを優先して ETA を出し、履歴が無い stage はsegments.jsonのセグメント数から粗く見積もる。どちらも無ければ計測中と表示する - 開始前に
references/gate-conditions.mdを読むこと - 失敗時や再実行時は
references/recovery-playbook.mdを読むこと - Gate 番号は full-pipeline 用の orchestration 定義であり、runtime の内部 gate 名とは 1 対 1 ではない
- Gate 1 は実質
analysis_gate - Gate 3 は実質
compile_gate - Gate 5 の後ろで
planning_gateも確認する - Gate 7 は実質
review_gate - Gate 9-10 は
packaging_gateとcheckGate10()に対応する
- Gate 1 は実質
- 進行判断は「一番下流の file があるか」ではなく「最も早く失敗した Gate はどこか」で決める
やること(ステップ)
Step 0: ゴールと再開地点を決める
- まず user が rough cut (
06_review/*まで) を欲しいのか、final package (07_package/*まで) を欲しいのかを切り分ける - fresh run で source dir があるなら、既定では次を使う:
npm run full-pipeline -- --project <project-id> --source-dir <source-dir> --content-hint "<hint>"
- 既存 project の途中再開なら、失敗 stage に応じて
--from <stage>、または下記 Gate に対応する個別 skill / CLI を使う - つぎに Gate 10 から Gate 0 へ逆順で artifact を点検し、最初に失敗する Gate を再開地点にする
- 既存 artifact があっても upstream が変わっていれば stale とみなす。
runtime/state/reconcile.tsの invalidation matrix に従い、以下のように巻き戻す- brief または analysis が変わったら
select-clipsからやり直す - selects または
STYLE.mdが変わったらbuild-blueprintからやり直す - blueprint が変わったら
compile-timelineからやり直す - timeline または
human_notes.yamlが変わったらreview-roughcutをやり直す caption_approval.json、music_cues.json、qa-report.jsonが変わったら package artifact をやり直す
- brief または analysis が変わったら
- BGM希望時はBGM Pack Registryとレビュー済みライブラリを先に使う。利用可能曲がなければ人間レビューへ回し、案件内で通常BGMを手続き生成して穴埋めしない。例外は明示的な短い
simple_soundのみ。 - 複数尺・複数比率を同時制作する場合は、納品物ごとに brief / variant contract を分ける。長尺の
original_onlyやBGMなし判断を短尺へ、短尺のaggressive hookを長尺へ暗黙継承しない。
Step 1: Gate 0 を確認する
- fresh run なら素材ファイルまたは素材フォルダが存在することを確認する
- resume で Gate 1 以降の artifact が valid なら、raw media を再解析しない限り Gate 0 は再通過扱いでよい
- Gate 0 が落ちたら進めない。正しい素材パスを確定してから再開する
Step 2: Gate 1 を通す
03_analysis/assets.jsonと03_analysis/segments.jsonが無い、壊れている、または stale ならanalyze-footageを使うgap_report.yamlの blocking な欠落でqc_statusがblockedなら先に analysis をやり直すqc_statusがpartialの場合、matching なanalysis_overrideがあるときだけ後続に進める- API key や外部推論が足りない場合は、個別
analyze-footageCLI にある--skip-stt、--skip-vlm、--skip-diarize、--skip-peakだけを使って degraded path を明示する。これらは公開full-pipelineCLI のフラグではない
Step 3: Gate 2 と Gate 3 を通す
creative_brief.yamlが無い、schema invalid、または stale ならdesign-intentを使うunresolved_blockers.yamlにstatus: blockerがあれば Gate 3 失敗。勝手に compile に進まない- blocker を消す場合は
design-intentを再実行して brief / blockers を更新する - 仮置き assumption で進める場合も、user 合意を取ったうえで blocker 側に反映してから進む
Step 4: Gate 4 を通す
04_plan/selects_candidates.yamlが無い、schema invalid、candidate が 0 件、または brief / analysis 更新で stale ならselect-clipsを使う- referential integrity まで含めて通す。
segment_id/asset_idが analysis artifact に存在しないならやり直す
Step 5: Gate 5 を通す
04_plan/edit_blueprint.yamlが無い、schema invalid、または stale ならbuild-blueprintを使う- さらに
04_plan/uncertainty_register.yamlを確認し、status: blockerが残るなら planning blocker とみなして止める - blueprint file が存在しても uncertainty blocker がある状態では、そのまま review / package まで自動で進めない
Step 6: Gate 6 を通す
compile-timelineを使って05_timeline/timeline.jsonを作る- compile 後は必ず post-compile validation を見る。
timeline.jsonが schema invalid なら Gate 6 失敗 - brief / user feedback がタイトル、章ラベル、質問カード、強調語、lower third
などの設計済みグラフィックを要求する場合、それらを
timeline.jsonの overlay clip に登録済みcontent-element/v1として記録する。プロジェクト固有の JSX / HTML / 別タイムラインを作らない - blueprint beat に
viewer_labelがある場合、HyperFrames/Remotionの章ラベル本文には 構造用labelではなくviewer_labelを使う。HOOK/LEVEL 1/PAYOFF/ENDINGのような内部設計語を、briefの明示指定なしに画面表示へ流用しない - content element を追加したら
npm run render-route -- projects/<project-id>を実行し、 必要な Remotion / HyperFrames ownership が選ばれていることを Gate 7 前に確認する。 要素がないのにSNSジャンルという理由だけで Remotion を強制しない - 失敗時は compile error をそのまま downstream patch でごまかさず、
references/recovery-playbook.mdに従って upstream stage に戻る
Step 7: Gate 7 を通す
review-roughcutを使って06_review/review_report.yamlとreview_patch.jsonを作るtimeline.jsonが変わった直後の review は省略しないfatal_issuesが 1 件でもあれば Gate 7 失敗。package には進まない
Step 8: Gate 8 を通す
review_patch.jsonに safe op があるならcompile-timelineの patch mode で適用する- patch 後は
timeline.jsonを再検証し、必ずreview-roughcutを再実行する - patch が empty、unsafe、または compile 後 schema invalid の場合は Gate 8 失敗。report の root cause に従って
build-blueprintかselect-clipsに戻る
Step 9: Gate 9 を通す
-
authored lyrics のプロジェクトは、
--lyricsの本文を唯一の text authority としてcaptiondraft を作り、caption_preview.jsonを人間に提示する。 -
caption -- approve --approved-by <human>の明示承認と C1 projection が完了するまで review/render へ進めない。STT/music は timing evidence に限る。 -
user が rough cut だけを求めているなら Gate 7 または Gate 8 で止める
-
final output が必要なら
references/gate-conditions.mdの Gate 9 前提を確認する -
speech caption はジャンルを問わず semantic caption timing を確認する
caption_policy.semantic_timing.mode: speech_syncを基本とし、字幕cue全体が発話 onset より 大きく先行しないようにする。読みやすさのための微先行は既定で最大2フレーム- オチ・驚き語・結果語がある場合だけ
mode: protect_revealsに上げ、anchor_textを setup から分離して、word onset から既定1フレーム後に出す - anchor は word timing、発話冒頭、明示
source_start_us/timeline_frameのいずれかで 根拠を持たせる。文字数比例で時刻を推測しない caption_timing_report.jsonに block がある、または caption review にunresolved_reveal_anchorがある場合は承認・burn-in・Remotion renderへ進まない- インタビュー、講義、アクセシビリティ字幕にも
speech_syncは適用するが、 音声後へ一律遅延はしない。protect_revealsと分割は明示anchorがある場合だけに限定する
-
特に operator accept または creative override を経た
approvedstate、handoff decision、caption / music prerequisite、engine_renderならassembly.mp4、nle_finishingなら supplied final の有無を確認する
Step 10: Gate 10 を通す
- Gate 9 が通ったら
render-videoを使う qa-report.jsonが fail なら packaged に進めない。失敗した QA 項目を直して Gate 9 からやり直すengine_renderではaudio-mix-report.jsonが存在し、audio_mix_policy_validとloudness_target_validがpassしていることを確認するpackage_manifest.jsonとqa-report.jsonが揃い、QA が pass して初めて完了扱いにする- Studio確認またはPremiere handoffを行う場合は
playback-contract-statusがexactであることも確認する。timeline更新後の古いpreviewを完成物として開かない
進捗 / ETA
- 表示形式は
[3/10] triage 実行中... 経過 1m32s / 推定残り ~4m (全体 ~7m)を基準にする - TTY では同じ行を更新し、非 TTY ではログ行として追記される
- stage は
ingest,stt,marlin,visual-quality,peak,embeddings,triage,blueprint,compile,render,QA 03_analysis/pipeline-timings.jsonは履歴 artifact。削除せず、次回 ETA の材料として扱う- エラー時は失敗 stage 名、次に試す再実行コマンド、
troubleshoot-errorskill への誘導を表示する
出力 artifact
01_intent/*03_analysis/*04_plan/*05_timeline/*06_review/*- 条件が揃っていれば
07_package/* - renderをskipしなければ
09_output/rough-cut.mp4
注意事項
scripts/editorial-agent-task.ts --mode interactiveを使う場合、rough/fine prompt出力時点は応答待ちであり完了ではない。応答適用後は共有downstreamで compile/render/QA/statusまで進み、--skip-qa時はQA_SKIPPEDblockerを残す- current repo の
review.mp4は placeholder で、実 preview render ではない - final render は
assembly.mp4前提なので、timeline.jsonだけではfinal.mp4まで進めない - programmable graphics の authority も
timeline.json。remotion-social/entry.tsxのような project-local renderer を完成物の再現経路にしない - Gate 7 や Gate 8 が落ちたときは、無理に patch を盛るより earliest failing gate へ戻る
- user が「全自動」と言っても、Gate 3 の blocker 解消や Gate 10 の handoff decision のような human decision は残る
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Use when selects_candidates.yaml exists and the user asks to design structure, build an edit blueprint, or create 04_plan/edit_blueprint.yaml.
日本語の概要は準備中です。原文の説明を表示しています。
Use when edit_blueprint.yaml and selects_candidates.yaml are ready and the user asks to compile the rough cut, generate timeline.json, or apply a review patch.
日本語の概要は準備中です。原文の説明を表示しています。
MUST USE when the user asks to crop, reframe, trim, or improve composition of still photos, especially selected event photos, album photos, portraits, speakers, panels, workshops, or group photos. Use after photo selection or correction when the task is composition improvement rather than selecting images.
日本語の概要は準備中です。原文の説明を表示しています。
MUST USE when starting a new video project, when the user provides footage and asks to edit/create a video, or when 01_intent/creative_brief.yaml does not yet exist. This skill interviews the user to understand their intent before any editing begins. Never skip this step.
日本語の概要は準備中です。原文の説明を表示しています。
Use after changing prompts, skills, the compiler, or editorial policies — or when the user asks to measure edit quality, run regression evals, check agreement with approved edits, or says '評価して', '一致率を測って', 'eval を回して'. Compares agent output against human-approved golden projects.