# E002: モジュールが見つかりません

## 概要

YAML の遷移グラフで指定されたモジュールパスに対応する Python モジュールが見つからない場合に発生します。

## エラーメッセージ

```
Error [E002]: モジュールが見つかりません

モジュール 'nodes.my_workflow.process' が見つかりません。

Hint:
  YAML の module パスを確認してください: src/nodes/my_workflow/process.py
```

## 原因

YAML で定義したノードの `module` パス（明示指定または自動解決）に対応するファイルが存在しません。

### よくある原因

1. **ノードファイルが未作成**
   ```yaml
   nodes:
     process:
       description: "処理ノード"
       # 自動解決: module=nodes.my_workflow.process
   ```
   → `src/nodes/my_workflow/process.py` が存在しない

2. **module パスのタイプミス**
   ```yaml
   nodes:
     process:
       module: nodes.my_workfow.process  # typo: workflow → workfow
   ```

3. **ディレクトリ構造の不一致**
   ```
   # YAML が期待するパス
   src/nodes/my_workflow/process.py

   # 実際のパス
   src/nodes/process.py  # ← entrypoint 配下にない
   ```

## 解決方法

### 方法1: ノードファイルを作成する

```bash
railway new node process
```

または手動で作成:

```python
# src/nodes/my_workflow/process.py
from railway import node
from railway.core.dag import Outcome

@node
def process(ctx):
    return ctx, Outcome.success("done")
```

### 方法2: YAML の module パスを修正する

```yaml
nodes:
  process:
    module: nodes.correct_path.process  # 正しいパスに修正
    function: process
```

### 方法3: 自動解決を利用する

`module` と `function` を省略すると、`entrypoint` とノード名から自動解決されます。

```yaml
entrypoint: my_workflow

nodes:
  process:
    description: "処理ノード"
    # module: nodes.my_workflow.process (自動)
    # function: process (自動)
```

## 発生箇所

- `railway sync transition` 実行時

## 関連

- [docs/transition_graph_reference.md](../transition_graph_reference.md) - ノードの自動解決ルール
