SuperMovie Editor は、SuperMovie(蓮さん作・Claude Code 用の動画編集プラグイン)で作った動画プロジェクトを、ブラウザ上で「見たまま微修正」するための仕上げエディタです。中核原則はクレジットゼロ編集——手作業の微修正に AI や API を一切使わない、純ローカル操作。
AI(Claude Code)が9.5割の編集を終わらせ、残り0.5割の「テロップの位置をちょっと直す」「カットの端を数フレーム詰める」をこのエディタで仕上げる、という役割分担です。
技術: Vite + React + TypeScript / プレビューは Remotion Player / テスト = unit 2,117 本 + ブラウザ自動テスト(E2E)107 本。MIT ライセンスの独立 OSS として公開予定。
.sme/status.json 連携規約を公開:自作スキルが作業開始時にこのファイルへ「カット中」等と書くだけで、ホームにスピナー付きでAI作業中の工程がライブ表示される。仕様書は docs/status-file-spec.md(OSS 公開)、スキルへの組み込みノウハウは Brain 側教材へ非破壊カット(範囲選択・分割)/テロップ(30スタイルパック・分割結合・直接ドラッグ)/タイトル/挿入画像/サブ動画(マルチカメラ)/BGM・効果音(波形表示・フェード)/速度変更(全体・区間ごと)/トランジション/図形注釈
書き出しボタン(進捗%・キャンセル)/SNS別プリセット/ノイズ除去・音量適正化/大容量動画は軽量プロキシで軽快プレビュー
Claude Code 編集ブリッジ(画面から指示→Claude が編集→自動反映)/学習ループ(手修正を蓄積して次回のAI出力を改善)/ステータスビュー(AI作業中の工程をライブ表示)
コードは役割の違う4つの層に分かれています。下の層ほど「純粋な計算」で、上の層ほど「画面と配線」です。
データの読み書き・カット計算・フレーム変換。画面もサーバも知らない「計算だけ」の層。テストが最も厚い
プロジェクト一覧・保存・動画配信・機能の導入(install)・書き出し・ステータス監視。/api/* を提供
ホーム・タイムライン・インスペクタ・プレビュー操作。編集は「純関数の reducer」で行い、履歴(undo/redo)も一元管理
プレビュー映像の合成。最終書き出しはエディタではなく各プロジェクト本体の MainVideo.tsx が行う(画質・互換性のため)
supermovie-editor/ ├─ src/ │ ├─ core/ ← 純粋エンジン(カット計算・データ読み書き・フレーム変換) │ ├─ server/ ← ローカルサーバ(API・保存・書き出し・機能install・監視) │ │ ├─ telopPack/ ほか *Payload/ ← プロジェクトへ同梱配布する部品のソース │ │ └─ mcp/ ← Claude Code 編集ブリッジ(指示の受け箱) │ ├─ app/ ← 画面(React) │ │ ├─ edit/ ← 編集ロジック(純関数 reducer・undo/redo) │ │ ├─ panels/ ← ホーム・左カラム・インスペクタ・プレビュー等の部品 │ │ └─ timeline/ ← タイムラインの各トラック(カット/テロップ/SE/BGM…) │ ├─ preview/ ← Remotion プレビュー合成 │ ├─ learning/ ← 学習ループ(独立サブシステム) │ └─ shared/ ← クライアント⇔サーバ共有の型・整形 ├─ tests/ ← ブラウザ自動テスト(E2E・Playwright) └─ docs/ ← 設計書・仕様書(status-file-spec.md など)
開発本線 main から 7/7 に分岐した公開準備ブランチ。ソースコード(src/)は main と同一構成で、「内部資料を除き、初見の人が使い始められるものを足す」加工をしたものです。差分は255ファイル(内部文書の削除が大半・約8.9万行減)。
docs/superpowers/・docs/specs/)docs/research/ ほか)skills/ — Claude Code スキル置き場。video-transcribe(文字起こし+SRT書き出し。他エディタでも使える撒き餌)+ simple-telop(スキル自作の最小見本)+導入手順READMEsetup.command — Whisper の選択インストール付きセットアップstart.command — 既定プロジェクト置き場を汎用パス(~/Movies/SuperMovie)へsupermovie-editor(release/oss-clean) ├─ src/ ← main と同一(core / server / app / preview / learning / shared) ├─ skills/ ← ★OSS独自: Claude Code スキル置き場(自作スキルの入口) │ ├─ video-transcribe/ 文字起こし+SRT(単体でどの動画にも使える) │ └─ simple-telop/ スキルの書き方の最小見本 ├─ scripts/ ← transcript→SRT 変換 等 ├─ setup.command / start.command ← ★ダブルクリックで導入・起動(非エンジニア向け) ├─ docs/ ← 公開可能な文書のみ(内部設計資料は除外済み) └─ README.md ← OSS向けに全面刷新済み
思想: 「動く道具」(エディタ・雛形・文字起こし)は OSS で公開し、「判断のノウハウ」(カット基準・SE配置哲学・スキル自作講座)は Brain に収録する切り分け。skills/ と見本スキルは、ユーザーが自作スキルを足していく世界観(随時更新型 Brain)への入口。
分岐後に main へ入った26コミットのうち、表示バグ修正・UI改修の11コミットを取り込み済み(テロップチラつき根治/波形ズレ修正/選択連動スクロール/波形高さ設定/レイアウトプリセット/改行分割修正/ドラッグ境界修正)。検証 = 型チェック0エラー・unit 1,958 全緑・E2E 102 全緑。
「1本の動画を仕上げる」ときのデータの旅です。
サーバが telopData.ts・cutData.ts 等のデータファイルを読み、編集用データ(EditorProject)に変換して画面へ渡す
全操作が「純関数」で状態を更新(だから undo/redo が確実)。プレビューは Remotion がその場で合成
編集結果を元の *.ts ファイルへ「配列部分だけ外科的に」書き戻す。外部(Claude Code)が同時に触っていたら衝突を検知して警告
プロジェクト本体の Remotion が元動画(高画質)から最終 mp4 を生成。完了で out/video.mp4 → ホームのバッジが「書き出し済」に
動画ファイルは一切切らない。「残す区間のリスト」(cutData.ts)だけを持ち、再生・書き出し時に適用する。だから何度でもやり直せる
テロップ・SE・画像の位置は「カット前の元動画のフレーム番号」で記録。カットを増減しても位置計算が自動で正しくなる(ズレバグの構造的封じ込め)
サブ動画・BGM・速度などの書き出し部品は、使うプロジェクトにだけワンクリックで同梱コピーする。エディタ非依存で最終書き出しが完結し、部品の版ズレは自動検知
| やりたいこと | 見る場所 |
|---|---|
| カットやテロップの計算ルールを変えたい | src/core/cutEngine.ts / telopEngine.ts |
| 編集操作(ボタンを押したら何が起きるか)を変えたい | src/app/edit/ の各 Ops ファイル |
| タイムラインの見た目・ドラッグ挙動 | src/app/timeline/ |
| 右側の設定パネル(インスペクタ) | src/app/panels/Inspector.tsx |
| ホーム画面・ステータスバッジ | src/app/panels/HomeDashboard.tsx / projectStatusView.ts |
| API を足したい・保存の仕組み | src/server/plugin.ts(ルーティング)+ 専用モジュール追加 |
| ステータス連携(.sme/status.json) | src/server/projectStatus.ts・仕様書 docs/status-file-spec.md |
| 書き出し(render)まわり | src/server/renderApi.ts |
| 全体の地図(開発再開時の最初の1枚) | リポジトリ直下 ARCHITECTURE.md |
src/server/plugin.ts は衝突ハブ:API 追加は全員ここを触る。蓮さんと並行開発するときは事前に一声ARCHITECTURE.md(開発再開時はまずこれ)docs/status-file-spec.mdtakicoach/supermovie-editor