# A33_執筆品質管理チェック

**役割**: A32執筆コマンドガイドの実行チェックリスト（x3 - チェック）

小説原稿の**品質を自動的にチェック**し、スコアリング・改善提案・品質記録を統合管理する包括的な品質管理システムです。執筆技法の習得と併用することで、継続的な品質向上を実現します。

> **執筆段階基本フロー（FLOW）は**: [A30_執筆ワークフロー.md](A30_執筆ワークフロー.md)
> **技術的操作方法（HOW）は**: [A32_執筆コマンドガイド.md](A32_執筆コマンドガイド.md)
> **統合ワークフロー実装は**: [A34_一気通貫実践ガイド.md](A34_一気通貫実践ガイド.md)
> **詳細プロンプト実装は**: [A38_執筆プロンプトガイド.md](A38_執筆プロンプトガイド.md)

**前提**: A30_執筆ワークフロー・A31_新システム利用ガイドの基本理解
**対象**: 原稿品質の客観的評価・継続的改善
**期間**: 執筆活動全期間の継続的品質管理
**成果物**: 高品質原稿・品質向上システム・改善データ

---

## 🎯 このガイドの目的

### 解決する問題
- ❌ 主観的な品質判断に頼った執筆
- ❌ 品質のばらつき・安定しない原稿レベル
- ❌ 改善点が分からない・成長が見えない
- ❌ 手動チェックの負荷・見落とし

### 達成する成果
- ✅ 客観的・定量的な品質評価システム
- ✅ 自動チェック・修正による効率化
- ✅ 個人の執筆傾向に基づく改善提案
- ✅ 継続的な品質向上・成長の可視化

---

## 🚀 クイックスタート（MCP）


> 注意: `noveler check` は原稿を書き換えません（評価専用）。改稿は `noveler polish` を使用してください。
<!-- CHECK_NO_WRITE_A33 -->


### ✨ Smart Auto-Enhancement（現行導線）

```bash
# 要約（推奨）
noveler mcp call run_quality_checks '{"episode_number": 1, "additional_params": {"format": "summary"}}'

# 自動修正を適用したい場合（dry_run: false）
noveler mcp call fix_quality_issues '{"episode_number": 1, "dry_run": false}'
```

補足:
- テスト実行は `scripts/run_pytest.py` / `bin/test` / `make test` のいずれかを推奨（環境/出力を統一）。
- `make test` 実行で LLM向け要約（reports/llm_summary.{jsonl,txt} と STDOUTタグ）が生成され、失敗テストの要点を素早く把握できます。
- LLM要約が必要な場合は `bin/test-json -q` または `python3 scripts/run_pytest.py --json-only -q` を利用してください。

**Smart Auto-Enhancement の特徴**:
- 🔄 **統合実行**: 基本品質→A31評価→Claude分析を自動実行
- 📊 **統合表示**: 分離していた品質情報を統合表示
- 🎯 **構造的品質重視**: 平均値文字数チェック廃止、文章構造重視
- ⚡ **効率化**: 一度のコマンドで全品質情報を取得

### 基本的な品質チェック
技術的な操作方法については、MCPツールの `run_quality_checks` を参照してください（A31/A41に詳細）。

### 完全自動化された執筆フロー（概念）
- エピソード作成 → エディタで執筆 → 保存
- 品質チェック（`run_quality_checks` 要約）
- 必要に応じて自動修正（`fix_quality_issues`）/整形（`polish_manuscript`）
- 品質記録の保存と改善提案の確認

**自動実行される内容**:
- ✅ 品質チェック結果の自動保存
- ✅ カテゴリ別スコア記録
- ✅ 前回からの改善率の計算
- ✅ 個人化された改善提案の表示
- ✅ 品質トレンドの追跡

---

## 📊 品質チェック項目・評価基準

### 1. 基礎文章作法（40点）

**技術的品質の基準**:
```yaml
チェック項目:
  三点リーダー: "……を2個単位で使用"
  ダッシュ: "――を2個単位で使用"
  感嘆符・疑問符: "後に全角スペース必須"
  段落頭字下げ: "全角スペース必須"
  会話文末句点: "削除が正しい"
  半角全角統一: "全角使用が基本"
```

**評価ウェイト**:
- 各項目: 6-7点配分
- 減点方式: 違反箇所数に応じて減点
- 自動修正可能項目: 修正後に再評価

### 2. 構成・読みやすさ（30点）

**構造的品質の基準**:
```yaml
評価要素:
  段落長バランス: "3-5行推奨・7行以上で減点"
  会話地の文比率: "30-70%が適正・視点により調整"
  文末表現多様性: "同一文末3回連続で減点"
  一文の長さ: "60字以内推奨・80字超で減点"
  漢字比率: "20-30%が適正"
```

**動的評価システム**:
- 視点情報による基準調整
- エピソードタイプによる重み変更
- 個人の執筆傾向を考慮した評価

### 3. なろう特有ルール（30点）

**プラットフォーム特化品質**:
```yaml
なろう最適化:
  ルビ使用: "適切な頻度・必要性に応じて"
  改行頻度: "スマホ読みやすさ重視"
  文字数: "1話3000-5000字が最適"
  視点一貫性: "1シーン1視点厳守"
```

## ✅ なろう実戦チェックリスト（水平展開）

### 冒頭と運び
- [ ] 最初の3行で「異常値＋具体＋行動/選択」を提示している
- [ ] 各話末に「未解決＋新情報」の疑問を1つだけ残している
- [ ] 世界観説明は必要時に小出しで、会話や行動に埋め込んでいる

### シーン設計と情報提示
- [ ] 1場面＝目的/障害/結果/余韻の最短ルートで構成されている
- [ ] Scene→Sequel（行動→内省→次の決断）の最小ループを意識している
- [ ] 固有名詞は初出で過説明せず、2回目で具体を補っている
- [ ] 「1ターン1情報」で台詞・地の文の切替えができている

### キャラと感情線
- [ ] 各場面の「開始→終了の感情変化」が明確である
- [ ] 身体反応→感情→思考→決断→行動の順で臨場感が出ている
- [ ] 対立は価値観の衝突（正しさvs正しさ）で賭け金が明示されている

### 文体とリズム（数値は目安）
- [ ] 文長にばらつきがある（長文はおおむね45字超で分割検討）
- [ ] 読点密度の平均が0.6–1.6個/文に収まっている
- [ ] 同一語尾の連続が4回以上続かないよう変化を入れている
- [ ] 三点リーダは偶数（……）、ダッシュは――で統一している
- [ ] セリフは冗語を削って瞬発力がある（改行で見通しを確保）

### 行幅に関する運用（本プロジェクト方針）
- [ ] 行幅チェックと強制改行は撤廃済み。日本語文への自動改行は行わない。
- [ ] 読みやすさは句読点配置や文分割（45字超目安）で調整する。

---

## 🎭 視点情報連動品質評価（自動）

### 視点タイプ別評価調整

品質チェッカーは`20_プロット/章別プロット/`のYAMLファイルから視点情報を自動読み取りし、評価基準を動的調整します。

**対応する視点タイプ**:
```yaml
視点別評価調整:
  単一視点・内省型:
    会話比率基準: "緩和（重み:0.5）"
    内面描写重視: "強化（重み:1.5）"

  単一視点・交流型:
    標準評価: "すべて標準重み（1.0）"

  複数視点:
    視点明確さ: "強化（重み:1.8）"
    切り替え明確性: "必須チェック"

  身体交換:
    内面描写: "重視（重み:1.5）"
    感覚描写: "必須（重み:1.3）"
    視点明確さ: "最重要（重み:2.0）"
```

### 自動調整の表示例
```
📌 視点タイプ: 単一視点・内省型
📌 複雑度: 中
⚠️ 内省型エピソードのため会話比率は参考値（重み:0.5）
✨ 内面描写深度を重視して評価（重み:1.5）
```

---

## 🔍 内面描写深度分析

### 5層評価システム

**深度分析の実行**:
```bash
# 内面描写の5層深度分析
novel analyze-depth 第XXX話_タイトル.md
```

**評価層構造（各層20点満点）**:
```yaml
深度評価レイヤー:
  Layer1_感覚層:
    対象: "身体感覚・五感描写"
    評価基準: "具体的感覚の表現頻度・質"
    改善例: "冷たい風が頬を撫でた"

  Layer2_感情層:
    対象: "感情表現の具体性"
    評価基準: "抽象的感情の身体化"
    改善例: "悲しい→胸が締め付けられるような痛み"

  Layer3_思考層:
    対象: "内的独白・思考過程"
    評価基準: "思考の自然さ・論理性"
    改善例: "（これでいいのだろうか？）"

  Layer4_記憶層:
    対象: "過去体験との関連"
    評価基準: "記憶と現在の有機的結合"
    改善例: "母の言葉を思い出した"

  Layer5_象徴層:
    対象: "比喩・象徴表現"
    評価基準: "メタファーの効果性・自然さ"
    改善例: "心に雨が降り続けている"
```

### 改善提案システム
```markdown
# 改善提案例（自動生成）
Layer1（感覚層）不足 → 五感描写の追加推奨
「彼は怒っていた」→「拳を握る手が震えている」

Layer2（感情層）不足 → 感情の身体化推奨
「嬉しかった」→「胸が躍るような軽やかさ」

Layer3（思考層）不足 → 内的独白の追加推奨
「迷った」→「（どちらを選ぶべきか…）」
```

---

## 🔧 自動修正機能

### 修正可能項目

**技術的修正（安全な自動修正）**:
```bash
novel check 1 --auto-fix
```

**自動修正される内容**:
1. **感嘆符・疑問符後の全角スペース追加**
2. **三点リーダーの偶数個統一**（... → ……）
3. **ダッシュの全角統一**（-- → ――）
4. **半角記号の全角化**（カンマ・ピリオド等）
5. **段落頭の字下げ統一**
6. **会話文末の句点削除**
7. **閉じ括弧前の空白削除**

**修正時の安全機能**:
- 元ファイルのバックアップ自動作成
- 修正内容の詳細ログ出力
- `--no-backup`オプションでバックアップ無効化

### style拡張機能（opt-in）

**🎛️ 高度なスタイル修正（任意機能）**:

新たに追加された `fix_style_extended` ツールにより、より高度なテキスト修正が可能になりました。

```bash
# 全角スペース問題の確認（安全な差分表示）
novel mcp call fix_style_extended '{"episode_number":1,"fullwidth_space_mode":"normalize","dry_run":true}'

# 台詞内の全角スペースのみ正規化
novel mcp call fix_style_extended '{"episode_number":1,"fullwidth_space_mode":"dialogue_only","dry_run":false}'

# 地の文の全角スペースのみ正規化
novel mcp call fix_style_extended '{"episode_number":1,"fullwidth_space_mode":"narrative_only","dry_run":false}'

# 括弧の対応不一致を自動補正
novel mcp call fix_style_extended '{"episode_number":1,"brackets_fix_mode":"conservative","dry_run":false}'
```

**🔧 修正対象**:
1. **FULLWIDTH_SPACE正規化**:
   - `normalize`: 全角スペース→半角スペース変換
   - `remove`: 全角スペース除去
   - `dialogue_only`: 台詞内（「」『』内）のみ処理
   - `narrative_only`: 地の文（台詞外）のみ処理

2. **BRACKETS_MISMATCH自動補正**:
   - 日本語括弧ペア（「」『』（）【】等）の対応不一致を検出・修正
   - `conservative`: 3個以下の差異のみ修正（安全重視）
   - `auto`: より積極的な修正

**🛡️ 安全性重視の設計**:
- **デフォルトはdry_run=true**: 必ず差分確認してから実行
- **opt-in設計**: すべての機能がデフォルト無効（明示的な指定が必要）
- **詳細diff表示**: 修正箇所を具体的に表示

---

## 🏷️ 固有名詞の自動除外

### 除外システム

**自動除外の仕組み**:
```yaml
除外対象設定ファイル:
  - "30_設定集/キャラクター.yaml"
  - "30_設定集/世界観.yaml"
  - "30_設定集/用語集.yaml"
  - "30_設定集/システムルール.yaml"
```

**自動除外される項目**:
- キャラクター名（主人公・サブキャラ・敵キャラ）
- 地名・施設名・組織名
- 魔法・スキル・技術名
- 固有の文化・制度用語
- 作品独自の専門用語

**除外設定の管理**:
```bash
# 固有名詞の一括抽出・更新
novel extract-nouns --verbose

# 用語集の手動更新
vim 30_設定集/用語集.yaml
```

---

## 📈 スコアリング・評価システム

### 総合評価基準

**スコア段階**:
```yaml
評価ランク:
  S_ランク: "90点以上 - 出版レベルの品質"
  A_ランク: "80-89点 - 高品質、微調整で完璧"
  B_ランク: "70-79点 - 標準的、いくつか改善点あり"
  C_ランク: "60-69点 - 改善の余地あり"
  D_ランク: "60点未満 - 大幅な改善が必要"
```

### 個人化スコアリング

**学習型評価システム**:
- 個人の執筆傾向を学習
- 過去データとの比較による相対評価
- 強み・弱みに基づく重点的評価
- 成長トレンドの継続的追跡

**適応的基準調整**:
```markdown
例：執筆者Aの場合
・会話文が得意 → 会話品質の基準を高く設定
・内面描写が苦手 → 内面描写の改善に重点
・成長傾向：構成力向上 → 構成評価を段階的に厳格化
```

---

## 💾 品質記録・データ管理

### 保存データ構造

**保存場所・ファイル構成**:
```
50_管理資料/
├── 品質記録_AI学習用.yaml      # AI学習用品質記録
├── 学習セッション記録.yaml     # 学習セッション
├── 品質記録.yaml              # 人間向け記録
└── 品質トレンド分析.yaml       # 長期トレンド
```

**記録内容の詳細**:
```yaml
品質記録構造:
  基本情報:
    エピソード番号: 1
    執筆日時: "2025-01-XX XX:XX:XX"
    文字数: 4500
    執筆時間: 120分

  品質スコア:
    総合スコア: 85
    基礎文章作法: 38/40
    構成読みやすさ: 26/30
    なろう特化: 21/30

  詳細評価:
    強み: ["会話のリズム", "視点の一貫性"]
    弱み: ["内面描写の深度", "比喩表現"]
    改善提案: ["感情の身体化", "五感描写の追加"]

  成長データ:
    前回比: "+3点"
    月平均: 82点
    改善トレンド: "上昇傾向"
```

### データ活用・分析

**トレンド分析機能**:
```bash
# 品質トレンドの表示
novel show-trend --period 3months

# 弱み分析レポート
novel analyze-weakness --detailed

# 改善提案の効果測定
novel measure-improvement --from "2025-01" --to "2025-03"
```

---

## 🎯 統合コミットシステム

### Git連携品質保証

**コミット前自動品質チェック**:
```bash
# 改良されたコミットフロー
git ci -m "第5話執筆完了"
# ↓ メッセージ入力前に品質チェック実行
🔍 コミット前品質チェック実行中...
✅ すべての品質チェックに合格しました！
# ↓ 品質保証済みでコミット完了
```

**品質ゲート制御**:
- 設定可能な最低品質基準
- 基準未達時のコミット阻止
- 緊急時のゲート無効化オプション

---

## 🛠️ MCPツールリファレンス（抜粋）

- 品質チェック（要約）
```bash
noveler mcp call run_quality_checks '{"episode_number": 1, "additional_params": {"format": "summary"}}'
```
- 自動修正（適用）
```bash
noveler mcp call fix_quality_issues '{"episode_number": 1, "dry_run": false}'
```
- 原稿の整形（ドライラン）
```bash
noveler mcp call polish_manuscript '{"episode_number": 1, "file_path": "40_原稿/第001話_サンプル.md", "stages": ["stage2"], "dry_run": true}'
```
- 成果物の確認/復元
```bash
noveler mcp call list_artifacts '{"episode_number": 1}'
noveler mcp call restore_manuscript_from_artifact '{"episode_number": 1, "artifact_id": "..."}'
```

---

## ❓ トラブルシューティング

### よくある問題と解決法

**問題1: 固有名詞が誤検出される**
```bash
# 解決手順
1. 30_設定集/用語集.yaml に語彙を追加
2. 品質チェックを再実行（run_quality_checks 要約）
```

**問題2: スコアが異常に低い**
```bash
# 診断手順（例）
noveler mcp call run_quality_checks '{"episode_number": 1, "additional_params": {"format": "summary"}}'
# ↓ 要約を確認し、必要に応じて自動修正を適用
noveler mcp call fix_quality_issues '{"episode_number": 1, "dry_run": false}'
```

**問題3: 視点情報が反映されない**
```bash
# 確認手順
1. 20_プロット/章別プロット/ch{chapter_number:02d}.yaml の有無と内容（viewpoint_*）を確認
2. 品質チェックの要約で視点連動の警告/指摘を確認
```

**問題4: 品質チェックでエラーが出る**
```bash
# サーバー/連携の健全性
noveler mcp call status '{}'

# LLMテスト要約でエラーの要点確認
make test       # 失敗時は reports/llm_summary.* を参照
make test-last  # 直近失敗のみ再実行
```

---

## 🔄 システム改善・アップデート履歴

### 最新改善（2025年1月）
- **視点情報連動評価システム**: プロット情報との自動連携
- **5層内面描写分析**: より詳細な感情・思考分析
- **個人化改善提案**: AI学習による個別最適化
- **統合コミットシステム**: Git連携による品質保証

### 今後の改善予定
- **リアルタイム品質フィードバック**: 執筆中の即座フィードバック
- **競合作品品質ベンチマーク**: 同ジャンル作品との比較評価
- **読者反応予測**: 品質スコアから読者反応を予測

---

## 📚 関連ガイド・次のステップ

### 完了後の進路
✅ **A32_執筆コマンドガイド** - CLI操作・技術的活用法
✅ **A41_読者反応分析・改善ガイド** - データドリブンな改善手法

### 関連ガイド
- [A30_執筆ワークフロー](A30_執筆ワークフロー.md) - 段階的執筆の全体像
- [A31_新システム利用ガイド](A31_新システム利用ガイド.md) - システム運用とベストプラクティス
- [A32_執筆コマンドガイド](A32_執筆コマンドガイド.md) - CLI・コマンド活用
- [A29_話別プロット品質基準](A29_話別プロット品質基準.md) - 視点情報連動の基盤

### システム連携（例）
- プロット整合性や読者反応予測など高度な分析は、必要に応じてMCPツールの拡張オプションを利用してください（仕様は各ツールのドキュメントを参照）。

---

**💎 重要**: 品質管理は執筆技法と車の両輪です。A30/A31で習得した技法を客観的に評価・改善することで、継続的な成長と読者に愛される高品質な作品を実現できます。データを活用しながら、心のこもった物語づくりを目指してください。
