{"id":51430078,"url":"https://github.com/mocchalera/video-os-v2","last_synced_at":"2026-07-05T03:03:14.114Z","repository":{"id":346124543,"uuid":"1188541623","full_name":"mocchalera/video-os-v2","owner":"mocchalera","description":"RoughCut Agent — Autonomous video editing agent that runs intent → analysis → triage → blueprint → compile → review in one shot","archived":false,"fork":false,"pushed_at":"2026-06-22T00:42:53.000Z","size":23933,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"Dev","last_synced_at":"2026-06-22T02:30:24.932Z","etag":null,"topics":["ai-agent","autonomous","claude-code","ffmpeg","hackathon","typescript","video-editing"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mocchalera.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-22T08:19:02.000Z","updated_at":"2026-06-22T00:42:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mocchalera/video-os-v2","commit_stats":null,"previous_names":["mocchalera/video-os-v2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mocchalera/video-os-v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocchalera%2Fvideo-os-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocchalera%2Fvideo-os-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocchalera%2Fvideo-os-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocchalera%2Fvideo-os-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mocchalera","download_url":"https://codeload.github.com/mocchalera/video-os-v2/tar.gz/refs/heads/Dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mocchalera%2Fvideo-os-v2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35141967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","autonomous","claude-code","ffmpeg","hackathon","typescript","video-editing"],"created_at":"2026-07-05T03:03:06.950Z","updated_at":"2026-07-05T03:03:14.059Z","avatar_url":"https://github.com/mocchalera.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RoughCut Agent\n\n素材フォルダと一言の依頼から、解析・検索・粗編集・レンダー・QA 改善まで進める映像編集エージェント。\n\n![RoughCut Agent](docs/images/demo-00-intro.jpg)\n\n## このプロジェクトについて\n\nRoughCut Agent は、映像素材から意図整理、素材解析、マルチモーダル検索、構成設計、粗編集、レンダー、QA 改善ループまでを artifact-driven に進める映像編集エージェントです。\n\nMarlin-2B が映像を見て、Qwen3-VL / CLAP / E5 が素材を検索し、Claude/Codex が evidence を引用しながら rough / fine pass を作り、deterministic compiler が同じ入力から同じ `timeline.json` を再現します。\n\n現在は複数プロジェクトの検証を通じて、`footage.db`、`timeline.json`、`render-report.json`、QA レポートなどの実 artifact を見ながら品質を上げる設計に寄せています。\n\nPremiere Pro との FCP7 XML ラウンドトリップにも対応しており、AI が作った rough cut を NLE で微調整して戻せます。\n映像クリエイターや、素材探しから粗編集の手戻りまでを短くしたい人向けのリポジトリです。\n\n## 特徴\n\n- 自律パイプライン: `intent -\u003e analysis -\u003e footage DB -\u003e retrieval -\u003e rough/fine planning -\u003e compile -\u003e render -\u003e QA loop`\n- 3 モダリティ検索: Qwen3-VL visual 2048-dim、E5/Qwen text 384/2048-dim、CLAP audio 512-dim を同じ検索レイヤで扱う\n- マルチモーダル footage DB: SQLite + FTS5 + `embedding_models` + `segment_embeddings` で、モデル ID / 次元 / runner / preprocess を追跡\n- Visual pre-selection retrieval: brief の visual intent から Qwen3-VL hybrid search を走らせ、rough pass の prompt に evidence を注入\n- Audio pre-selection retrieval: brief の audio intent から CLAP hybrid search を走らせ、音の質感・環境音・ムードの候補を prompt に注入\n- Marlin-2B primary VLM: Apple Silicon / ローカル worker で video-native な scene / event / peak analysis を実行\n- VLM ピーク検出: Progressive Resolution（`contact sheet -\u003e filmstrip -\u003e precision`）と Marlin event を使って、編集上おいしい瞬間を候補化\n- `content-hint` CLI: `--content-hint` で VLM に文脈情報を渡し、認識精度を補強\n- Scene continuity ordering: timestamp clustering と Qwen visual coherence による greedy chain で、同一シーンや見た目のつながりを保つ\n- QA auto-improvement loop: `render -\u003e Marlin QA -\u003e brief alignment -\u003e issue detection -\u003e fix proposal -\u003e apply -\u003e recompile -\u003e rerender` を最大 3 iteration で実行\n- Render duration accounting: expected / actual render duration、gap、xfade overlap、source clamp を `render-report.json` で検証\n- 編集技法の自動選択: Transition Skill Cards + Adjacency Analyzer + Walter Murch の Rule of Six\n- BGM ビートシンク: カットポイントを beat / downbeat にスナップ\n- Duration Mode: `strict` / `guide` を creative brief と profile から解決。`guide` は VLM peak 保護を優先\n- Premiere Pro ラウンドトリップ: FCP7 XML export / import、UXP Watcher、diff engine を実装\n- アスペクト比自動対応: 最頻アスペクト比を推定し、`letterbox` / `pillarbox` を判定\n- 時系列順コンパイル: `keepsake` / `event-recap` 系は chronological order を選択可能\n- Schema 駆動 + Gate 制御: canonical artifacts を validate しながら進行\n- Full Autonomy Mode: `autonomy.mode: full` で brief 確定後の確認ゲートを自動通過し、粗編集まで自走\n- ローカル推論 / 埋め込み実行: Qwen3-VL、CLAP、E5、Marlin はローカル実行を前提にし、外部 embedding API は不要\n- Fail-open: Qwen / CLAP / Marlin のローカルモデルが無い場合も、既存の E5 / FTS / deterministic path を壊さない\n\n## クイックスタート\n\n### 1. インストール\n\n```bash\nnpm install\n```\n\n### 2. 環境変数とローカルモデルを用意\n\n```bash\ncp .env.example .env.local\n```\n\n`.env.local` は Git 管理対象外です。公開 issue や PR に API キー、素材ファイル、生成済み動画を含めないでください。\n\n埋め込み検索はローカルモデルで動くため外部 API キーは不要です。Gemini / Groq / OpenAI / pyannote などの外部解析を使う場合だけ、対応するキーを `.env.local` に設定してください。\n\nQwen3-VL と CLAP は任意ですが、現在の推奨フローでは有効化します。smoke test は Python venv を作り、ローカル cache にある model weight だけを使います。\n\n```bash\nbash scripts/smoke-test-qwen3vl.sh\nbash scripts/smoke-test-clap.sh\n```\n\nローカル model cache がまだ無い場合、smoke test は失敗します。その場合も E5 / FTS5 中心の検索と deterministic compile は継続できます。\n\n### 3. デモを実行\n\n```bash\nnpm run demo\n```\n\n出力例:\n\n```text\n─────────────────────────────────────────────────\n  RoughCut Agent — Demo (deterministic compile)\n─────────────────────────────────────────────────\n\n[1/3] Reading artifacts from projects/demo/...\n  - creative_brief.yaml   (intent)\n  - selects_candidates.yaml (candidates)\n  - edit_blueprint.yaml   (structure)\n\n[2/3] Running deterministic compiler (Phase 0.5 → 5)...\n  Phase 0.5  Duration policy resolved\n  Phase 1    Blueprint normalized\n  Phase 2    Candidates scored\n  Phase 3    Multi-track assembly\n  Phase 4    Constraints resolved\n  Phase 5    Timeline exported\n\n[3/3] Compilation results:\n\n  Duration mode:    guide\n  Target:           28.0s\n  Compiled:         28.6s\n  Duration fit:     YES\n  Overlaps fixed:   0\n  Duplicates fixed: 0\n  Invalid ranges:   0\n  Output:           projects/demo/05_timeline/timeline.json\n\n  Timeline: \"Mountain Reset\"\n  Tracks:   2 video + 3 audio\n  Clips:    14 total\n\n  Pre-generated review (from roughcut-critic):\n  Judgment:    needs_revision\n  Confidence:  0.82\n  Strengths:   2\n  Weaknesses:  2\n  Fatal:       0\n\n─────────────────────────────────────────────────\n  Demo complete. Explore projects/demo/ to see all artifacts.\n─────────────────────────────────────────────────\n```\n\n### 4. プロジェクトを初期化\n\n```bash\nnpx tsx scripts/init-project.ts my-project --source-dir /path/to/footage\n```\n\n`projects/_template/` を元に `projects/my-project/` を作成し、`project_id` を埋めます。`--source-dir` を付けると `projects/my-project/02_media/source` に素材フォルダへのシンボリックリンクを作成します。\n\n### 5. 自分の素材を解析\n\n```bash\nnpx tsx scripts/analyze.ts \\\n  projects/my-project/02_media/source/* \\\n  --project projects/my-project \\\n  --content-hint \"子どもの自転車練習\"\n```\n\n必要に応じて glob を `*.mp4` や `*.MOV` に狭めてください。`--source-dir` を使わずに初期化した場合は、`projects/my-project/02_media/source/*` を `/path/to/footage/*` に置き換えてください。\n\n`--content-hint` は VLM prompt に文脈情報を追加し、タグ付けや peak 検出の認識精度向上に使えます。\n\n### 6. Footage DB を構築\n\n```bash\nnpx tsx scripts/build-footage-db.ts \\\n  --project projects/my-project \\\n  --embedding-policy auto \\\n  --qwen3vl \\\n  --clap-audio\n```\n\n`projects/my-project/03_analysis/search/footage.db` に SQLite / FTS5 / embedding rows を作ります。Qwen3-VL や CLAP が使えない場合は warning を残し、利用可能な検索 channel だけで続行します。\n\n### 7. Editorial pipeline を実行\n\n```bash\nnpx tsx scripts/editorial-pipeline.ts --project projects/my-project --qa\n```\n\nこのコマンドは visual / audio retrieval、rough pass、fine pass、compile、render、QA improvement loop を順に実行します。主な出力は `04_plan/selects_candidates.yaml`、`04_plan/edit_blueprint.yaml`、`04_plan/visual_search_trace.json`、`05_timeline/timeline.json`、`09_output/rough-cut.mp4`、`09_output/render-report.json` です。\n\n## CLI EntryPoints\n\n公開サポートしている主要 CLI は次の通りです。\n\n| Entry point | Purpose | Command |\n|-------------|---------|---------|\n| `init-project` | 新規プロジェクトの雛形作成 | `npx tsx scripts/init-project.ts \u003cproject-id\u003e [--source-dir /path/to/footage]` |\n| `analyze` | 素材解析と `03_analysis/` 生成 | `npx tsx scripts/analyze.ts \u003csource-files...\u003e --project projects/\u003cproject-id\u003e` |\n| `build-footage-db` | SQLite / FTS5 / Qwen3-VL / CLAP embedding DB 生成 | `npx tsx scripts/build-footage-db.ts --project projects/\u003cproject-id\u003e [--qwen3vl] [--clap-audio]` |\n| `editorial-pipeline` | retrieval → planning → compile → render → QA の統合実行 | `npx tsx scripts/editorial-pipeline.ts --project projects/\u003cproject-id\u003e [--skip-fine] [--skip-render] [--skip-qa]` |\n| `render-rough-cut` | `timeline.json` を BGM 付き MP4 にレンダーし duration parity を記録 | `npx tsx scripts/render-rough-cut.ts --project projects/\u003cproject-id\u003e [--output path] [--bgm path]` |\n| `status` | Gate 状態と次アクション確認 | `npx tsx scripts/status.ts projects/\u003cproject-id\u003e` |\n| `compile` | `timeline.json` と preview manifest 生成 | `npx tsx scripts/compile-timeline.ts projects/\u003cproject-id\u003e` |\n| `preview` | preview clip / overview 生成 | `npx tsx scripts/preview-segment.ts projects/\u003cproject-id\u003e [--beat \u003cbeat-name\u003e]` |\n| `export-premiere` | Premiere 向け FCP7 XML 出力 | `npx tsx scripts/export-premiere-xml.ts projects/\u003cproject-id\u003e` |\n| `import-premiere` | Premiere で編集した XML の差分読込 | `npx tsx scripts/import-premiere-xml.ts projects/\u003cproject-id\u003e --xml edited.xml [--dry-run]` |\n| `smoke-test-qwen3vl.sh` | Qwen3-VL local worker / 2048-dim embedding の確認 | `bash scripts/smoke-test-qwen3vl.sh` |\n| `smoke-test-clap.sh` | CLAP local worker / 512-dim audio embedding の確認 | `bash scripts/smoke-test-clap.sh` |\n\n## 完全な E2E フロー\n\n![エージェントがブリーフを作成中](docs/images/demo-03-output.jpg)\n\n```text\n素材投入\n  -\u003e scripts/analyze.ts\n  -\u003e 03_analysis/assets.json / segments.json / transcripts / marlin_events.json / contact sheets / filmstrips / peak_analysis\n  -\u003e scripts/build-footage-db.ts\n  -\u003e 03_analysis/search/footage.db\n     - SQLite structured metadata\n     - FTS5 text index\n     - embedding_models / segment_embeddings\n     - E5 text + Qwen3-VL visual/text + CLAP audio\n  -\u003e 01_intent/creative_brief.yaml / unresolved_blockers.yaml\n  -\u003e Visual / Audio Retrieval\n  -\u003e 04_plan/visual_search_trace.json\n  -\u003e Rough Pass\n  -\u003e 04_plan/selects_candidates.yaml\n  -\u003e Fine Pass\n  -\u003e 04_plan/edit_blueprint.yaml / uncertainty_register.yaml\n  -\u003e scripts/compile-timeline.ts\n  -\u003e 05_timeline/timeline.json / adjacency_analysis.json\n  -\u003e scripts/render-rough-cut.ts\n  -\u003e 09_output/rough-cut.mp4 / render-report.json\n  -\u003e QA Loop\n     -\u003e Marlin QA / brief alignment\n     -\u003e issue detection / fix proposals\n     -\u003e apply / recompile / rerender (max 3 iterations)\n  -\u003e 06_review/* / 07_package/* / 09_output/*\n```\n\n![ブループリント作成結果プレビュー](docs/images/demo-04-blueprint.png)\n\n補足:\n\n- `runtime/commands/` には `/intent`, `/triage`, `/blueprint`, `/review`, `/caption`, `/package` の command contract が実装されています。\n- `scripts/analyze.ts` では STT/VLM と VLM peak detection を実行し、`peak_analysis` を `segments.json` に書き戻します。\n- `scripts/build-footage-db.ts` は project-local の検索 DB を作り、Qwen3-VL / CLAP が無い場合も fail-open で進みます。\n- `scripts/editorial-pipeline.ts` は retrieval、rough/fine pass、compile、render、QA improvement loop を統合します。\n- `scripts/compile-timeline.ts` は deterministic compile の公開 CLI です。scene continuity ordering と visual coherence cache がある場合はコンパイル時に利用します。\n- Premiere で詰めたい場合は、`timeline.json -\u003e FCP7 XML -\u003e Premiere -\u003e FCP7 XML -\u003e timeline.json` の往復が可能です。\n\n## Premiere Pro 連携\n\nエクスポート:\n\n```bash\nnpx tsx scripts/export-premiere-xml.ts projects/my-project\n```\n\nインポート:\n\n```bash\nnpx tsx scripts/import-premiere-xml.ts projects/my-project --xml edited.xml --dry-run\n```\n\nUXP プラグイン:\n\n1. Adobe Creative Cloud から UXP Developer Tool を入れる\n2. `premiere-plugin/manifest.json` を読み込む\n3. Premiere Pro で `Window -\u003e Extensions -\u003e Video OS Watcher` を開く\n4. `FCP7 XML Path` に XML のパスを入れて Watch を開始する\n\nラウンドトリップ diff engine は `trim_changed`, `reordered`, `deleted`, `added_unmapped` を検出します。`added_unmapped` は自動適用せず、手動レビュー前提です。\n\n## 書き出し先\n\n現在の rough-cut renderer は次のパスに MP4 と duration accounting を出力します。\n\n```text\nprojects/\u003cproject-id\u003e/09_output/rough-cut.mp4\nprojects/\u003cproject-id\u003e/09_output/render-report.json\n```\n\n`07_package/` は QA、manifest、音声 stem、caption sidecar などの内部パッケージ用ディレクトリです。公開・納品用に固定した成果物は `/package` または後段の publish flow で `09_output/final.mp4` に発行する想定です。\n\n## アーキテクチャ\n\n![自由を渡すには止まる設計が必要](docs/images/demo-05-result.jpg)\n\n```text\nCreative Brief\n  -\u003e Visual/Audio Retrieval (Qwen3-VL + CLAP pre-selection)\n  -\u003e Rough Pass (LLM with multimodal evidence)\n  -\u003e Fine Pass (LLM refinement)\n  -\u003e Deterministic Compiler (scene continuity + visual coherence)\n  -\u003e Render (ffmpeg xfade + BGM)\n  -\u003e QA Loop (Marlin QA -\u003e fix proposals -\u003e apply -\u003e recompile -\u003e rerender)\n  -\u003e Final Output\n```\n\n- 2-model architecture: Marlin が「目」として scene / event / peak を読み、Claude/Codex が「脳」として evidence を使って編集判断を行います。Qwen3-VL / CLAP / E5 は planner ではなく検索 channel です。\n- 3-modality search: visual、text、audio を同じ footage DB と検索 API で扱います。ただし Qwen / E5 / CLAP のベクトル空間は混ぜず、`embedding_models.id` 単位で比較し、score fusion で統合します。\n- Deterministic Compiler: `normalize -\u003e score -\u003e assemble -\u003e trim -\u003e resolve -\u003e export` を純関数的に進め、timestamp clustering と Qwen visual coherence cache がある場合は scene continuity ordering に使います。\n- QA Loop: Marlin QA と brief alignment から issue を検出し、bounded fixes を提案・適用・再コンパイル・再レンダーします。最大 3 iteration、score 低下、duration/fill/render parity regression で停止します。\n- Canonical Artifacts: 各ステージは YAML / JSON の canonical artifact を出力し、隠れた状態を持ちません。\n- Transition Skill Cards: P0 の 5 スキル (`match_cut_bridge`, `build_to_peak`, `crossfade_bridge`, `smash_cut_energy`, `silence_beat`) を隣接クリップ単位で自動選択します。\n\n## Agent Skills\n\n`.agents/skills/` に定義された Agent Skill が、エージェントの判断と行動をガイドします。Claude Code / Codex CLI どちらでも同じスキルが発火します（symlink 共有）。\n\n| スキル | 発火条件 | 役割 |\n|--------|----------|------|\n| `setup-environment` | 初回セットアップ、依存不足、API キー未設定 | 環境構築をステップバイステップでガイド |\n| `design-intent` | 素材を渡して「編集して」、新プロジェクト開始 | ユーザーの意図をヒアリングし creative brief を作成 |\n| `analyze-footage` | 素材フォルダや動画ファイルを渡されたとき | VLM/STT で素材を解析し assets.json / segments.json を生成 |\n| `select-clips` | 「クリップを選んで」、triage 実行 | 素材から候補クリップを抽出・スコアリング |\n| `build-blueprint` | 「構成を作って」、blueprint 実行 | ビート構造と編集構成を設計 |\n| `compile-timeline` | 「タイムラインを作って」、compile 実行 | 確定的コンパイラで timeline.json を生成 |\n| `review-roughcut` | 「レビューして」、粗編集の品質確認 | 自己批評ループで品質を評価・パッチ提案 |\n| `export-premiere` | 「Premiere に出して」、XML エクスポート | timeline.json → FCP7 XML 変換 |\n| `import-premiere` | 「Premiere から戻して」、XML インポート | FCP7 XML → timeline.json 差分検出・適用 |\n| `render-video` | 「レンダリングして」、動画出力 | ffmpeg で最終動画を生成 |\n| `full-pipeline` | 「全自動で」「素材から動画を作って」 | 全ステージを Gate 付きでオーケストレーション |\n| `troubleshoot-error` | エラー発生時、「直して」 | エラーカタログから原因特定・復旧手順を案内 |\n| `re-edit` | 「ここを変えて」「尺を短くして」 | 既存 timeline への部分的な再編集指示を処理 |\n\n## テスト\n\n```bash\nnpm run validate\nnpm test\nnpm run build\n```\n\nCI でも `validate -\u003e test -\u003e build` を実行します。現在は Vitest ベースで 2370+ 件のテストがあり、件数は開発中に変動します。正確な件数は `npm test` の出力を確認してください。\n`npm run validate` は公開デモ `projects/demo` を検証します。checkout 内のローカル作業プロジェクトも含めて確認したい場合は `npm run validate:all-local` を使ってください。\n\n## OSS と貢献\n\n- ライセンス: [MIT](LICENSE)\n- 貢献ガイド: [CONTRIBUTING.md](CONTRIBUTING.md)\n- セキュリティ報告: [SECURITY.md](SECURITY.md)\n- 公開前チェックリスト: [docs/oss-readiness.md](docs/oss-readiness.md)\n\n公開リポジトリに含める project data は `projects/_template/` と `projects/demo/` のみです。`projects/*`, `tmp/`, `.env.local`, 生成動画、contact sheet、ローカル解析結果は checkout 固有の作業データとして扱います。\n\n## 技術スタック\n\n- TypeScript / Node.js / `tsx`\n- Vitest\n- AJV + JSON Schema + YAML\n- SQLite / FTS5 / `better-sqlite3`\n- `ffmpeg` / `ffprobe`\n- Qwen3-VL-Embedding-2B（visual / text embedding、2048-dim）\n- CLAP `laion/clap-htsat-fused`（audio embedding、512-dim）\n- Marlin-2B（local video VLM）\n- `Xenova/multilingual-e5-small`（text embedding、384-dim）\n- Python JSONL workers（Qwen3-VL / CLAP / Marlin local inference）\n- Gemini VLM / Groq STT / OpenAI STT / pyannote diarization\n- OpenTimelineIO Python bridge\n- FCP7 XML exporter / importer\n- Premiere Pro UXP plugin\n\n## 制限事項\n\n- Qwen3-VL / CLAP / Marlin の real model 実行には Python venv とローカル model cache が必要です。未設定時は warning を出して、利用可能な channel だけで続行します。\n- Qwen3-VL mixed input、Qwen reranker、before/after 両側を使う visual bridge search は設計済みですが、公開 API としては段階的に拡張中です。\n- CLAP は音の質感・環境音・ムード検索に使います。発話内容そのものの検索は transcript / FTS5 / E5 / Qwen text channel が担当します。\n- QA improvement loop は bounded auto-fix です。創作判断を完全に置き換えるものではなく、score 低下や duration parity 失敗では停止します。\n- `/intent` などの slash command は `runtime/commands/` の command contract として実装されており、専用アプリ UI はまだありません。\n- 高精度 analysis には `ffmpeg` 系ツールと API key、場合によっては Python / `opentimelineio` / `pyannote` が必要です。\n- Premiere UXP plugin は手動インストールと Premiere 上での手動確認が前提です。\n\n## ライセンス\n\nMIT License. 詳細は [LICENSE](LICENSE) を参照してください。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmocchalera%2Fvideo-os-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmocchalera%2Fvideo-os-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmocchalera%2Fvideo-os-v2/lists"}