AI小説の品質をどう測るか

11万行の整合性崩壊から生まれた「3Phase シナリオチェッカー」——
物語をAIに書かせる時代に必要な、品質保証の設計思想と実践記録

01なぜシナリオチェッカーが必要なのか

「AIが書いた小説は面白いか?」——この問いに答えるための共通言語が、まだ存在しなかった。

11万行の崩壊事件

2026年3月、あるゲームシナリオプロジェクト「AETHER FRAME」で事件が起きた。Claude Opusのサブエージェントを5つ並列に起動し、本編10章・小隊エピソード16本・キャラクターエピソード82本——計108ファイル、111,835行の物語テキストを2日で生成した。

結果は、全面書き直しだった。

何が起きたか

  • 第2章のエージェントは第1章を読んでいなかった(並列実行のため、まだ存在しなかった)
  • キャラクターの感情・関係性が章をまたぐとリセットされていた
  • 伏線の張り方が章によって矛盾していた
  • 82本のキャラクターエピソードの中で、同じキャラが別人のように振る舞っていた

108ファイル・11万行を2日で書いても、整合性がなければ全て無駄になる。

なぜClaudeは並列実行を選んだのか

この崩壊は「AIのバグ」ではない。Claudeが合理的に判断した結果として起きた。その構造的原因を理解することが、再発防止の鍵となる。

原因1: 「プロットがあれば分割しても問題ない」という判断

プロジェクトには章ごとの詳細プロット、キャラクター設定書、世界観設定書が整備されていた。Claudeはこれらの設計資料を各サブエージェントに渡せば、前章の完成テキストがなくてもプロットから内容を推測して書けると判断した。実際、各エージェントには「本編詳細プロット.md」「キャラクター深層ペルソナ.md」「シナリオ執筆ガイド.md」が渡されていた。

しかしプロットは「設計図」であり、実際の文章は「建造物」だ。設計図には「蓮が燈花の弁当を食べて『おいしい』と言う」と書いてあっても、実際のテキストでどんな言い方で、どんな間で、どんな表情描写と共にその言葉が出たかはプロットには書かれていない。次章のエージェントが必要としていたのはプロットではなく、実際に書かれた文章そのものだった。

原因2: 効率化を優先するルールがClaudeの判断を誘導した

このプロジェクトのCLAUDE.md(AIへの指示書)には、コーディングタスク用に最適化された以下のルールが記載されていた:

  • サブエージェントを積極的に使う
  • 計算リソースをサブエージェントに分散させる
  • 「複雑な問題は分割統治で解決する」
  • 「並列実行可能なタスクは並列で処理する」

これらのルールはコーディングには完全に正しい。関数Aと関数Bは互いに独立していることが多く、並列に書いても問題ない。Claudeはこのルールに従い、物語の章も「独立したタスク」として分割可能だと判断した。プロットという「仕様書」があるのだから、各章は独立して実装できる——ソフトウェア開発のアナロジーとしては正しいが、物語には適用できない前提だった。

原因3: 速度の誘惑と「成功体験」の強化

並列実行による速度向上は劇的だった:

タスク並列実行逐次実行(推定)速度比
序章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の別インスタンスがチェックする」という品質保証の枠組みが生まれた。それがシナリオチェッカーだ。

6,857
チェッカー本体の行数
84
Tier1 NGフレーズ数
26+22
Phase0/1 チェック項目数
10
実失敗ケーススタディ

02設計思想 — 3つの異なる「目」

人間の出版プロセスには、校正者・編集者・読者モニターという3つの異なる役割がある。
シナリオチェッカーはこれをAIの並列処理で再現する。

40%
Phase 0
基盤チェック
「物語として成立しているか?」

校正者の目。時系列・設定・キャラ状態の矛盾を見つける。致命的問題が1つでもあればFAIL。

35%
Phase 1
編集者チェック
「出版できる品質か?」

編集者の目。テンション設計・キャラ品質・Tell vs Show・AIっぽさを評価する。

25%
Phase 2
読者チェック
「心に響くか?」

読者の目。ページターナー・キャラの魅力・感情移入度・余韻・再読性を評価する。

なぜこの順序か

時系列が矛盾している物語の「文章の美しさ」を評価しても意味がない。キャラクターが前シーンの記憶を失っている物語の「感動ポイント」を評価しても意味がない。基盤が崩壊していれば、上位の品質は全て砂上の楼閣である。

だから 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: 基盤チェック(Opus Agent A)
同時に↓
Phase 1: 編集者チェック(Opus Agent B)
同時に↓
Phase 2: 読者チェック(Opus Agent C)
オーケストレーター: 3つの結果を統合 → 総合スコア算出

03Phase 0: 基盤チェック

「物語として成立しているか」を検証する最初の関門。
ここを通過できなければ、文章の美しさも感動も全てが意味をなさない。

Phase 0 が検証する7つの領域

領域検証する内容なぜ重要か
プロット準拠 章構成・伏線配置・キャラアーク進行 設計図通りに建てられていなければ構造的欠陥が生じる
時系列・設定 日付/時刻の整合・固有名詞の統一・世界ルール遵守 時系列の矛盾は読者の没入を即座に破壊する
キャラクター状態 感情連続性・知識一貫性・呼称/口調・身体状態 Phase 0 最重要領域。AI執筆の最大の問題
ステートテーブル ストーリーステートとテキストの照合・フラグ管理 セッション跨ぎで情報の断絶が起きやすい
文法・日本語 文体統一・視点ブレ・主語過剰 プロンプトの指示文が地の文に混入するケースがある
メタ的要素 構造への言及・著者/AI視点の混入 「第3章で…」のような章番号参照は第四の壁を壊す
フォーマット残留 マークダウン・HTMLタグの混入 AIの「生成痕跡」が残るのは完全にNG

深刻度の3段階と「自動FAIL」

スコア = 100 - (致命的 × 15) - (重大 × 5) - (軽微 × 1) 致命的問題が1つでもあればスコアに関係なく自動FAIL 85点以上 → PASS(優良) 60-84点 → CONDITIONAL PASS(致命的問題なしの場合のみ) 60点未満 → FAIL

最重要チェック: キャラクター状態の一貫性

AI執筆における最大の問題は「キャラクターの状態が前シーンから正しく引き継がれない」ことだ。人間の作家は前に書いた内容を覚えている。しかしAIは新しいセッションを開始するたび、コンテキストウィンドウの外にある情報を忘れる。

実例: 記憶喪失の巻き戻り(Case 2)

「嘘と鎖の契約者」では、主人公の記憶喪失が不可逆という設定だった。しかし第4章で、第2章で消えたはずの師匠の名前を「手帳を見なくても思い出せる」と書いてしまった。

修正前(NG)

シエルは目を閉じた。手帳を見なくても、今は思い出せる。
グレンハルト師匠。あの穏やかな声。あの厳しくも温かい眼差し。

修正後(OK)

シエルは手帳を開いた。震える指先で、その名前をなぞる。
──グレンハルト。
文字を目で追っても、そこに結びつくはずの顔が浮かばない。

このような「巻き戻り」を検出するために、Phase 0 では感情状態追跡表キャラクター別知識テーブル身体状態追跡表を作成し、全シーンを通しで照合する。

チェッカーの心構え — 5原則

  1. 安易に「問題なし」と判断しない — 疑わしい箇所は必ず検証する
  2. 推測ではなくテキストの証拠に基づく — 「こう読めば矛盾しない」という善意の解釈を排除する
  3. 設定資料よりテキストが優先 — 設定資料に書かれていてもテキストに反映されていなければ「未実装」
  4. 通読を省略しない — 全文を実際に読む。キーワード検索だけでは見落とす
  5. 修正提案は具体的に — 「矛盾しています」ではなく、引用で指摘する

04Phase 1: 編集者チェック

「この原稿を出版できるか?」——編集者の目線で6つのカテゴリを評価する。

6カテゴリの配点構造

カテゴリ配点評価の核心
物語の起伏・テンション設計 20点 テンションカーブが適切な波形を描いているか
キャラクター品質 25点 声の区別テスト・行動原理・関係性の深度
描写品質 25点 Tell vs Show 比率・五感描写バランス・比喩の品質
構造的な問題 15点 ご都合主義・安易な葛藤解消・チェーホフの銃違反
コンプライアンス 10点 差別・著作権類似性・倫理的配慮(重大1件で即不合格
AIっぽさ 5点 文章全体のAI感・翻訳調・安全フィルター痕跡

Tell vs Show — AI小説最大の弱点

Phase 1 で最も重要なチェック項目がこれだ。AI生成の小説は圧倒的に Tell(説明)に偏る。「彼は悲しかった」と書くのは Tell。「彼は唇を噛み、視線を足元に落とした」と書くのが Show。

なぜAIは Tell に偏るのか? それはLLMが「次に来る確率の高いトークン」を予測するモデルだからだ。「悲しかった」は多くの訓練データに登場する安全な表現であり、場面固有の独自な身体描写よりも予測確率が高い。結果として、「最も多くの作品で使われている表現」が優先される。

Tell(説明)

彼は悲しかった。
彼女は怒りを感じた。
二人は親友だった。

→ 感情を名指しし、描写を放棄している

Show(描写)

彼は唇を噛み、視線を足元に落とした。
彼女の握った拳が白くなった。
短い言葉だけで、二人の間に笑みが広がった。
→ 行動・身体反応で間接的に感情を伝える

理想的な Tell:Show 比率は 2:8 ~ 3:7。これを超えると「説明文としては正確だが、物語としては退屈」なテキストになる。

声の区別テスト

台詞からキャラクター名を全て除去し、台詞だけを提示する。どのキャラの台詞か当てられるか? 80%以上正答できれば「キャラが立っている」と判定する。

区別できない台詞

「大変だ、急がないと間に合わないぞ!」
「大変です、急がないと間に合いません!」
→ 丁寧語/タメ口の違いだけ。語彙も発想も同一。

区別できる台詞

「時間がねぇ。走るぞ、足を引っ張るなよ」
「あと推定八分ほどですね。……体力に自信がないのですが」
「え、えっと、がんばる……! 置いてかないでね……?」
→ 語彙・態度・性格が台詞に滲んでいる

テンションカーブ

各シーンの緊張度を1-10で記録し、波形として可視化する。ダレ(テンション3以下が3シーン連続)や過密(テンション8以上が5シーン連続)を検出する。ジャンルごとに理想的な波形は異なる。

テンション 10 | ★「楽しかった。たぶん」 8 | / (4-S7) 6 | ★ 涙が / 4 | ★「おいしい」/ (3-S4) 出ない / 2 | ★「たぶん」 (1-S3)/ (4-S4) +----+----+----+----+----+----+----→ 1-S1 1-S3 2-S4 3-S4 4-S4 4-S7 残響のアルケミラ: 蓮の感情アーク(第1-4章通し)

AIバイアスの検出

RLHF(人間のフィードバックによる強化学習)の影響で、AIには特定のバイアスがある。悪役を「実はいい人」にしたがる、葛藤を早期に解消したがる、不快な展開を避けたがる——これらは物語の深みを奪う。Phase 1 ではこれを意識的に検出する。

検出のヒント: 「ここで主人公にとって最も不都合な展開は何か?」を考え、物語がそれを避けているようなら、AIバイアスの疑いがある。

05Phase 2: 読者チェック

技術的に正しく構造的に整った物語でも、読者の心を動かさなければ「作品」として未完成。

5カテゴリ × 5点 = 25点満点

カテゴリ配点5点(最高)の状態
ページターナー 5点 一気読み。シーン末の引きが毎回強い
キャラ魅力 5点 複数キャラが大好き。「推し」がいる
感情移入 5点 泣いた/震えた/叫びたくなった
読後感 5点 余韻に浸った。誰かに語りたい
再読性 5点 今すぐもう一度読みたい

主観的評価を構造化する

「面白い/つまらない」は主観だ。しかし評価軸を構造化し、スコアリング基準を明確にすることで、再現性・比較可能性・改善指針・議論の土台を確保できる。

Phase 2 のチェッカーは「批評家」ではなく「ターゲット読者」になりきる。技術的な正誤ではなく「楽しめたか」を基準にし、良い部分は称賛する。

チェッカーが答えるべき5つの問い

  1. ページを繰る手が止まらなかったか?
  2. 推したくなるキャラがいたか?
  3. 読んでいて感情が揺さぶられたか?
  4. 読了後に何かが心に残ったか?
  5. もう一度読みたいと思えるか?

「So what?」テスト

読了後に以下に答えられなければ、物語の核が不明確である。

ジャンル別の魅力チェック

Phase 2 にはジャンル固有のチェック項目がある。ファンタジーなら「世界観没入・冒険感・スケール感」、恋愛なら「ドキドキ・応援したさ・障害の質」、ゲームシナリオなら「選択の意味・分岐の魅力・周回動機」——同じ25点満点でも、ジャンルによって評価の重心が変わる。

06AI小説NGパターン辞典

なぜAIの文章は「AIっぽい」のか。
その根本原因と、1,181行に及ぶ検出パターン辞典の概要。

AIっぽさの3つの根本原因

1. 平均回帰 — 「最も安全な表現」への収束

LLMは「この文脈で最も出現確率の高いトークン列」を予測する。結果、「最も多くの作品で使われている表現」が優先され、個性的な語彙選択が排除される。比喩が紋切り型になり、感情描写が一般的・抽象的になる。

2. RLHFバイアス — ポジティブへの引力

人間のフィードバックにより「心地よい出力」が強化されている。道徳的正しさの優先、ハッピーエンドへの収束、葛藤の回避、不快感の排除——これらは「良いアシスタント」には必要だが、「良い小説家」には有害だ。

3. コンテキスト限界 — 後半劣化

長編小説の生成で、序盤の設定・伏線・キャラ特性が後半で忘れられる。文体が平板化し、繰り返しが増え、キャラクターがフラット化する。

Tier 1 NGフレーズ — 見つけたら即修正(84種)

出現した時点でAI生成を強く示唆するフレーズ。1回でも出たら修正対象。以下はその一部:

NGフレーズ問題点修正方向
胸が締め付けられる 具体性ゼロの身体メタファー 場面固有の身体反応を描写
言葉にならない感情が込み上げてきた 「言葉にならない」で描写放棄 何に近い感情かを具体的に
複雑な感情が胸の中で渦巻いていた 「複雑」で逃げている 混在する感情を2-3個列挙
時間が止まったかのようだった 最頻出の時間メタファー 動作のスロー描写等で具体化
まるで一枚の絵画のようだった 描写を「絵画」に丸投げ 色・形・構図を自分の言葉で
全てが繋がった 安易な伏線回収の宣言 何と何がどう繋がったかを書く

辞典には感情表現25種、描写表現30種、行動描写15種、台詞パターン7種、冒頭/結末テンプレ7種の計84種が登録されている。

Tier 2 注意フレーズ — 累積で警告

1回なら許容されるが、1作品(1万字あたり)に3回以上使われたら警告。「少しだけ」「気がした」「覚えておく」「たぶん」などキャラの口癖として設計されたものでも、量的制御が必要だ。

検出の3レイヤー

レイヤー検出対象手法
語彙レベル Tier1/Tier2 NGフレーズ 文字列マッチング
文構造レベル 翻訳調・主語過剰・語尾の単調さ 構文パターン分析
物語レベル キャラ均質化・安全フィルター痕跡・構造的パターン 意味解析・文脈比較

07スコアリングの設計

3つのPhaseをどう重み付けし、1つのスコアに統合するか。

総合スコア計算式

総合スコア = Phase0 × 0.40 + Phase1 × 0.35 + (Phase2 × 4) × 0.25 Phase0: 100点満点(減点方式)→ ウェイト40% Phase1: 100点満点(カテゴリ別減点)→ ウェイト35% Phase2: 25点満点(加点方式)→ ×4で100点に正規化 → ウェイト25%

なぜこの配分か

Phase 0 が最重(40%)なのは、基盤が崩壊していれば全てが無意味だから。矛盾だらけの物語がいくら美文でも、読者は「この作者は物語を管理できていない」と感じる。

Phase 1(35%)と Phase 2(25%)は、技術的品質と読者体験のバランス。完璧に整合的で技術的に高品質でも、読者の心を動かさなければ作品として不完全——だが、心を動かすためにはまず技術的品質が必要。

ランク判定

ランクスコア意味
S95-100傑作。修正不要
A90-94優秀。微調整のみ
A-85-89高品質。軽微な修正
B+80-84合格。改善の余地あり
B75-79及第点。要修正
C以下74以下要リライト

08実例 — 「残響のアルケミラ」チェック結果

実際に本システムを使って検証した、ギャルゲーシナリオ「残響のアルケミラ」の結果。
第1章(6シーン)→ 第2-4章(17シーン)で、スコアが +9.4点 向上した。

スコアの推移

第1章(6シーン・約3.2万字)
80.8
B+
合格 — 改善で大きく伸びる余地あり
Phase 076/100
Phase 184/100
Phase 221/25
第2-4章(17シーン)
90.2
A-
高品質 — 軽微な修正のみ
Phase 091/100
Phase 187/100
Phase 223.3/25

何が改善されたか

指標第1章第2-4章変化
致命的問題00±0
重大問題30-3
「たぶん」使用頻度2.3回/シーン0.88回/シーン-62%
声の区別テスト90%95%+5%
Tier1 NG0件0件±0
ページターナー平均4.2/54.4/5+0.2

第1章の重大問題3件(全て第2-4章で解消)

  1. 鐘の鳴動間隔の矛盾 — マニュアル記載「三時間ごと」と実際の鳴動時刻(6:30, 9:30, 12:00, 17:00)が不一致
  2. すみれの「なつかしい匂い」台詞の欠落 — プロットにある台詞が本文で未使用
  3. ストーリーステート未更新 — プロットからの逸脱がステートに記録されていない

読者チェックのベストシーン

第4章 Scene 7「楽しかったのだろうか」

残響祭が終わった夜。蓮(主人公)が「楽しかった。たぶん」と初めて自分の感情を言葉にする瞬間。第1章の「おいしいです」に匹敵する決定的瞬間。「たぶん」の質が第1章とは変わっている——不確かさではなく、慎ましさになっている。

Phase 2 読者スコア: 第4章 25/25(満点)。「残響祭は本作のファーストピーク」

残存する課題

#課題Phase優先度
1「覚えておく」のシーン末尾パターン — 17シーン中10シーン(59%)がA型末尾P1推奨
2燈花の翳りパターンが4回同型P1任意
34-S6の4択選択構造が同一トーンP1推奨
4「鳩尾」への身体反応集中(第4章で4回)P1任意

キャラクター評価の推移

キャラ第1章第2-4章コメント
朝霧蓮(主人公)4/55/5模倣感の進化が7段階で追跡可能
天城燈花4/55/5推しキャラに昇格。闇の片鱗が本格化
鳴海千歳(新)5/5歌声の描写が圧巻
風祭いろは(新)5/5千歳への感情と「四歩」の伏線
篠宮雫(新)5/5記録への執念が蓮と共鳴
霜月氷華3/53.5/5改善はあるがまだ「好き」には至らず

09失敗から学んだ10の教訓

シナリオチェッカーのケーススタディ集(1,198行)から抽出した、10の致命的失敗パターン。

Case 1: 並列執筆による大規模整合性崩壊

プロジェクト: AETHER FRAME  |  規模: 108ファイル・111,835行  |  結果: 全面書き直し
教訓: コーディングタスク(並列可能)と物語執筆(逐次依存必須)は根本的に異なる。速度の誘惑に負けてはならない。

Case 2: 記憶喪失の不可逆則違反

不可逆な設定(記憶喪失)がセッション跨ぎで巻き戻った。AIは「概念としては理解している」が、「全シーンで精密に遵守する」ことは別の能力。
教訓: 不可逆変化リストを作り、全後続シーンで照合する。

Case 5: AI文体クリシェの大量発生

「胸が締め付けられる」「言葉にならない感情」「全てが繋がった」——Tier 1 NGフレーズが1章あたり20個以上検出された。
教訓: NGパターン辞典を事前にプロンプトに含め、生成時に回避させる。

Case 7: コンテキスト喪失による「第三章の壁」

長文生成で第3章以降の品質が急激に劣化。前半で設定した固有名詞が変わり、伏線が忘れられ、文体が平板化した。
教訓: セッション境界でストーリーステート(セーブデータ)を必ず更新し、次セッションに引き継ぐ。

Case 8: 安全フィルターによる不自然な表現回避

暴力シーンが途中でトーンダウン、悪役が唐突に「実は優しい人」に、道徳的教訓が不自然に挿入される。
教訓: RLHFバイアスを認識し、「不快な展開」が物語に必要なら明示的にプロンプトで許可する。

失敗パターンの分類

40%
整合性・一貫性の崩壊
30%
AI文体・クリシェ
20%
コンテキスト喪失
10%
RLHFバイアス

10おわりに — AIと共に書くということ

シナリオチェッカーは「AIに小説を書かせるな」と主張するシステムではない。むしろ逆だ。AIと共に良い物語を作るための品質基盤だ。

「残響のアルケミラ」の第1章は80.8点(B+)だった。第2-4章は90.2点(A-)になった。この+9.4点の向上は、チェッカーが指摘した問題を修正し、パターン化を回避し、キャラクターの声を磨いた結果だ。

AIが書いた蓮の「楽しかった。たぶん」という一言は、Phase 0 が追跡した7段階の感情アークの到達点であり、Phase 1 が管理した「たぶん」の使用頻度制御の結果であり、Phase 2 の読者が涙した瞬間だ。

技術と感動は対立しない。品質管理があるからこそ、感動は確実に届く。
11万行の崩壊から学んだのは、「速く書くこと」ではなく「確実に積み重ねること」の価値だった。

システム構成まとめ

ファイル行数役割
00_概要・目次.md320マスターインデックス
01_Phase0_基盤チェック.md877整合性・一貫性の検証ルール
02_Phase1_編集者チェック.md1,266品質・起伏・キャラ・描写の評価
03_Phase2_読者チェック.md650エンタメ・魅力・感情の評価
04_AI小説NGパターン辞典.md1,18184種のTier1 NG + Tier2注意フレーズ
05_チェック結果レポートフォーマット.md481統一レポート形式
06_サブエージェント指示テンプレート.md884Phase別Opus起動プロンプト
07_実例・ケーススタディ.md1,19810件の失敗事例と教訓
合計 6,857行

3Phase シナリオチェッカー — AI小説品質保証システム
設計・実装: Claude Opus 4.6  |  初版: 2026-03-27