Communitygithub.com

woanderingboy/novel-video-pipeline

小説からAIマンガドラマ(16:9)を生成するパイプラインワーク。5ステーション:脚本→アセット→ストーリーボード→音声→合成。アセットファースト、IPファイアウォール、子ども安全ゲート付き。novel-writing-pipelineの出力を消費する。

novel-video-pipeline とは?

このスキルは、小説・ネット小説・漫画・オリジナル脚本など任意のテキストストーリーを、AI動画生成モデルに投入可能な**絵コンテプロンプトパッケージ+ビジュアル参照画像+CC0音声・BGM**に安定的に変換するパイプラインです。5つの連続ステーション(脚本→アセット→絵コンテ→音声→合成)で構成され、各ステーションはJSON/リソースディレクトリを生成し、次のステーションが消費します。最大の特徴は「アセットファースト」順序:キャラクターとシーンのビジュアルアセットを最初に確立し、その後に絵コンテでそれらを参照することで、キャラクターの一貫性とシーンの空間連続性を担保します。また、**IPファイアウォール**により、Peppa Pig、Disney、Marvelなど登録された第三者著作権キャラクターの複製を禁止し、CC0/パブリックドメイン素材のみを受け入れます。子ども向けパイプラインには追加の安全ゲートが用意されています。このスキルは、Claude Code、Cursor、Codex、WindsurfなどのAIエージェント向けに設計されており、スクリプトは標準ライブラリのみで動作し、pip install不要です。さらに、オプションの自己成長メカニズムにより、実行メトリクスや人間のフィードバックをメモリサーバーにフィードバックし、パイプラインを継続的に改善できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add woanderingboy/novel-video-pipeline

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

漫劇(小説 / ネット小説 / 漫画改編)・五駅式パイプライン(novel-video-pipeline)

Overview

任意のテキストストーリー(ネット小説、漫画、オリジナル脚本、童話絵本など)を、文生動画モデルに入力可能な絵コンテプロンプトパッケージ+ビジュアル参照画像+CC0音声・BGMに安定的に変換し、**「第三者の著作権キャラクターを複製しない」という厳格なラインを守ります。デフォルトでは漫劇(横長16:9 / 多話連載)**生産ライン向けで、必要に応じて子ども向け漫劇、単話ショート動画などサブタイプに切り替え可能です。生産ラインの基調は、現在のヒット漫劇の「強力なフック+感情の揺さぶり+逆転+爽快ポイント+話間サスペンス」リズムを参考にしつつ、方法層の骨格のみを採用し、キャラクター・プロット・絵柄はすべてオリジナルです。

パイプラインは5つの連続する作業駅で構成され、各駅は合意されたJSON/リソースディレクトリを出力し、次駅が前駅の成果物を消費します。**重要:アセットライブラリを先に構築(S2)→ その後絵コンテ記述(S3)**という順序を厳守します。絵コンテはアセットをカメラ言語で配置するだけであり、キャラクターの一貫性とシーン空間の連続性を確保します。

S1 脚本改編  ──script.json──▶  S2 アセットライブラリ  ──character_manifest + scene_manifest (+ visual_manifest)──▶  S3 絵コンテプロンプト  ──storyboard.json(アセット+ref_imagesを参照)──▶  S4 音声  ──audio_manifest──▶  S5 合成  ──完成映像
  • S1 脚本改編:長編/原文を「教育的または物語的価値の骨格 + ビート表」に圧縮し、script.json(title / logline / characters / scenes / beats)を出力します。
  • S2 アセットライブラリ(先に構築):全局脚本を読み込み、キャラクター三面図アセット(character_manifest.json:visual_lock + front/side/back 三面図 + アンカー画像パック + fixed_prompt)とシーン正打ち逆打ち多視図アセット(scene_manifest.json:axis_of_action + establishing/OTS A→B/reverse/insert)を確立し、併せてパブリックドメイン / CC0 ビジュアル参照画像(visual_manifest.json)を取得します。IPファイアウォールのネガティブプロンプトを適用します。このステーションの成果物が「アセットライブラリ」となり、S3で直接参照されます。
  • S3 絵コンテプロンプト(アセットライブラリに基づく):各ビートをカット(shot)に展開し、**各shotは character_ref(キャラクター+視図)と scene_ref(シーン+視図)**を参照し、アセットライブラリからロックされた説明 + カメラムーブメントライブラリ(camera-movements.json)+ プラットフォームプリセットからプロンプトを構築し、negative_prompt を注入し、storyboard.json を出力します。
  • S4 音声:カットに CC0 BGM / 効果音をマッチングし、audio_manifest.json を出力します。
  • S5 合成(完成映像へのクローズ):S3の storyboard.json(ref_images アンカー画像を含む)+ S4の audio_manifest.json を完成映像にクローズします。カットごとに画像生成/動画生成(ref_images で顔ロック)→ 音声同期 → 編集結合(duration_s と aspect_ratio に従う)→ プラットフォームエクスポート → 一貫性最終チェック。詳細は references/s5-composite.md と scripts/build_ffmpeg_concat.py を参照してください。

When To Use(トリガー)

  • ユーザーがストーリー/小説/ネット小説/漫画/脚本を提供し、「漫劇 / ショート動画 / 絵コンテ / アニメにしたい」と言う。
  • ユーザーが「脚本改編、絵コンテプロンプト作成、動画スクリプト生成、絵柄設定、音楽付け」を必要としている。
  • ユーザーが任意の単駅の成果物のみを必要としている(例:絵コンテプロンプトのみ、またはパブリックドメイン参照画像のみ)。
  • ユーザーが素材に対して「著作権クリーン / 商用利用可能 / IPリスクゼロ」という厳格な要件を持っている。

ワークフロー(Workflow)

全フローは、人気オープンソースソリューションのオーケストレーションアプローチを参考にしていますが、コードは独自開発、アセットは自己完結しています:

  • ViMax(MIT ライセンス、約 392 コミットの S1→S4 オーケストレーションパイプライン)→ 「ストーリー→絵コンテ→動画」の段階分割と成果物契約を参考。
  • seedance-prompt-skill / ai-shortfilm-prompts(MIT ライセンス)→ その SKILL 形式のプロンプトテンプレート構成を参考に、S3 の基盤として採用。
  • ArcReel(AGPL ライセンス)→ アーキテクチャのみ学習、コードはコピー禁止(AGPL の感染力のため、本 MIT スタイルの skill への統合は禁止)。 詳細は references/architecture-licenses.md を参照。

第 0 ステップ · 要求の受付

4点を確認:① 元ストーリー(ネット小説 / 漫画 / オリジナル脚本 / 投稿文、もしくはパス指定);② ターゲットプラットフォーム(横長漫劇はデフォルトで Bilibili / YouTube 向け、assets/s3/platform-presets.json の bilibili を参照;縦長抖音 / 微信 video 向けは douyin);③ 絵柄(中国漫画 / 水彩 / 写実 / 浮世絵 / 童書挿絵…);④ サブタイプとターゲット(デフォルトは横長 16:9 漫劇、ヒット漫劇のリズムをベースにしつつオリジナル;子ども向けの場合は追加で IP ファイアウォール + mature コンテンツ除外を強制)。

第 1 駅 · S1 脚本改編

  1. assets/s1/story-structure.md(三幕 / ビート構造テンプレート)+ assets/s1/adaptation-method.md(圧縮方法論:価値骨格保持、冗長削除、感情カーブ)を読み込む。
  2. 必要に応じて assets/s1/beat-sheet.md(記入可能なビート表)を記入。
  3. assets/s1/example-romeo-juliet.md、example-journey-to-west.md の2つの改編例を参考にする。
  4. script.json を出力。フィールドは references/workflow.md §S1 契約を参照。

第 2 駅 · S2 アセットライブラリ(先に構築、後に絵コンテ記述)

  1. S1 の全 beats / characters / scenes を読み込み、キャラクターアセットを確立:assets/s2/character-design.md を読み込み、主要キャラクターごとに character_manifest.json(visual_lock + fixed_prompt + 三面図 front/side/back + アンカー画像パック ref_pack + 一貫性ルール)を出力。
  2. シーンアセットを確立:assets/s2/scene-multiview.md を読み込み、主要シーンごとに scene_manifest.json(geography + axis_of_action + views{establishing, ots_a, ots_b, reverse, insert})を出力。
  3. 併せてパブリックドメイン / CC0 ビジュアル参照画像 visual_manifest.json(多絵柄:中国漫画 / 水彩 / 写実 / 童書挿絵 / Met パブリックドメインアート…)を取得/生成し、IP ファイアウォールを適用。
  4. IP ファイアウォールを適用:assets/s2/negative-ip.json + assets/s2/negative-ip-firewall.md。
  5. ライセンスゲート:Public Domain / CC0 のみ受け入れ。キャラクター/シーンアセットはすべてオリジナル。同名・同設定でヒット作をそのままコピーすることを禁止(詳細は IP ファイアウォール §六)。

第 3 駅 · S3 絵コンテプロンプト(アセットライブラリに基づく)

  1. 以下のファイルを読み込む:assets/s3/template-library.json(絵コンテテンプレートライブラリ:カットタイプ / ショットサイズ / 感情)+ assets/s3/camera-movements.json(カメラムーブメントライブラリ:40+ ムーブメント + ビート→ムーブメントマッピング + プラットフォーム文法)+ assets/s3/platform-presets.json(各プラットフォームのプロンプト文法、アスペクト比、時間制限)+ assets/s3/tag-stats.json(タグ頻度統計)+ assets/s3/negative-quality.md(品質ネガティブプロンプト)+ assets/s2/negative-ip.json(IP ファイアウォール)。

  2. 各 beat → 最低 1 shot。各 shot 必須で character_ref と scene_ref を持つ(S2アセットライブラリを参照)。アセットの fixed_prompt からロックされたキャラクター説明を取得。camera-movements.json から 1 つの主カメラムーブメントを選択(subject_aware_map が beat タイプに基づいてレコメンド)。必須で negative_prompt(IP ファイアウォール + 品質ネガティブプロンプトを結合)を持つ。

  3. storyboard.json を出力:shots[{shot_id, beat_ref, character_ref[], scene_ref, ref_images[](任意・アンカー画像直接リンク、下記「参照画像アンカー」参照), camera_movement, shot_size, speed(任意・スピード修飾 slow_motion など、camera-movements.json の speed_modifiers 参照), prompt, prompt_readable, negative_prompt, platform, aspect_ratio, duration_s, attribution}]。権力変化カットは camera_movement: low_angle/high_angle + speed: "slow_motion" を使用(書き方は assets/s2/scene-multiview.md §三(補)権力軸を参照)。

    参照画像アンカー(ref_images、クロスカット一貫性の鍵):ref_images は各カットのアンカー画像への直接リンクリストであり、テキストのみの fixed_prompt よりも安定しています(Jimeng の @引用 / Runway Gen-4 の単画像顔ロックに適合)。各要素は文字列で、2つの書き方があります:① アセット参照トークン char:<char_id>:<ref_packキーまたはthree_viewキー> / scene:<scene_id>:<view>(スクリプトが自動で character_manifest.ref_pack から抽出、生成器が実際の画像パスに解決);② 直接画像パス / URL(例 /assets/char_shen_zhao_face.png)。各キャラクターに 2〜3 枚推奨(正面近接/横顔/全身)。Jimeng は最大 9 枚、Runway は 1 枚でロック可能。build_storyboard.py はデフォルトで自動的にキャラクターの ref_pack を ref_images として抽出します。S5 合成時に動画生成モデルに顔ロック/衣装ロック参照として直接提供することも可能です。

  4. CC BY 4.0 データは attribution 必須(本ライブラリのアセットは PD/CC0 で、デフォルトで帰属表示不要。外部 CC BY データを導入する場合は必ず attribution を記入)。

  5. スキャフォールディング加速(任意):まず S1 script.json + S2 character_manifest.json / scene_manifest.json を構築し、python scripts/build_storyboard.py --project <DIR> --platform bilibili を実行すると自動で storyboard.json のドラフトが生成されます(beat ごとに自動で character_ref/scene_ref を設定、subject_aware_map から 1 つの主カメラムーブメントを選択、beat タイプに基づいてショットサイズを選択、negative_prompt を全 IP トークンにカバーするように結合)。その後、手動でカメラアングル / 感情 / セリフ / リズムを微調整します。このスクリプトは「アセットファースト」順序の自動実装であり、その出力は validate_pipeline.py で直接検証可能です。

第 4 駅 · S4 音声

  1. assets/s4/audio-manifest.json(既に取得済みの CC0 音声リスト。BGM / 効果音 / 感情カテゴリ:ambient / cinematic / playful / tense / romantic / lullaby 等を含む)を読み込み。
  2. カットの感情に応じてマッチング:サスペンス低音→逆転パート、優しいピアノ→温かいパート、whoosh→トランジション、lullaby→安眠パート、cartoon bounce→活発パート。
  3. audio_manifest.json を出力:items[{file, license, source, duration_ms}]、CC0 のみ。

第 5 駅 · S5 合成(完成映像へのクローズ)

  1. references/s5-composite.md(S5 合成 SOP:五段階クローズ + ツールマトリックス + 一貫性最終チェックリスト)を読み込む。 1.5 アンカー画像解決:python scripts/resolve_ref_images.py --project <DIR> を実行し、各 shot の ref_images トークン(char:<id>:<key> / scene:<id>:<view>)を実際の画像パスに展開し、storyboard.resolved.json を出力(未解決トークンは元の文字列を保持し警告を出す)。
  2. カットごとの画像生成 / 動画生成:storyboard.resolved.json の ref_images(解決済み実画像)を顔ロック/衣装ロック参照として使用し、fixed_prompt + camera_movement + camera-movements.json の lens/stages と組み合わせて Jimeng @引用 / Runway Gen-4 / Kling / Seedance に投入し、各クリップを生成。
  3. 音声同期:beat の感情に基づいて audio_manifest.json(CC0)から BGM を選択し、duration_s に応じて効果音をカット。
  4. 編集結合:python scripts/build_ffmpeg_concat.py --project <DIR> --clips-dir <DIR>/clips を実行し、concat リストとコマンドを生成。aspect_ratio(横長 16:9)に従って 1080p でエクスポート。
  5. 一貫性最終チェック:§四のリスト(キャラクター/シーン/軸/権力軸/時間/IPファイアウォール/音声/アスペクト比)を確認してから公開。

第 6 ステップ · アクセスゲート検証(必須)

python scripts/validate_pipeline.py --project <DIR> --platform bilibili [--strict] [--content-rating {normal,child}] を実行し、五駅間の成果物契約 + 五つの品質ゲートを検証:S3 の各 shot の negative_prompt は assets/s2/negative-ip.json の全ブロック対象 IP トークンをカバーしている必要があります(第三者著作権キャラクター像の複製防止の必須要件。欠落は strict モードでエラー)。時間は platform-presets.json の該当プラットフォームの合法範囲内に収まる必要があり、アスペクト比は一致する必要があります(横長漫劇デフォルト 16:9)。S4 音声時間は 0.3〜180秒(非常に短い効果音も許容)。--strict では警告もエラーとみなされます。通過後にのみ動画合成が可能です。

コンテンツレーティング(重要 · デフォルトは無制限):アクセスゲートはデフォルトで --content-rating normal —— 一切のコンテンツ制限を行いません。アクション / 暴力 / サスペンス / ダーク等の成人向けテーマも正常に生成可能。著作権 IP ファイアウォールとアセット契約のみを守ります。子ども向け生産ラインでのみ --content-rating child(または旧別名 --child)を追加:S1 に「価値回収」タイプのビートを含めることを強制、S3 に子ども安全ネガティブトークン(violence/gore/horror/blood/mature/nudity/weapon…)をカバー、beats の成熟コンテンツをスキャン(strict モードではエラー)。つまり、--child は純粋に任意の「子ども安全スイッチ」であり、指定しない限り漫劇コンテンツは完全に自由で、幼児化されることはありません。

取得スクリプト(IPリスクゼロ)

2つのスクリプトは標準ライブラリ + システム curl のみで動作し、pip install は不要です:

# S2 ビジュアルアセット:OBI パブリックドメイン多絵柄挿絵(童書/中国漫画スタイル含む)+ Openverse CC0 画像 + Met パブリックドメインアート
python scripts/fetch_visual_assets.py --out <DIR> --sources obi,openverse,met

# S4 音声:Openverse CC0(キー不要);PIXABAY/FREESOUND キーを設定すると拡張チャンネルが有効に
python scripts/fetch_audio.py --out <DIR>
  • 品質ゲート内蔵:ライセンス(PD/CC0)、画質(長辺≥1000 かつ短辺≥600、ファイル≥50KB)、重複除去(SHA256、実行間で永続化)、ソースゲート(機関ソースのみ)、センシティブゲート(Openverse の mature=true は一律除外、全プラットフォームで厳格な要件)。
  • OBI 転送は curl エンジン(--retry 5 --retry-all-errors -k)を使用し、Python urllib で生じる SSL 切断を回避。

五つの品質ゲート(全駅共通)

  1. ライセンスゲート:S2/S4 は Public Domain / CC0 のみ受け入れ。CC BY 4.0 を導入する場合は attribution 必須。
  2. 画質ゲート:画像は長辺≥1000 かつ短辺≥600。音声は 0.3〜180秒、ファイル≥100KB。
  3. 重複除去ゲート:SHA256 で実行間をまたいで永続化。重複画像/音声は自動スキップ。
  4. ソースゲート:機関レベル / パブリックドメインソースのみ(OBI、Openverse、Met、Freesound CC0…)。不明なソースは拒否。
  5. センシティブゲート:全コンテンツで mature を除外(子ども向けはさらに強化)。S2/S3 で IP ファイアウォールネガティブプロンプトを強制注入し、既知の著作権キャラクターをブロック。人気漫劇 / ネット小説 IP については、その題材 / 感情 / 爽快ポイント構造(方法層)を参考にすることは可能だが、個別キャラクター、個別シーン、名場面の完全なコピー(完全な盗作)は禁止。

IP ファイアウォール(参考にするがコピーしない)

  • 恒常的なネガティブプロンプトは assets/s2/negative-ip.json を参照。Peppa Pig、Disney、Marvel、Sanrio、Numberblocks、My Little Pony など登録済みのリアルな第三者著作権キャラクター像をカバー。これらはハードボーダーであり、参考にするかどうかにかかわらず再現してはならない(アクセスゲートはトークンカバレッジを強制検証)。
  • 漫劇固有の規律(参考にするがコピーしない):人気漫劇 / ネット小説 IP の「題材タイプ、感情構造、爽快ポイントパラダイム、カメラ言語、リズム」は方法層に属し、著作権で保護されず、創作の栄養として利用可能であり、参考にすることを奨励。しかし、完全な盗作は禁止。すなわち、個別キャラクターをそのままコピーする(同名・同設定)、個別シーンで名場面の構図を複製する、看板絵柄/特徴的な配色組み合わせを直接複製する、原文のセリフを流用することは禁止。ユーザーが特定のヒット作を指名した場合でも、その「再利用可能な方法骨格」のみを抽出し、「表現」は抽出せず、オリジナルの説明(「強い宿命感のある黒衣の男性主人公 + 紅衣の女性主人公が対峙」)に変換してから画像/動画モデルに投入し、さらに negative prompt の二重安全策でリアルな第三者著作権キャラクター像をブロックする。
  • 本スキルはいかなる著作権テキストも内蔵せず、構造/書き方層のパラダイムのみを統計。すべての例はパブリックドメインまたはユーザー自身の素材。

Resources

  • assets/s1/:ストーリー構造テンプレート、改編圧縮方法論、記入可能なビート表、脚本フォーマット仕様、2つの改編例。
  • assets/s2/:ネガティブプロンプトリソース negative-ip.json + IP ファイアウォール説明 negative-ip-firewall.md + キャラクターアセット方法論 character-design.md + シーンアセット方法論 scene-multiview.md。
  • assets/s3/:絵コンテテンプレートライブラリ template-library.json、カメラムーブメントライブラリ camera-movements.json、プラットフォームプリセット platform-presets.json、タグ統計 tag-stats.json、品質ネガティブプロンプト negative-quality.md。
  • assets/s4/:取得済み CC0 音声リスト audio-manifest.json。
  • scripts/:fetch_visual_assets.py(S2 画像取得)、fetch_audio.py(S4 音声取得)、build_storyboard.py(S1+S2 → S3 絵コンテスキャフォールディング自動生成。ref_images アンカー自動抽出 / power_dynamic 自動キャラクター選択 / --target-duration カット予算 / --no-growth 自己成長提案オフをサポート)、resolve_ref_images.py(S5 で ref_images トークンを実際の画像パスに解決、storyboard.resolved.json を出力)、build_ffmpeg_concat.py(S5 で storyboard.json から FFmpeg 結合リスト + コマンドを生成)、validate_pipeline.py(駅間アクセスゲート。デフォルト --content-rating normal でコンテンツ制限なし。--content-rating child / --child で子ども向けハードゲート発動)、collect.py(自己成長収集エンド:一度の実行成果物 + 人間の評価 + 失敗ログをメモリサーバーにフィードバック)、load_learnings.py(自己成長フィードバックエンド:メモリサーバーから learnings.json を取得しローカルにキャッシュ、build_storyboard.py が高頻度失敗パターンの提案を読み取り)。
  • memory_server/:server.py(依存ゼロのメモリサービス、4テーブル SQLite + Bearer 認証 + レート制限)、growth.py(集約 → snapshot/learnings.json + フィードバック priors)、.env.example、README.md(Caddy HTTPS / systemd / cron デプロイ)。
  • references/:architecture-licenses.md(オープンソースソリューションの参考とライセンス境界)、workflow.md(五駅の詳細契約と使用方法)、case-studies.md(ヒット漫劇/ショートドラマのカメラ・絵コンテ文法参考、方法論文献。IP をそのままコピーしない)、benchmark.md(比較評価:NVP vs ViMax/seedance/ai-shortfilm/ArcReel 等のスコア行列 + 実証自己テスト)、s5-composite.md(S5 合成 SOP:五段階クローズ + ツールマトリックス + 一貫性最終チェックリスト)。

注意事項

  • 大容量の画像ライブラリ/音声ライブラリはスキルに内蔵しません(可搬性維持)。実行時にスクリプトで取得するか、自身の CC0 素材ディレクトリ(./assets/characters、S4-音声ライブラリ/samples/ など)を指定してください。
  • 本スキルはオーケストレーション方法論 + 自己完結型アセットであり、ViMax/ArcReel などの外部コードに依存しません。
  • BHL キー / NYPL トークンを取得した後、fetch_visual_assets.py に fetch_bhl() / fetch_nypl() チャンネルを独自に追加可能(OBI はキー不要で動作確認済み)。

自己成長(任意 · データクローズドループ)

スキルを使用とともに自己成長させることが可能:各生産ライン実行後に、客観的指標 / 人間の評価 / 失敗ログをメモリデータベースにフィードバックし、集約後に「高頻度失敗パターンの提案 / 評価 / スタイル信号」をスキルにフィードバック。次回生成時に事前に回避。純粋な標準ライブラリ、依存ゼロ、一台の小型サーバーに独立デプロイ可能で、スキル本体とは疎結合。完全なデプロイは memory_server/README.md を参照。

単機で使う?デプロイ不要。 NVP_MEMORY_URL を設定しない場合、collect.py / load_learnings.py は自動的にスキル内の SQLite(memory_server/data/nvp_memory.db)に直接接続し、収集後に自動で集約。設定ゼロで完全クローズドループが動作。複数機の集約 / 複数人でのコラボ / リモートフィードバックの場合のみ、server.py を起動する必要があります(下記「サービス起動」と README §2 参照)。

クローズドループの3ステップ:

  1. 収集(生産ライン実行後):python scripts/collect.py --project <DIR> --platform bilibili が自動で script.json / storyboard.json / storyboard.resolved.json から beats / shots / 解決率 / 時間などの指標を読み取り、メモリデータベースに書き込みます(デフォルトはローカル SQLite。NVP_MEMORY_URL が設定されている場合はサービスに POST)。人間の評価 --feedback 5 overall "リズムがいい" や失敗ログ --failures fails.json を追加可能。オフラインマシンでは --mirror ./mirror.json --dry-run でミラーを生成し、後で collect.py --sync ./mirror.json でサーバーに同期。--local で強制ローカル、--remote で強制サービス。
  2. 集約(ローカル自動 / サーバー定期):ローカルモードでは収集後自動で集約。HTTP モードでは cron で毎時 python memory_server/growth.py を実行し、SQLite の 4 テーブルを snapshot/learnings.json に集約し、安定した知識を priors テーブルに upsert。
  3. フィードバック(次回生成前):python scripts/load_learnings.py が learnings.json を読み取り、.cache/learnings.json にキャッシュ(デフォルトはローカル snapshot を読む;URL が設定されている場合はリモートから取得。--local で強制ローカル、--no-fetch でキャッシュのみ読み取り)。build_storyboard.py が自動読み取り、生成時に「自己成長提案」(高頻度失敗パターン → 事前回避、例:未解決参照画像、権力軸欠落ショット)を表示。--no-growth でオフ。

サービス起動:python memory_server/server.py --no-auth(ローカルテスト)または python memory_server/server.py(パブリック、NVP_API_TOKEN 環境変数 / --token が必要。Caddy リバースプロキシで TLS 対応)。エンドポイント:GET /health、POST /ingest、GET /query、GET /snapshot、GET /export。

関連スキル