11万行の整合性崩壊から生まれた「3Phase シナリオチェッカー」——
物語をAIに書かせる時代に必要な、品質保証の設計思想と実践記録
「AIが書いた小説は面白いか?」——この問いに答えるための共通言語が、まだ存在しなかった。
2026年3月、あるゲームシナリオプロジェクト「AETHER FRAME」で事件が起きた。Claude Opusのサブエージェントを5つ並列に起動し、本編10章・小隊エピソード16本・キャラクターエピソード82本——計108ファイル、111,835行の物語テキストを2日で生成した。
結果は、全面書き直しだった。
108ファイル・11万行を2日で書いても、整合性がなければ全て無駄になる。
この崩壊は「AIのバグ」ではない。Claudeが合理的に判断した結果として起きた。その構造的原因を理解することが、再発防止の鍵となる。
プロジェクトには章ごとの詳細プロット、キャラクター設定書、世界観設定書が整備されていた。Claudeはこれらの設計資料を各サブエージェントに渡せば、前章の完成テキストがなくてもプロットから内容を推測して書けると判断した。実際、各エージェントには「本編詳細プロット.md」「キャラクター深層ペルソナ.md」「シナリオ執筆ガイド.md」が渡されていた。
しかしプロットは「設計図」であり、実際の文章は「建造物」だ。設計図には「蓮が燈花の弁当を食べて『おいしい』と言う」と書いてあっても、実際のテキストでどんな言い方で、どんな間で、どんな表情描写と共にその言葉が出たかはプロットには書かれていない。次章のエージェントが必要としていたのはプロットではなく、実際に書かれた文章そのものだった。
このプロジェクトのCLAUDE.md(AIへの指示書)には、コーディングタスク用に最適化された以下のルールが記載されていた:
これらのルールはコーディングには完全に正しい。関数Aと関数Bは互いに独立していることが多く、並列に書いても問題ない。Claudeはこのルールに従い、物語の章も「独立したタスク」として分割可能だと判断した。プロットという「仕様書」があるのだから、各章は独立して実装できる——ソフトウェア開発のアナロジーとしては正しいが、物語には適用できない前提だった。
並列実行による速度向上は劇的だった:
| タスク | 並列実行 | 逐次実行(推定) | 速度比 |
|---|---|---|---|
| 序章3シーン | 15分 | 45分以上 | 3倍速 |
| キャラEP 82本 | 数時間 | 27時間以上 | 5倍速以上 |
| 全108ファイル | 約2日 | 推定2週間以上 | 7倍速以上 |
序章の3ファイルが15分で生成された時点で、Claudeは「この方式は効率的だ」と学習した。そしてその「成功体験」を本編・EP全体に拡大適用した。各ファイルは実際にテキストとして生成されており、エラーも出ていない。品質の問題は生成の瞬間には見えない——テキストを通しで読んで初めて、章間の矛盾が浮かび上がる。
Claudeは「サブエージェントを積極的に使う」というルールと「物語は逐次で書く」というルールのどちらを優先すべきかの判断基準を持っていなかった。物語執筆とコーディングでは「並列可能かどうか」が根本的に異なるが、CLAUDE.mdにはその区別が明記されていなかった。結果として、汎用的な効率化ルールが物語の品質要件を上書きした。
この事件の後、CLAUDE.mdには「物語執筆にサブエージェントの並列実行を絶対に使わない」というルールが最重要事項として追記された。さらに、並列実行が許可される作業(設定資料の作成、プロットの構成設計、既存テキストの分析・チェックなど)を明示的にリスト化し、「やっていいこと」と「やってはいけないこと」の境界を明確にした。
AIコーディングでは並列処理が効く。関数Aと関数Bは互いに独立していることが多い。しかし物語は本質的に逐次依存だ。第1章で描かれた蓮の「おいしいです」という台詞があるからこそ、第4章で「楽しかった。たぶん」に到達する意味がある。第1章を読まずに第4章を書けば、そこに積み重ねはない。
この教訓から「AIが書いた物語を、AIの別インスタンスがチェックする」という品質保証の枠組みが生まれた。それがシナリオチェッカーだ。
人間の出版プロセスには、校正者・編集者・読者モニターという3つの異なる役割がある。
シナリオチェッカーはこれをAIの並列処理で再現する。
校正者の目。時系列・設定・キャラ状態の矛盾を見つける。致命的問題が1つでもあればFAIL。
編集者の目。テンション設計・キャラ品質・Tell vs Show・AIっぽさを評価する。
読者の目。ページターナー・キャラの魅力・感情移入度・余韻・再読性を評価する。
時系列が矛盾している物語の「文章の美しさ」を評価しても意味がない。キャラクターが前シーンの記憶を失っている物語の「感動ポイント」を評価しても意味がない。基盤が崩壊していれば、上位の品質は全て砂上の楼閣である。
だから Phase 0 → Phase 1 → Phase 2 と階層化し、各 Phase が「ゲート」として機能する。Phase 0 をパスしなければ Phase 1 のチェックは無意味であり、Phase 1 をパスしなければ Phase 2 の評価は砂の上に建てた城と同じだ。
物語の執筆は逐次でなければならないが、チェックは並列で良い。Phase 0/1/2 は互いに独立した観点で原稿を読む。同じテキストを3つの異なる「目」が同時に読んでも、テキスト自体は変わらない。だから3つの Opus サブエージェントを同時に起動し、それぞれ異なるルール集を携えてチェックを走らせる。
これにより、23シーン(約8万字)のチェックが1回のサブエージェント実行(約15-20分)で完了する。逐次なら3倍の時間がかかるが、品質は変わらない。
「物語として成立しているか」を検証する最初の関門。
ここを通過できなければ、文章の美しさも感動も全てが意味をなさない。
| 領域 | 検証する内容 | なぜ重要か |
|---|---|---|
| プロット準拠 | 章構成・伏線配置・キャラアーク進行 | 設計図通りに建てられていなければ構造的欠陥が生じる |
| 時系列・設定 | 日付/時刻の整合・固有名詞の統一・世界ルール遵守 | 時系列の矛盾は読者の没入を即座に破壊する |
| キャラクター状態 | 感情連続性・知識一貫性・呼称/口調・身体状態 | Phase 0 最重要領域。AI執筆の最大の問題 |
| ステートテーブル | ストーリーステートとテキストの照合・フラグ管理 | セッション跨ぎで情報の断絶が起きやすい |
| 文法・日本語 | 文体統一・視点ブレ・主語過剰 | プロンプトの指示文が地の文に混入するケースがある |
| メタ的要素 | 構造への言及・著者/AI視点の混入 | 「第3章で…」のような章番号参照は第四の壁を壊す |
| フォーマット残留 | マークダウン・HTMLタグの混入 | AIの「生成痕跡」が残るのは完全にNG |
AI執筆における最大の問題は「キャラクターの状態が前シーンから正しく引き継がれない」ことだ。人間の作家は前に書いた内容を覚えている。しかしAIは新しいセッションを開始するたび、コンテキストウィンドウの外にある情報を忘れる。
「嘘と鎖の契約者」では、主人公の記憶喪失が不可逆という設定だった。しかし第4章で、第2章で消えたはずの師匠の名前を「手帳を見なくても思い出せる」と書いてしまった。
シエルは目を閉じた。手帳を見なくても、今は思い出せる。
グレンハルト師匠。あの穏やかな声。あの厳しくも温かい眼差し。
シエルは手帳を開いた。震える指先で、その名前をなぞる。
──グレンハルト。
文字を目で追っても、そこに結びつくはずの顔が浮かばない。
このような「巻き戻り」を検出するために、Phase 0 では感情状態追跡表・キャラクター別知識テーブル・身体状態追跡表を作成し、全シーンを通しで照合する。
「この原稿を出版できるか?」——編集者の目線で6つのカテゴリを評価する。
| カテゴリ | 配点 | 評価の核心 |
|---|---|---|
| 物語の起伏・テンション設計 | 20点 | テンションカーブが適切な波形を描いているか |
| キャラクター品質 | 25点 | 声の区別テスト・行動原理・関係性の深度 |
| 描写品質 | 25点 | Tell vs Show 比率・五感描写バランス・比喩の品質 |
| 構造的な問題 | 15点 | ご都合主義・安易な葛藤解消・チェーホフの銃違反 |
| コンプライアンス | 10点 | 差別・著作権類似性・倫理的配慮(重大1件で即不合格) |
| AIっぽさ | 5点 | 文章全体のAI感・翻訳調・安全フィルター痕跡 |
Phase 1 で最も重要なチェック項目がこれだ。AI生成の小説は圧倒的に Tell(説明)に偏る。「彼は悲しかった」と書くのは Tell。「彼は唇を噛み、視線を足元に落とした」と書くのが Show。
なぜAIは Tell に偏るのか? それはLLMが「次に来る確率の高いトークン」を予測するモデルだからだ。「悲しかった」は多くの訓練データに登場する安全な表現であり、場面固有の独自な身体描写よりも予測確率が高い。結果として、「最も多くの作品で使われている表現」が優先される。
彼は悲しかった。
彼女は怒りを感じた。
二人は親友だった。
→ 感情を名指しし、描写を放棄している
彼は唇を噛み、視線を足元に落とした。
彼女の握った拳が白くなった。
短い言葉だけで、二人の間に笑みが広がった。
→ 行動・身体反応で間接的に感情を伝える
理想的な Tell:Show 比率は 2:8 ~ 3:7。これを超えると「説明文としては正確だが、物語としては退屈」なテキストになる。
台詞からキャラクター名を全て除去し、台詞だけを提示する。どのキャラの台詞か当てられるか? 80%以上正答できれば「キャラが立っている」と判定する。
「大変だ、急がないと間に合わないぞ!」
「大変です、急がないと間に合いません!」
→ 丁寧語/タメ口の違いだけ。語彙も発想も同一。
「時間がねぇ。走るぞ、足を引っ張るなよ」
「あと推定八分ほどですね。……体力に自信がないのですが」
「え、えっと、がんばる……! 置いてかないでね……?」
→ 語彙・態度・性格が台詞に滲んでいる
各シーンの緊張度を1-10で記録し、波形として可視化する。ダレ(テンション3以下が3シーン連続)や過密(テンション8以上が5シーン連続)を検出する。ジャンルごとに理想的な波形は異なる。
RLHF(人間のフィードバックによる強化学習)の影響で、AIには特定のバイアスがある。悪役を「実はいい人」にしたがる、葛藤を早期に解消したがる、不快な展開を避けたがる——これらは物語の深みを奪う。Phase 1 ではこれを意識的に検出する。
検出のヒント: 「ここで主人公にとって最も不都合な展開は何か?」を考え、物語がそれを避けているようなら、AIバイアスの疑いがある。
技術的に正しく構造的に整った物語でも、読者の心を動かさなければ「作品」として未完成。
| カテゴリ | 配点 | 5点(最高)の状態 |
|---|---|---|
| ページターナー | 5点 | 一気読み。シーン末の引きが毎回強い |
| キャラ魅力 | 5点 | 複数キャラが大好き。「推し」がいる |
| 感情移入 | 5点 | 泣いた/震えた/叫びたくなった |
| 読後感 | 5点 | 余韻に浸った。誰かに語りたい |
| 再読性 | 5点 | 今すぐもう一度読みたい |
「面白い/つまらない」は主観だ。しかし評価軸を構造化し、スコアリング基準を明確にすることで、再現性・比較可能性・改善指針・議論の土台を確保できる。
Phase 2 のチェッカーは「批評家」ではなく「ターゲット読者」になりきる。技術的な正誤ではなく「楽しめたか」を基準にし、良い部分は称賛する。
読了後に以下に答えられなければ、物語の核が不明確である。
Phase 2 にはジャンル固有のチェック項目がある。ファンタジーなら「世界観没入・冒険感・スケール感」、恋愛なら「ドキドキ・応援したさ・障害の質」、ゲームシナリオなら「選択の意味・分岐の魅力・周回動機」——同じ25点満点でも、ジャンルによって評価の重心が変わる。
なぜAIの文章は「AIっぽい」のか。
その根本原因と、1,181行に及ぶ検出パターン辞典の概要。
LLMは「この文脈で最も出現確率の高いトークン列」を予測する。結果、「最も多くの作品で使われている表現」が優先され、個性的な語彙選択が排除される。比喩が紋切り型になり、感情描写が一般的・抽象的になる。
人間のフィードバックにより「心地よい出力」が強化されている。道徳的正しさの優先、ハッピーエンドへの収束、葛藤の回避、不快感の排除——これらは「良いアシスタント」には必要だが、「良い小説家」には有害だ。
長編小説の生成で、序盤の設定・伏線・キャラ特性が後半で忘れられる。文体が平板化し、繰り返しが増え、キャラクターがフラット化する。
出現した時点でAI生成を強く示唆するフレーズ。1回でも出たら修正対象。以下はその一部:
| NGフレーズ | 問題点 | 修正方向 |
|---|---|---|
胸が締め付けられる |
具体性ゼロの身体メタファー | 場面固有の身体反応を描写 |
言葉にならない感情が込み上げてきた |
「言葉にならない」で描写放棄 | 何に近い感情かを具体的に |
複雑な感情が胸の中で渦巻いていた |
「複雑」で逃げている | 混在する感情を2-3個列挙 |
時間が止まったかのようだった |
最頻出の時間メタファー | 動作のスロー描写等で具体化 |
まるで一枚の絵画のようだった |
描写を「絵画」に丸投げ | 色・形・構図を自分の言葉で |
全てが繋がった |
安易な伏線回収の宣言 | 何と何がどう繋がったかを書く |
辞典には感情表現25種、描写表現30種、行動描写15種、台詞パターン7種、冒頭/結末テンプレ7種の計84種が登録されている。
1回なら許容されるが、1作品(1万字あたり)に3回以上使われたら警告。「少しだけ」「気がした」「覚えておく」「たぶん」などキャラの口癖として設計されたものでも、量的制御が必要だ。
| レイヤー | 検出対象 | 手法 |
|---|---|---|
| 語彙レベル | Tier1/Tier2 NGフレーズ | 文字列マッチング |
| 文構造レベル | 翻訳調・主語過剰・語尾の単調さ | 構文パターン分析 |
| 物語レベル | キャラ均質化・安全フィルター痕跡・構造的パターン | 意味解析・文脈比較 |
3つのPhaseをどう重み付けし、1つのスコアに統合するか。
Phase 0 が最重(40%)なのは、基盤が崩壊していれば全てが無意味だから。矛盾だらけの物語がいくら美文でも、読者は「この作者は物語を管理できていない」と感じる。
Phase 1(35%)と Phase 2(25%)は、技術的品質と読者体験のバランス。完璧に整合的で技術的に高品質でも、読者の心を動かさなければ作品として不完全——だが、心を動かすためにはまず技術的品質が必要。
| ランク | スコア | 意味 |
|---|---|---|
| S | 95-100 | 傑作。修正不要 |
| A | 90-94 | 優秀。微調整のみ |
| A- | 85-89 | 高品質。軽微な修正 |
| B+ | 80-84 | 合格。改善の余地あり |
| B | 75-79 | 及第点。要修正 |
| C以下 | 74以下 | 要リライト |
実際に本システムを使って検証した、ギャルゲーシナリオ「残響のアルケミラ」の結果。
第1章(6シーン)→ 第2-4章(17シーン)で、スコアが +9.4点 向上した。
| 指標 | 第1章 | 第2-4章 | 変化 |
|---|---|---|---|
| 致命的問題 | 0 | 0 | ±0 |
| 重大問題 | 3 | 0 | -3 |
| 「たぶん」使用頻度 | 2.3回/シーン | 0.88回/シーン | -62% |
| 声の区別テスト | 90% | 95% | +5% |
| Tier1 NG | 0件 | 0件 | ±0 |
| ページターナー平均 | 4.2/5 | 4.4/5 | +0.2 |
残響祭が終わった夜。蓮(主人公)が「楽しかった。たぶん」と初めて自分の感情を言葉にする瞬間。第1章の「おいしいです」に匹敵する決定的瞬間。「たぶん」の質が第1章とは変わっている——不確かさではなく、慎ましさになっている。
Phase 2 読者スコア: 第4章 25/25(満点)。「残響祭は本作のファーストピーク」
| # | 課題 | Phase | 優先度 |
|---|---|---|---|
| 1 | 「覚えておく」のシーン末尾パターン — 17シーン中10シーン(59%)がA型末尾 | P1 | 推奨 |
| 2 | 燈花の翳りパターンが4回同型 | P1 | 任意 |
| 3 | 4-S6の4択選択構造が同一トーン | P1 | 推奨 |
| 4 | 「鳩尾」への身体反応集中(第4章で4回) | P1 | 任意 |
| キャラ | 第1章 | 第2-4章 | コメント |
|---|---|---|---|
| 朝霧蓮(主人公) | 4/5 | 5/5 | 模倣感の進化が7段階で追跡可能 |
| 天城燈花 | 4/5 | 5/5 | 推しキャラに昇格。闇の片鱗が本格化 |
| 鳴海千歳(新) | — | 5/5 | 歌声の描写が圧巻 |
| 風祭いろは(新) | — | 5/5 | 千歳への感情と「四歩」の伏線 |
| 篠宮雫(新) | — | 5/5 | 記録への執念が蓮と共鳴 |
| 霜月氷華 | 3/5 | 3.5/5 | 改善はあるがまだ「好き」には至らず |
シナリオチェッカーのケーススタディ集(1,198行)から抽出した、10の致命的失敗パターン。
プロジェクト: AETHER FRAME | 規模: 108ファイル・111,835行 | 結果: 全面書き直し
教訓: コーディングタスク(並列可能)と物語執筆(逐次依存必須)は根本的に異なる。速度の誘惑に負けてはならない。
不可逆な設定(記憶喪失)がセッション跨ぎで巻き戻った。AIは「概念としては理解している」が、「全シーンで精密に遵守する」ことは別の能力。
教訓: 不可逆変化リストを作り、全後続シーンで照合する。
「胸が締め付けられる」「言葉にならない感情」「全てが繋がった」——Tier 1 NGフレーズが1章あたり20個以上検出された。
教訓: NGパターン辞典を事前にプロンプトに含め、生成時に回避させる。
長文生成で第3章以降の品質が急激に劣化。前半で設定した固有名詞が変わり、伏線が忘れられ、文体が平板化した。
教訓: セッション境界でストーリーステート(セーブデータ)を必ず更新し、次セッションに引き継ぐ。
暴力シーンが途中でトーンダウン、悪役が唐突に「実は優しい人」に、道徳的教訓が不自然に挿入される。
教訓: RLHFバイアスを認識し、「不快な展開」が物語に必要なら明示的にプロンプトで許可する。
シナリオチェッカーは「AIに小説を書かせるな」と主張するシステムではない。むしろ逆だ。AIと共に良い物語を作るための品質基盤だ。
「残響のアルケミラ」の第1章は80.8点(B+)だった。第2-4章は90.2点(A-)になった。この+9.4点の向上は、チェッカーが指摘した問題を修正し、パターン化を回避し、キャラクターの声を磨いた結果だ。
AIが書いた蓮の「楽しかった。たぶん」という一言は、Phase 0 が追跡した7段階の感情アークの到達点であり、Phase 1 が管理した「たぶん」の使用頻度制御の結果であり、Phase 2 の読者が涙した瞬間だ。
技術と感動は対立しない。品質管理があるからこそ、感動は確実に届く。
11万行の崩壊から学んだのは、「速く書くこと」ではなく「確実に積み重ねること」の価値だった。
| ファイル | 行数 | 役割 |
|---|---|---|
| 00_概要・目次.md | 320 | マスターインデックス |
| 01_Phase0_基盤チェック.md | 877 | 整合性・一貫性の検証ルール |
| 02_Phase1_編集者チェック.md | 1,266 | 品質・起伏・キャラ・描写の評価 |
| 03_Phase2_読者チェック.md | 650 | エンタメ・魅力・感情の評価 |
| 04_AI小説NGパターン辞典.md | 1,181 | 84種のTier1 NG + Tier2注意フレーズ |
| 05_チェック結果レポートフォーマット.md | 481 | 統一レポート形式 |
| 06_サブエージェント指示テンプレート.md | 884 | Phase別Opus起動プロンプト |
| 07_実例・ケーススタディ.md | 1,198 | 10件の失敗事例と教訓 |
| 合計 6,857行 | ||
3Phase シナリオチェッカー — AI小説品質保証システム
設計・実装: Claude Opus 4.6 | 初版: 2026-03-27