# SPEC-PROMPT-SAVE-001: プロンプト保存機能仕様書

## 概要
話別プロット生成プロンプトを `$PROJECT_ROOT/60_プロンプト/話別プロット/` に `第000話_タイトル.yaml` 形式で保存する機能。

## 機能要件

### FR-001: プロンプト保存パス管理
- **目的**: PROJECT_ROOT環境変数ベースの統一パス管理
- **実装**: CommonPathServiceを拡張してプロンプト専用ディレクトリ管理
- **パス構造**: `{PROJECT_ROOT}/60_プロンプト/話別プロット/第{episode:03d}話_{title}.yaml`

### FR-002: 詳細化プロンプトテンプレート生成
- **目的**: 既存プロットレベルの詳細情報量確保
- **実装**: 11主要セクション + 詳細サブセクション構造
- **品質基準**: 150-200行の詳細プロンプト生成

### FR-003: ファイル命名統一管理
- **目的**: `第000話_タイトル.yaml` 形式の統一
- **実装**: EpisodeNumber + Title -> FileName変換バリューオブジェクト
- **検証**: タイトル文字数制限・特殊文字エスケープ

## 非機能要件

### NFR-001: DDD準拠アーキテクチャ
- **ドメイン層**: プロンプトエンティティ・バリューオブジェクト
- **アプリケーション層**: プロンプト保存ユースケース
- **インフラ層**: ファイルシステムリポジトリ

### NFR-002: TDD準拠開発プロセス
- **テスト優先**: 実装前のテストケース作成必須
- **仕様書連携**: `@pytest.mark.spec("SPEC-PROMPT-SAVE-001")`
- **カバレッジ**: 90%以上の単体テストカバレッジ

### NFR-003: 共通基盤統合
- **パス管理**: CommonPathService統合
- **エラーハンドリング**: 既存エラーオーケストレーター活用
- **YAML処理**: 既存YAMLハンドラーアダプター統合

## システム境界

### 入力
- EpisodeNumber (int)
- EpisodeTitle (str)
- PlotContext (dict)
- ProjectRoot (Path)

### 出力
- PromptFile (YAML)
- SaveResult (success/failure)

### 外部連携
- CommonPathService (パス管理)
- PlotGenerationService (プロット情報)
- YamlHandlerAdapter (YAML処理)

## 品質属性

### 拡張性
- プロンプトテンプレートの容易な変更・追加
- 新規保存先ディレクトリの柔軟対応

### 保守性
- DDD原則によるドメイン知識の明確な分離
- 単一責任原則に基づくクラス設計

### テスト容易性
- Mock可能な依存関係設計
- テストデータの自動生成機能
