# SPEC-EPISODE-009: complete-episode改善 仕様書

## 1. 目的

`novel complete-episode`コマンドの以下の改善を行う：
- ステータス値を3文字の短縮形に統一（未着手→未着、執筆済み→執筆済など）
- プロジェクト名引数を不要にし、現在のプロジェクトディレクトリから自動検出
- 話数指定に話数解決機能を適用

## 2. 前提条件

- 既存のcomplete-episodeコマンドが動作している
- 話数管理.yamlが存在し、エピソード情報を管理している
- EpisodeNumberResolverが実装済み

## 3. 主要な振る舞い

### 3.1 ステータス値の変更
- 入力: ステータス文字列（3文字短縮形）
- 処理:
  - 「未着」→「未着手」として内部処理
  - 「執筆中」→「執筆中」（変更なし）
  - 「執筆済」→「執筆済み」として内部処理
  - 「推敲済」→「推敲済み」として内部処理
  - 「公開済」→「公開済み」として内部処理
- 出力: 話数管理.yamlには元の形式で保存

### 3.2 プロジェクト名の自動検出
- 入力: なし（引数から削除）
- 処理:
  - 現在のディレクトリからプロジェクト設定.yamlを検索
  - プロジェクト名を自動取得
  - プロジェクトルートディレクトリを特定
- 出力: プロジェクト名とルートパス

### 3.3 話数解決機能の統合
- 入力: 話数（数値）またはファイル名
- 処理:
  - 数値の場合はEpisodeNumberResolverで解決
  - ファイル名の場合はそのまま使用
- 出力: 対象エピソードのファイルパス

## 4. エラーハンドリング

- プロジェクト設定.yamlが見つからない場合
- 話数管理.yamlが見つからない場合
- 指定された話数が存在しない場合
- 無効なステータス値が指定された場合

## 5. CLI変更

### 現在の構文
```bash
novel complete-episode <プロジェクト名> <話数> [オプション]
```

### 新しい構文
```bash
novel complete-episode <話数> [オプション]
```

### オプション
- `--status <状態>`: 設定するステータス（3文字短縮形）
  - 「未着」「執筆中」「執筆済」「推敲済」「公開済」
- 既存のオプションは維持

## 6. 実装チェックリスト

- [ ] ステータス値マッピング機能の実装
- [ ] プロジェクト自動検出機能の実装
- [ ] 話数解決機能の統合
- [ ] CLIパーサーの更新
- [ ] 単体テストの作成
- [ ] 統合テストの作成
- [ ] ドキュメントの更新
