# E001: 開始ノードの引数エラー

## 概要

開始ノード（`start` に指定されたノード）が引数を受け取らない関数として定義されている場合に発生します。

## エラーメッセージ

```
Error [E001]: 開始ノードの引数エラー

開始ノード 'start' は引数を受け取る必要があります。

Hint:
  def start(ctx: Context | None = None) -> tuple[Context, Outcome]:
```

## 原因

`dag_runner` の `start` に渡す開始ノード関数は、コンテキストを引数として受け取る必要があります。
引数なしの関数を渡した場合にこのエラーが発生します。

```python
# NG: 引数がない
@node
def start() -> tuple[MyContext, Outcome]:
    return MyContext(value="hello"), Outcome.success("done")
```

## 解決方法

開始ノードにコンテキスト引数を追加してください。初期コンテキストを生成する場合は `None` をデフォルト値にします。

```python
# OK: ctx 引数を受け取る（デフォルト値で初期化にも対応）
@node
def start(ctx: MyContext | None = None) -> tuple[MyContext, Outcome]:
    if ctx is None:
        ctx = MyContext(value="hello")
    return ctx, Outcome.success("done")
```

## 発生箇所

- `dag_runner()` 実行時

## 関連

- [readme.md](../../readme.md) - dag_runner の使い方
- [docs/transition_graph_reference.md](../transition_graph_reference.md) - YAML の `start` セクション
