akuko — 物語を映画に、一度レビューしながら段階を進める
このファイルはルーターです。 各アクションは actions/ 配下の個別ファイルにあり、必要に応じて読み込んで従ってください。ここにアクションの振る舞いを直接記述しないでください。共有ルールは lib/ にあります:
lib/state.md— プロジェクトファイル、ステージ、ステータス遷移、決定の折りたたみ。書き込みを行う前に必ず読んでください。lib/hosts.md— ホスト検出、各ホストで可能なこと、ホストアダプター。lib/spend.md— 支出ゲートとコスト台帳 (WP-03)。lib/providers.md— プロバイダー (WP-03)。
プロジェクトフォーマットは schema/akuko-project.ts (akuko.json、JSON Schema は schema/akuko-project.schema.json) です。
すべてのアクションは同じ方法で開始する
- ホストを検出する (
lib/hosts.md§検出):A claude-artifact · B local · C ikenga。node --experimental-strip-types hosts/detect.ts --tools <あなたの完全なツールリスト — ロード済みおよび遅延読み込みのすべてのツール名>を実行します。出力にwarningがある場合、または少しでも疑わしい場合は、ホストを A (アーティファクトDB) として扱い、決してプロジェクトフォルダを作成しないでください。結果をakuko.json.hostに記録します。 - ホストアダプターを介してプロジェクトを読み取る (
readState());プロジェクトがない場合は、intake(または、ユーザーが先に設定を希望する場合はsetup) にルーティングします。 - 他のことを行う前に、前回の実行以降に行われた決定を折りたたむ (
readDecisions()→lib/state.md§決定の折りたたみ)。 - アクションファイルを読み込んで従います。プロジェクトは
writeState()を介してのみ書き込み、ファイルはstoreAsset()を介してのみ保存します。
ルーティング
| ユーザーが言った場合… | これを読み込む | 担当者 |
|---|---|---|
| "set up akuko", "configure", "set a budget", "add my keys" | actions/setup.md | WP-08 |
| "check my setup", "what's missing", "doctor" | actions/doctor.md | WP-08 |
| "make a film from this story / script", "start a project", "intake" | actions/intake.md | WP-04 |
| "break it down", "shot list", "breakdown", "import a shot list" | actions/breakdown.md | WP-04 |
| "characters", "locations", "look / style", "bible" | actions/bible.md | WP-05 |
| "storyboard", "sketch board", "beat board", "board" | actions/board.md | WP-21 |
| "key frames", "final panels", "keyframes", "continuity check" | actions/keyframes.md | WP-22 |
| "animate", "make the clips", "motion", "treatment", "camera moves" | actions/motion.md | WP-10 · WP-11 · WP-27 |
| "lip-sync", "make them say the line", "lipsync" | actions/lipsync.md | WP-28b |
| "voice-over", "music", "sound effects", "sound" | actions/sound.md | WP-12 |
| "animatic", "preview the film", "let me watch it", "rough cut", "assemble" | actions/assemble.md | B-11 (preview 構築済み) · WP-13 (ラフカット、ピクチャーロック: スタブ) |
| "export", "send to Resolve", "give me a timeline" | actions/export.md | WP-23 (Resolve ハンドオフ) |
| "I reviewed it", "apply my notes", "review" | actions/review.md | WP-07a |
| "show me …", "open the board", "view" | actions/view.md | WP-07c |
| "where are we", "what's next", "status", "how much will it cost", "estimate" | actions/status.md | WP-30 (全編見積もり) |
エクスポートは、承認されたフィルムを、タイムラインとメディアを含むDaVinci Resolveプロジェクトとして引き渡します。MP4マスター、カットダウン、Canvaデッキは保留中です (計画ラウンド 7):MP4を求められたら、その旨を伝え、ハンドオフを提案します。
何も一致しない場合は、status を実行し、それが提案する次のアクションを提案します。アクションファイル (または要求されたルート) がまだ スタブ (WP-02) と表示されている場合は、まだ構築されていないことを伝えて停止します — 即興で作成しないでください。アニマティックも即興で作成しません:assemble preview は、1つのアニマティック (承認済みキーフレームをショットに合わせてタイミング調整したもの、決してレビューユニットではなく、プロジェクトに保存されることもありません) に対して構築済みの無料ルートです。
ステージ
intake → breakdown → sketch → bible → keyframes → motion → sound → assemble → export (0–8、schema/akuko-project.ts#STAGES;フィルムプロファイルは profiles/film/profile.json)。ステージは、前のステージが承認された場合にのみ開きます (lib/state.md §ステージ)。
レビュールール
これらのルールは、すべてのホスト、すべてのアクション、すべてのビューに適用されます。
- 承認するのは人間だけです。 アクションはユニットを
pending-reviewに移動します。人間の決定のみがユニットをapprovedに移動します。アクションやビューが自動承認、事前チェック、一括承認を行うことはありません。 - レビューを自動的に通過しないでください。 各ステージはレビューゲートで終了します (Atelier
ux_mode: approve):実行後、生成されたものに対して一時停止します。 - ステージ内では一度に1ユニットずつ:生成、表示、待機 — 1つのショットが差し戻されたからといってステージ全体を再生成しないでください。
- 決定は決定フォーマット (スキーマ内の
Decision) を経由し、レビューサーフェスによってホストのストアに書き込まれます。ビューは決してakuko.jsonを編集したり、writeState()を呼び出したりしません。 - 要求された変更は尊重され、その後マークされます:ユニットを修正し、「Revised: …」コメントを追加し、
pending-reviewに戻します。
支出ルール
- OKなしに有料呼び出しはしません。 すべての有料ジョブ (画像、動画、TTS) は支出ゲート (
lib/spend.md) を通過します:見積もり、上限、既に費やした額、承認した場合の残額を表示し、そのジョブの明示的な承認を待ちます。 - 上限なし、支出なし。
akuko.json.budgetが null の場合、有料ジョブを拒否し、setupを指示します。 - 上限またはジョブの
approved_maxを決して超えないでください。 超えそうになったら停止し、代わりに尋ねてください。 - 金額は隠したり丸めたりしません。 すべての有料呼び出しは、成功・失敗に関わらず
ledger[]に記録されます。 - キーは環境変数 (またはホストのシークレットストア) に保持します —
akuko.json、ビュー、アーティファクトデータベース、台帳、またはボードが読み取り可能なファイルには決して入れず、決して読み返しません。claude.ai (ホスト A) では、キーは チャットごとに貼り付け、有料ダイレクトコールが実行される直前のみに行います:最初にネットワークをプローブし (scripts/probe.ts)、キーがこのチャットの履歴に表示され、このチャットでのみ使用され、どこにも書き込まれないことを伝え、「このチャットで私のキーを使用する」という承認を得てから、そのコマンドの環境にのみ設定し、予約し、ボードに保存し、送信します (lib/spend.md§ホスト A、R-11)。 - ハウスルールはお金より優先されます。 プロジェクトに
rulesがある場合、すべてのジョブは支出ゲートの前にルールに対してチェックされ、違反がある場合は拒否され (rules-breach)、ルール名と問題のあるテキストまたはファイルが示されます。報告して停止します。決して言い換えたり、参照を削除したり、ルールを編集して通過させようとしないでください。無料の事前チェックとしてrules/cli.ts checkを実行します (lib/state.md§「ルールガード (WP-26)」)。 - プラン許容量も支出です。 お金ではなくユーザー自身のプラン許容量を使用する接続ツール (claude.ai 上の Canva の月間 AI 制限など) は、各ウェーブで承認を得ます:回数、サービス、akuko が残量を確認できないこと、正確な返答
approve <n> <service> generationsです。各世代は、金額ゼロ、ユニット数で台帳に記録されます (lib/spend.md§許容量)。
ホストを1行で
- A — claude-artifact (claude.ai): Node とファイルは、1回のチャットで持続するリモートワークスペース内のみにあるため、永続的なプロジェクトフォルダはありません。プロジェクトはボードアーティファクトのデータベースに存在します;エージェントはツール呼び出しで読み書きし、ステージコマンドを作業コピーで実行します。生成は、接続された MCP (例:Canva)、手動プロンプトパッケージ、およびそのチャット用に貼り付けられたキーを使用した有料ダイレクトAPI (ネットワークプローブ後、R-11) を通じて行われます;MP4 レンダリングはローカルで行われます。
- B — local (Claude Code):
akuko.jsonはディスク上に、ファイルはプロジェクトフォルダ内に、すべてのプロバイダーは env キー経由、HyperFrames + FFmpeg。 - C — ikenga: B に Ikenga ブリッジ (および Studio (MCP が接続されている場合)) を追加;Studio はレンダリング状態を保持します。
詳細と機能の証拠:lib/hosts.md。
ファイル
SKILL.md このルーター
actions/*.md アクションごとに1ファイル (Atelier frontmatter)
lib/state.md プロジェクトファイルのルール、ステージ、遷移、決定の折りたたみ
lib/hosts.md ホスト検出、機能、手動ホストチェック
hosts/types.ts HostAdapter コントラクト (G-HOST)
hosts/{claude-artifact,local,ikenga}.ts ホストごとに1つのアダプター
profiles/film/ フィルムプロファイル
schema/ akuko.json フォーマット (G-SCHEMA)