# Phase1改善 進捗管理（型安全性強化 + 外部監査対応）

## 概要

Railway Framework の型安全性強化および外部監査フィードバックへの対応。
全 Issue は **TDD（Red/Green/Refactor）** と **関数型パラダイム** に準拠。

---

## 実装方針

### TDD フロー（各 Issue 共通）

```
1. Red:   テストを先に書き、失敗を確認
2. Green: 最小限の実装でテストを通す
3. Refactor: コードを整理、ドキュメント追加
```

### 設計方針

- **Python標準を活かす**: 例外機構、型ヒント、dataclass
- **シンプルさ優先**: 必要な時だけ高度な機能を使用
- **段階的な複雑さ**: Node内処理 → 例外伝播 → on_error

### 3層エラーハンドリング設計

| レベル | 用途 | 手段 |
|--------|------|------|
| Level 1: Node内 | 個別の例外処理 | try/except, RetryPolicy |
| Level 2: Pipeline | デフォルト動作 | 例外伝播（Python標準） |
| Level 3: Pipeline | 高度な制御 | on_errorコールバック |

---

## 完了Issue一覧 ✅

### Phase 1: 基盤整備（型安全性の土台）

| # | Issue | 状態 | 概要 |
|---|-------|------|------|
| 27 | [プロジェクトテンプレートpy.typed追加](./27_プロジェクトテンプレートpy.typed追加.md) | ✅ 完了 | 生成プロジェクトにpy.typed追加 |
| 26 | [nodeデコレータ型定義改善](./26_nodeデコレータ型定義改善.md) | ✅ 完了 | @overloadでmypy警告解消 |

### Phase 2: コア機能強化（Railway の核心）

| # | Issue | 状態 | 概要 |
|---|-------|------|------|
| 28 | [部分的失敗とリカバリーパターン](./28_部分的失敗とリカバリーパターン.md) | ✅ 完了 | on_errorコールバックでPipeline単位のエラー制御 |
| 31 | [リトライポリシー導入](./31_リトライ対象例外指定.md) | ✅ 完了 | RetryPolicyで柔軟なリトライ設定 |
| 33 | [inputs自動推論](./33_inputs自動推論.md) | ✅ 完了 | 型ヒントからinputsを自動推論 |

### Phase 3: 補助機能

| # | Issue | 状態 | 概要 |
|---|-------|------|------|
| 29 | [pipeline使い分けドキュメント](./29_pipeline使い分けドキュメント.md) | ✅ 完了 | pipeline/typed_pipelineの使い分け明確化 |
| 30 | [ログメッセージ言語統一](./30_ログメッセージ言語統一.md) | ✅ 完了 | 日英混在のログを**日本語**に統一 |
| 32 | [パイプライン中間結果アクセス](./32_パイプライン中間結果アクセス.md) | ✅ 完了 | on_stepコールバックで中間結果取得 |

### Phase 4: ドキュメント統合

| # | Issue | 状態 | 概要 |
|---|-------|------|------|
| 35 | [README更新](./35_README更新.md) | ✅ 完了 | 3層エラーハンドリングの設計思想を明確に説明 |
| 36 | [TUTORIAL更新](./36_TUTORIAL更新.md) | ✅ 完了 | 実践シナリオで恩恵を体験できる構成に |

### Phase 5: テスト品質改善

| # | Issue | 状態 | 概要 |
|---|-------|------|------|
| 37 | [テスト分離cwd汚染問題](../37_テスト分離cwd汚染問題.md) | ✅ 完了 | conftest.pyにcwd保護fixtureを追加 |

---

## 進捗サマリー

| 状態 | 件数 |
|------|------|
| ✅ 完了 | **11** |
| 未着手 | 0 |
| **合計** | **11** |

---

## 完了した機能の概要

### 1. 型安全性強化

- **py.typed**: 生成プロジェクトにPEP 561マーカー追加
- **@overload**: nodeデコレータの型定義改善（mypy警告解消）
- **inputs自動推論**: 型ヒントからContract型を自動推論

### 2. エラーハンドリング強化

- **on_error**: Pipeline単位のエラー制御コールバック
- **RetryPolicy**: 柔軟なリトライ設定（retries, retry_on, backoff戦略）
- **on_step**: 各ステップ完了後のコールバック（デバッグ/監査用）

### 3. ドキュメント整備

- **README**: 3層エラーハンドリングの設計思想を明確に説明
- **TUTORIAL**: Step 8追加（エラーハンドリング体験）、FAQ追加
- **Docstrings**: pipeline/typed_pipelineの使い分け明確化

### 4. 品質改善

- **ログメッセージ日本語統一**: 英日混在を解消

### 5. テスト基盤改善

- **cwd保護fixture**: conftest.pyにautouse=Trueでcwd自動復元
- **テスト分離保証**: 120件の分離失敗を解消（全418テストpass）

---

## テスト追加

以下のテストファイルを新規追加:

- `tests/unit/cli/test_init_py_typed.py`
- `tests/unit/core/test_node_typing.py`
- `tests/unit/core/test_on_error.py`
- `tests/unit/core/test_retry_policy.py`
- `tests/unit/core/test_inputs_inference.py`
- `tests/unit/core/test_on_step.py`
- `tests/unit/cli/test_tutorial_error_handling.py`

---

## 過去のレビュー対応

### レビュー1対応 ✅
→ [完了済み/1/](./完了済み/1/)

### レビュー2対応 ✅
→ [完了済み/2/](./完了済み/2/)

### レビュー3対応 ✅
→ [完了済み/3/](./完了済み/3/)

### レビュー4対応 ✅
→ [完了済み/4/](./完了済み/4/)

---

## 却下Issue

| # | Issue | 却下理由 |
|---|-------|----------|
| 34 | [並列実行サポート](./却下/34_並列実行サポート.md) | 初期フェーズでは不要、将来検討 |

→ [却下/](./却下/)

---

## 保留Issue

→ [保留/](./保留/)
