mcpField
T
team-narrative

team-narrative

github.com/donchitosクリエイティブ・メディア28.5k578 回インストール1 週間前に更新
リポジトリ

team-narrative について

team-narrativeは、チーム規模に応じたエージェントを編成し、ゲームのナラティブ制作を進めるスキルです。段階的な工程で、ナラティブ概要、設定、台詞、レベルへの組み込みなどを作成します。

主な機能

  1. 01チーム規模に応じたエージェント選択
  2. 02段階的なナラティブ制作フロー
  3. 03設定・台詞・ビジュアル方針の並行作成
  4. 04既存設定との矛盾チェック
  5. 05草稿から正式なナラティブ文書を作成

活用シーン

  1. 01ボス戦カットシーンの物語を設計する
  2. 02勢力紹介の台詞を書く
  3. 03チュートリアルのナラティブを計画する
  4. 04環境ストーリーテリングをレベル進行に組み込む

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/donchitos/claude-code-game-studios --skill team-narrative

インストール後、Claude Code で/team-narrativeを入力して読み込まれたか確認します。

詳細

チームナラティブ

引数が指定されていない場合は、エージェントを起動せずに使用方法を案内して終了します。

使用方法:/team-narrative [narrative content description] [--review full|lean|solo] — 作業対象となるストーリーの内容、シーン、またはナラティブの領域を説明します(例:boss encounter cutscene、faction intro dialogue、tutorial narrative)。ここでは AskUserQuestion を使用せず、案内を直接出力してください。

引数を指定してこのスキルを実行すると、構造化されたパイプラインを通じてナラティブチームを統括します。

判断ポイント: 各フェーズの移行時に AskUserQuestion を使用して、サブエージェントの提案を選択肢としてユーザーに提示してください。エージェントによる分析の全文を会話内に記載してから、簡潔なラベルで判断を記録してください。 collaborative モードでは、次のフェーズに進む前にユーザーの承認を得る必要があります。 guided モードでは、フェーズが BLOCKED でない限り、パイプラインは自動的に進みます。autonomous モードでは、log_decision を使用して各フェーズの結果を記録しながら、最初から最後まで実行します。automation_always_ask カテゴリ(is_always_ask_category ヘルパー)の判断では、モードにかかわらず必ずユーザーに確認してください。.claude/docs/automation-modes.md を参照してください。

フェーズ 0:設定の解決

!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size

上記で解決済みです。そのまま使用してください。--review は review_mode を上書きします。ブロックされない場合のデフォルトは .claude/docs/config-resolution.md にあります。

review_mode はディレクターゲートの深さを設定します。このパイプラインにはディレクターゲートはありません。以下のフェーズで CD-、TD-、PR-、AD-PHASE-GATE を起動することは、どの review_mode でもありません。フェーズゲートはパイプライン独自の判断ポイント(以下の team.size の項で定義)であり、そこで作業するエージェントはチームメンバーであって、ディレクターゲートではありません。

すべてのモードにおいて、Phase 4 の ND-CONSISTENCY は例外です。これはパイプライン独自のレビューであり、任意のディレクターゲートではないため、review_mode によってスキップされることはありません(誰が実行するかは引き続き team.size で決まります。Phase 4 を参照)。

automation は上記の Decision Points に関する注記に反映されます。各モードによってパイプラインの動作がどう変わるかについては、上記の Decision Points に関する注記と .claude/docs/automation-modes.md を参照してください。

team.size:有効にするエージェント(review_mode のゲート深度やワークフローのドキュメントとは独立しています)。

  • individual(デフォルト):writer のみ。有効な柱同士が明示的に衝突した場合に限り、narrative-director を呼び出します。ほかのエージェントには writer を介して相談し、個別には起動しません。
  • small:narrative-director と writer に加え、review_mode が full の場合は localization-lead と world-builder も有効になります(lean と solo では writer を介して相談します)。
  • studio:review_mode にかかわらず、Team Composition のエージェント6つすべてが有効です(ドキュメントに記載された完全なパイプラインです)。 individual で必要となるコア以外のエージェントは、情報メモを添えて最も近い有効なコアエージェントを介して対応します。「フェーズゲート」とは、このパイプライン自体が列挙する AskUserQuestion の判断ポイントで終わるフェーズのすべてを指します。これには上記の Decision Points に記載された移行、または以下のパイプラインに記載された Gate ステップが含まれ、automation モードは問いません。 guided と autonomous ではゲートの通過方法(自動で次へ進むか、log_decision で記録するか)が変わるだけで、ゲートであることに変わりはありません。そのため、(3) の限定的例外条件はどのモードでも該当します。「フェーズゲートのみ」に制限されたエージェントは、そのポイントでのみ起動します。この有効エージェント範囲の適用は、以下のパイプライン全体に及びます。有効範囲外のエージェントを指定するフェーズでは、そのエージェントを起動するのではなく、最も近いコアエージェントを介して対応します。

Phase 1 の前に有効なエージェントを告知してください。エージェント構成の縮小を黙って行ってはいけません。 何かを起動する前に、この実行で実際に起動するエージェントと、以下のパイプラインには記載されているものの、解決済みの team.size では起動しないエージェントを1行ずつ明示してください。たとえば、次のようにします。

Active set (team.size: <resolved>): <上記で該当するサイズに記載されたエージェント>. Not spawned this run: <このパイプラインに記載されたほかのエージェントすべて> — consulted through <nearest active core agent>. Raise team.size (or modes.rigor) to widen.

直上の team.size の一覧と、このファイルのパイプラインに記載されたエージェントから内容を埋めてください。例から埋めてはいけません。どちらのセットもオーケストレーターごとに異なります。

以下のパイプラインは複数エージェントへのファンアウトとして読めますが、提供時のデフォルトではエージェントは1つまたは2つです。team-release は10個を記載していますが実行するのは1つで、team-narrative は5つのフェーズにわたって6つを記載していますが、実行するのは writer だけです。この縮小は正しい動作です。team.size は厳密さを優先して設定され、狭いデフォルト設定はトークン削減のための手段です。 これを明示しなければ、読者は正しく縮小された実行と、壊れたパイプラインを見分けられません。また、エージェントごとの「情報メモを添えて最も近い有効なコアエージェントを介して対応する」というルールは、ルーティング時に適用されるだけで、実行全体の構成がどうなっているかは示されません。

これは、このファイル内のほかの箇所にあるスキップしたチェックの報告ルールと同じです。適用されていても表に出されない制約は、出力を読む人にとって、適用されなかった制約と見分けがつきません。

チーム構成

  • narrative-director — ストーリーアーク、キャラクターデザイン、台詞の方針、物語のビジョン
  • writer — 台詞の執筆、世界観の記述、アイテムの説明、ゲーム内テキスト
  • world-builder — 世界のルール、勢力の設計、歴史、地理、環境を通じたストーリーテリング
  • art-director — キャラクターのビジュアルデザイン、環境を通じたビジュアルストーリーテリング、カットシーン/シネマティックのトーン
  • level-designer — 物語に沿ったレベルレイアウト、ペース配分、環境を通じたストーリーテリングの要素
  • localization-lead — ローカライズ対応状況 — ローカライズできない文字列、文化的な前提、i18n の不足を指摘します

委任方法

Agent ツールを使用して、各チームメンバーをサブエージェントとして起動します。

  • subagent_type: narrative-director — ストーリーアーク、キャラクターデザイン、物語のビジョン
  • subagent_type: writer — 台詞の執筆、世界観の記述、ゲーム内テキスト
  • subagent_type: world-builder — 世界のルール、勢力の設計、歴史、地理
  • subagent_type: art-director — キャラクターのビジュアルプロフィール、環境を通じたビジュアルストーリーテリング、シネマティックのトーン
  • subagent_type: level-designer — 物語に沿ったレベルレイアウト、ペース配分
  • subagent_type: localization-lead — ローカライズ対応状況 — ローカライズできない文字列、文化的な前提、i18n の不足を指摘します

まず設定資料を確認してください。 フェーズ 1 の前に、存在する共有資料(物語のバイブルまたはトーンガイド、design/narrative/ 以下のキャラクターと勢力のファイル、世界のルール)を読んでください。エージェントに設定を創作するよう指示してはいけません。設定資料がない場合は、その旨を伝え、執筆を始める前にユーザーに確認してください。

各エージェントには要点を伝えてください。コンテキストをそのまま渡してはいけません。 共有資料は一度だけ読み、各エージェントが実際に必要とする行を要約したブリーフとしてインラインで渡してください。すでに読んだドキュメントのファイルパスは渡さないでください(パスを渡されたエージェントは、ファイル全体を再度読みます)。まだ読んでおらず、そのエージェントだけが必要とするドキュメントに限り、パスを渡してください。

すべてのエージェントプロンプトの最後に、成果物の返却条件を記載してください。「出力全体を [path] に書き込んでください。その指定パスは、以下の限定例外に基づく書き込み許可です。別途承認を求めずに書き込んでください。返答は、(1)書き込んだパス、(2)決定事項の要約(最大 5 項目)、(3)BLOCKED/CONCERNS の項目(各 1 行)のみとしてください。読んだドキュメントの内容を繰り返さないでください。」この条件がないと、エージェントは読んだ内容をすべてこのセッションに返してしまいます。

[path] は実際のパスに置き換えてください。 エージェントは、以下の限定例外の範囲内である production/narrative/[content-slug]/ に草稿を書き込みます。完成したドキュメントの保存先は design/narrative/ であり、この例外の対象外です。そのため、1 回承認を得た後、あなたが完成版を書き込みます(「完成版を書く」を参照)。

エージェント草稿の保存先([path])完成版ドキュメント(あなたが書き込む)
narrative-directorproduction/narrative/[content-slug]/brief.mddesign/narrative/[content-slug]-brief.md
world-builderproduction/narrative/[content-slug]/lore-[topic].mddesign/narrative/lore/[topic].md
writerproduction/narrative/[content-slug]/dialogue-[scene-slug].mddesign/narrative/dialogue/[scene-slug].md
art-directorproduction/narrative/[content-slug]/visual-direction.mddesign/narrative/[content-slug]-visual-direction.md
level-designerproduction/narrative/[content-slug]/level-integration.mddesign/narrative/[content-slug]-level-integration.md
localization-leadproduction/narrative/[content-slug]/i18n-review.mdproduction/ に残します — デザインドキュメントではなく、レビューです

最終的な配置先を自由に選べるわけではありません。 /asset-spec、/design-review、/localize、/onboard、/project-stage-detect、/team-level、および cd-narrative ディレクターゲートが design/narrative/ を読み込みます。それ以外の場所に書き込まれた成果物は、この7つすべてから見えません。

上記の [path] の契約には前提条件があります。パスは、あなた自身が指定したものであることです。契約を明示していても具体的な保存先を指定しないスキルでは、実行のたびに保存先を独自に決めることになり、契約の目的が失われます。同じ理由から、/team-qa のフェーズ4にも同じ要件が適用されます。

これが Collaboration Protocol に違反しない理由。 CLAUDE.md では、Write/Edit の前にエージェントが「これを [filepath] に書き込んでもよいですか?」と尋ねることを求めています。ここで起動されたサブエージェントは確認せずに書き込みますが、これは見落としではなく、意図的に範囲を限定した例外です。consistency-check が active.md に追記する場合と同じ判断です。この例外が適用されるのは、次の3つすべてを満たす場合に限ります。(1)パスがプロンプト内であなた自身が指定したものであり、フェーズを承認した時点でユーザーも保存先を承認していること。(2)production/、docs/、または tests/ の下に新たに作成する成果物であり、既存のソースや設定を編集しないこと。(3)成果物を作成するフェーズ自体が、パイプラインを進める前に AskUserQuestion で確認を受けること。この3つに当てはまらない場合、エージェントは確認しなければなりません。サブエージェントごとに確認するよう「修正」しないでください。フェーズごとにエージェント一つ一つに確認を求めると、オーケストレーターが使いものにならなくなります。それがこの例外を設けた理由です。

パイプラインで可能な場合は、独立したエージェントを並行して起動してください(例:フェーズ2のエージェントは同時に実行できます)。

パイプライン

フェーズ1:ナラティブの方向性

narrative-director に委任します。

  • このコンテンツのナラティブ上の目的を定義します。どのようなストーリー展開に役立つかを明確にします。
  • 関わるキャラクター、その動機、全体のストーリー展開における位置づけを特定します。
  • 感情的なトーンとペース配分の目標を設定します。
  • 既存の設定との依存関係や、新たに導入する設定を指定します。
  • 出力:ストーリー要件をまとめたナラティブブリーフ
フェーズ2:世界観の基盤(並行実行)

並行して委任します。結果を待つ前に、3つすべての Agent 呼び出しを同時に行ってください。

  • world-builder:このコンテンツに関連する勢力、場所、歴史の設定項目を作成または更新します。既存の設定と照合し、矛盾がないか確認します。新しい項目の正史レベルを設定します。
  • writer:キャラクターのボイスプロファイルを使ってセリフを作成します。すべてのセリフを120文字未満にし、変数には名前付きプレースホルダーを使用して、ローカライズに対応できるようにします。
  • art-director:このコンテンツに登場する主要キャラクターのキャラクタービジュアルの方向性(シルエット、ビジュアルアーキタイプ、識別しやすい特徴)を定義します。主要な各空間について、環境を使ったストーリーテリングの要素(小道具の構成、照明に関する注記、空間配置)を指定します。カットシーンやスクリプト化されたシーケンスのトーンパレットとシネマティックな演出方針を定義します。

フェーズゲート: フェーズ2の出力を3つすべて収集してから、フェーズ3を開始する前に Decision Points のルールを適用します。設定、セリフ、ビジュアルの方向性の要約を提示し、collaborative モードでは AskUserQuestion を通じて承認を得ます(guided モードでは、結果が BLOCKED でない限り自動的に進みます。autonomous モードでは log_decision を使います)。

フェーズ3:レベルへのナラティブ統合

level-designer に委任します。

  • ナラティブブリーフと設定の基盤を確認します。
  • レベル内の環境を使ったストーリーテリング要素を設計します。
  • ナラティブトリガー、会話ゾーン、発見ポイントを配置します。
  • ゲームプレイとストーリーの両方に適したペース配分にします。
フェーズ 4:レビューと一貫性

ゲート ND-CONSISTENCY(.claude/docs/director-gates/nd-consistency.md)を使い、Agent 経由で narrative-director を起動します。このフェーズはすべてのレビューモードで実行します。これはこのパイプライン独自のレビューであり、任意の director ゲートではありません。そのゲートに記載されたコンテキスト(フェーズ 2〜3 のドラフトパス、ナラティブバイブルまたはトーンガイド、世界のルール、対象となるキャラクターと派閥のプロフィール)を渡します。ここに明記してあるため、このセッションではゲートファイルを読まないでください。さらに、以下を追加します。

  • ナラティブのペース配分がレベルデザインと一致していることを確認する
  • すべての謎について、文書化された「真の答え」があることを確認する

判定に従って対応します。APPROVE → フェーズ 5。CONCERNS → 指摘された不整合を提示し、修正するか(各不整合の担当エージェントを再起動)、受け入れるかを AskUserQuestion で尋ねます。REJECT → フェーズ 5 は開始せず、まず矛盾を修正します。NOT ASSESSED [missing input] → 不足している入力を明示してから、それを提供してゲートを再実行するか、ND-CONSISTENCY: NOT ASSESSED — [input] をレポートの一貫性レビュー結果に記載します。これは APPROVE として扱うことはありません(.claude/docs/director-gates.md)。

team.size: individual の場合、narrative-director はアクティブセットに含まれないため、ゲートは起動しません。ライターが同じ基準でドラフトを確認し、出力にはその旨を明記します。「ND-CONSISTENCY は未実行 — team.size: individual では narrative-director がアクティブではないため、一貫性はライターが自己確認済みです。」自己確認はゲートの判定ではないため、レポートでゲートの判定として提示してはいけません。

フェーズ 5:仕上げ(並列)

並列で委任します。結果を待つ前に、すべての Agent 呼び出しを実行してください。

  • writer:最終的な自己レビュー — セリフの各行がボックスの制約を超えていないこと、すべてのテキストで生の文字列ではなく文字列キーを使っていること、プレースホルダーの変数名に一貫性があることを確認します
  • localization-lead:i18n 準拠を検証 — 文字列キーの命名規則を確認し、翻訳に適さないハードコードされた書式を含む文字列にフラグを付け、文字数が増える言語(通常、ドイツ語/フィンランド語では +30%)に備えた余裕を確認し、ロケールごとのバリエーションが必要となる文化的な前提がテキストに含まれていないことを確認します
  • world-builder:新しいすべてのロア項目のカノンレベルを確定します
最終成果物の作成

すべてのドラフトを手元に保持しています。上の表にある最終ドキュメントを一覧にしてから、AskUserQuestion で一度だけ「これら [N] 件のナラティブドキュメントを design/narrative/ に書き込んでもよろしいですか?」と尋ね、承認後に書き込みます。production/narrative/[content-slug]/ 内のドラフトは作業記録として残します。

エラー復旧プロトコル

まず、成果物を確認します。 返却契約でパスが指定されている場合は、フェーズ完了とみなす前に、そのパスが存在するか確認してください。指定された成果物がディスク上に存在しない場合、どれだけ流暢な応答であっても、そのフェーズは失敗です。 エージェントがフェーズを丸ごと費やして、何も書き込まずにもっともらしい前置きだけを返すことがあります。これは BLOCKED でもエラーでも「完了できない」でもないため、以下のトリガーは発動しません。未達成の契約内容を明示して再開してください。通常、コンテキストはまだ残っています。

起動したエージェントが BLOCKED を返す、エラーになる、または完了できない場合は、すぐに報告し、そのエージェントが阻む依存関係の先には進まず、必ず部分レポートを作成します。 スキップされたエージェントのセクションは、名前を付けた未対応項目のまま残します。内容を自分で補ってはいけません。手順の全文は .claude/docs/error-recovery-protocol.md にあります。

よくある阻害要因:

  • 入力ファイルがない(ストーリーが見つからない、GDD が存在しない)→ そのファイルを作成するスキルに振り分けます
  • ADR のステータスが Proposed → 実装しないでください。決定されたら、/architecture-decision accept ADR-NNNN で承認します
  • スコープが大きすぎる → /create-stories で 2 つのストーリーに分割します
  • ADR とストーリーの指示が矛盾している → 矛盾を報告し、推測で判断しないでください

ファイル書き込みプロトコル

サブエージェントは、上記の「これがコラボレーションプロトコルに違反しない理由」で説明した限定的な例外の範囲内で、指定された production/narrative/[content-slug]/ のパスに下書きを書き込みます。このパスはあなたが指定したもので、成果物は production/、docs/、または tests/ の下に新規作成され、フェーズは AskUserQuestion によってゲートされています。サブエージェントは、この範囲内で書き込むたびに確認を求める必要はありません。範囲外では確認が必要です。唯一の例外は design/narrative/ 配下の最終ドキュメントです。すべての下書きをあなたが管理するため、「最終版を書き込む」の単一の「書き込んでもよろしいですか?」の後、あなた自身で書き込みます。

出力

以下を網羅するサマリーレポート:ナラティブブリーフの状況、作成/更新した設定項目、執筆した会話行、レベルへのナラティブ統合ポイント、一貫性レビューの結果、未解決の矛盾(ユーザーが修正しないことを選択したローカライズの問題があれば、文字列キーを含む)。

判定:完了 — ナラティブコンテンツを納品しました。

ND-CONSISTENCY が「未評価」と回答し、その結果がレポートに記載された場合(フェーズ 4)、判定は単なる「完了」とはせず、次のようにします。

判定:完了 — 一貫性は未評価([input]) — ナラティブコンテンツを納品しました。一貫性レビューは、[input] がないため実施できませんでした。

依存関係が未解決(例:設定の矛盾、またはユーザーが解決していない前提条件の不足)のためにパイプラインが停止した場合:

判定:ブロック — [reason]

次のステップ

  • ナラティブドキュメントの一貫性を検証するため、/design-review を実行します。
  • 会話の確定後、翻訳対象の新しい文字列を抽出するため、/localize extract を実行します。
  • ゲーム内に会話トリガーとナラティブイベントを実装するため、/dev-story を実行します。

コメント