OpenSpec変更からタスクを実装せよ。

**やること:**

1. タスクの説明から変更名を特定する
   - 名前が提供されている場合、そのまま使用する
   - 提供されていない場合、`openspec/changes/`でアクティブな変更を確認する
   - アクティブな変更が1つだけの場合、自動的に使用する

2. ステータスを確認してスキーマを理解する
   ```bash
   ./node_modules/.bin/openspec status --change "<name>" --json
   ```
   JSONを解析して以下を理解する:
   - `schemaName`: 使用されているワークフロー
   - どのアーティファクトが完了しているか

3. apply指示を取得する
   ```bash
   ./node_modules/.bin/openspec instructions apply --change "<name>" --json
   ```
   以下が返される:
   - コンテキストファイルパス
   - 進捗（合計、完了、残り）
   - ステータス付きタスクリスト
   - 現在の状態に基づく動的指示

   状態のハンドリング:
   - `state: "blocked"`（アーティファクト不足）の場合: 報告してABORT
   - `state: "all_done"`の場合: 完了を報告してCOMPLETE
   - それ以外: 実装に進む

4. コンテキストファイルを読む
   apply指示出力の`contextFiles`に記載されているファイルを読む。

5. タスクを実装する（完了またはブロックされるまでループ）

   保留中の各タスクに対して:
   - 必要なコード変更を行う
   - 変更を最小限かつ焦点を絞ったものにする
   - タスクファイルでタスクを完了済みにする: `- [ ]` → `- [x]`
   - 次のタスクに進む

   以下の場合は停止:
   - タスクが不明確（曖昧さを報告）
   - 実装中に設計問題が発覚（報告）
   - エラーまたはブロッカーに遭遇（報告）

6. 最終ステータスを表示する
   完了したタスクと全体の進捗を表示する。

**重要なルール:**

- 実装開始前に必ずコンテキストファイルを読む
- コード変更を最小限に保ち、各タスクにスコープする
- 各タスク完了後すぐにタスクチェックボックスを更新する
- CLI出力のcontextFilesを使用し、特定のファイル名を仮定しない
- ブロックされたり問題が発生した場合、推測せず明確に報告してABORTする
