# Issue 04: エラースタックトレース簡潔化

## 概要

エラー発生時のスタックトレースが非常に長く、ユーザーにとって重要な情報を見つけにくい。

## 問題の詳細

### 現状
`uv run railway run calc -- --b 0` のようなエラー発生時、スタックトレースが100行以上出力される：
- Typer/Click のフレームワーク内部コード
- railway の内部実装コード
- ユーザーコード

### ユーザーにとって重要な情報
実際に必要なのは以下の数行のみ：
```
ValueError: Cannot divide by zero

  File "/path/to/src/nodes/validate_divisor.py", line 10, in validate_divisor
    raise ValueError("Cannot divide by zero")
```

### 冗長な出力の例
- `typer.main.Typer object at 0x...` などのオブジェクト参照
- click/typer の内部呼び出しチェーン
- railway の decorators.py, pipeline.py の内部処理

## 改善案

### 案1: デフォルトで簡潔表示 + --verbose オプション

**通常時：**
```
[validate_divisor] ✗ Failed: ValueError: Cannot divide by zero

Location: src/nodes/validate_divisor.py:10
ヒント: 入力データの形式や値を確認してください。

詳細なスタックトレースは --verbose オプションで表示できます。
```

**--verbose 時：**
現在の完全なスタックトレースを表示

### 案2: フィルタリング表示

フレームワーク内部のスタックフレームを除外し、ユーザーコードのみ表示：
```python
# 除外するパス
INTERNAL_PATHS = [
    "site-packages/typer/",
    "site-packages/click/",
    "site-packages/railway/",
    "<frozen",
]
```

### 案3: 構造化エラー表示

```
╭─ Error ─────────────────────────────────────────╮
│ ValueError: Cannot divide by zero                │
│                                                  │
│ Location: src/nodes/validate_divisor.py:10      │
│ Node: validate_divisor                          │
│ Pipeline step: 1/2                              │
╰──────────────────────────────────────────────────╯

💡 ヒント: 入力データの形式や値を確認してください。
```

## 推奨アプローチ

案1を推奨：
1. デフォルトでは簡潔なエラー表示
2. `--verbose` または `-v` で詳細表示
3. ログファイル（logs/app.log）には常に完全なスタックトレースを記録

## 実装方針

1. `railway.core.decorators` のエラーハンドリング部分を修正
2. `RAILWAY_VERBOSE` 環境変数または CLI オプションで制御
3. rich ライブラリを使用した整形表示（既に依存関係にある場合）

## 関連ファイル

- `src/railway/core/decorators.py`: エラーハンドリング
- `src/railway/core/pipeline.py`: パイプラインエラー処理
- `src/railway/cli/run.py`: CLI エントリポイント

## 優先度

Medium - DX改善だが、機能には影響しない
