---
name: c-001-implement-task
description: c-implementation.md のステップを順次実行し、テスト・レビューを経て機能を完成させる。タスクレビュー後、実装を開始する際に使用（speckit.implement スタイル）。
disable-model-invocation: true
argument-hint: "[task-id]"
---

# ImplementTask (c-001)

## 目的

- 実装タスクリスト（`c-implementation.md`）の各ステップを順次実行する。
- 各ステップの成果物を確実に作成し、実装漏れを防止する。
- ステップごとにテストを実行し、受け入れ基準を満たすことを確認する。
- フェーズごとに進捗を管理し、完了状態を可視化する。
- TDD（テスト駆動開発）アプローチに従い、品質を担保する。

## 前提

- タスクディレクトリが既に作成されていること（`/b-001-create-task-directory` で作成済み）
- タスク定義ドキュメント（`a-definition.md`）が作成されていること
- リサーチドキュメント（`b-research.md`）が作成されていること
- 実装タスクリスト（`c-implementation.md`）が作成されていること
- タスクディレクトリ形式: `docs/tasks/task000001-{スラッグ}/`
- 開発環境がセットアップされていること（必要なツール、ライブラリがインストール済み）
- Git リポジトリが初期化されていること

## Spec-Kit スタイルの実行フロー

このスキルは以下の原則に従います：

1. **仕様駆動開発**: タスク定義とリサーチドキュメントが実行可能な仕様として機能
2. **段階的な実装**: 一度にすべてを実装せず、ステップごとに進める
3. **依存関係の尊重**: ステップの順序を守り、前のステップの完了を確認してから次へ
4. **並列実行の最適化**: 依存関係のないステップは並列実行を検討
5. **テスト駆動開発**: 各ステップで適切なテストを実行
6. **継続的な検証**: 受け入れ基準を常に確認

実装ループ全体の俯瞰図と speckit.implement との対応は [reference/implementation-loop.md](reference/implementation-loop.md) を参照。

## 手順

`$ARGUMENTS` が指定されている場合は `task{ID}-{SLUG}`（例: `task000003-auth-login`）として使用する。未指定の場合はユーザーに対象タスクを確認する。

### 1. 実装前の検証

**必須ドキュメントの存在確認**:

- [ ] タスク定義ドキュメント（`a-definition.md`）
- [ ] リサーチドキュメント（`b-research.md`）
- [ ] 実装タスクリスト（`c-implementation.md`）

いずれかが存在しない場合、該当するスキルを実行するよう促す。

**実装タスクリストの読み込み**:

`c-implementation.md` からフェーズ一覧・各フェーズの目的と完了条件・ステップ一覧・成果物・受け入れ基準を確認する。構造例は [examples/task-list-format.md](examples/task-list-format.md) を参照。

**開発環境とGit 状態の確認**:

```bash
node --version
git status
git branch --show-current
```

- 必要なツール（言語ランタイム、パッケージマネージャ、DB）の有無を確認。
- このタスク用の新しいブランチ作成を提案。推奨名: `task/{task-id}` または `feature/{スラッグ}`。

### 2. 実装の実行

**開始位置を確認**: どのフェーズ・ステップから開始するか（デフォルト: フェーズ 1、ステップ 1）。

**各ステップ実行の流れ**:

1. **ステップ情報の表示** — 「実行中: フェーズ {N}、ステップ {M}」＋成果物・詳細
2. **依存関係の確認** — 前のステップ完了と前提条件の充足を確認
3. **実装の実行** — 成果物のファイルを作成/編集。リサーチのベスプラと再利用コンポーネントを活用
4. **コードの説明** — 実装内容と重要な技術的決定を簡潔に記録
5. **検証ループ（最大 3 回）** — 下記フローで、成功するまで修正を繰り返す。詳細は [reference/validation-loop.md](reference/validation-loop.md) を参照。
   1. 型チェック / Lint / ユニットテストを実行
   2. 失敗があれば原因を特定して修正
   3. 再実行して合格を確認
   4. 3 回試行しても解決しない場合はユーザーにエスカレーション
6. **ステップの完了マーク** — 全検証が合格したら `c-implementation.md` のチェックボックスを `- [ ]` → `- [x]` に更新
7. **Git コミット（オプション）** — コミットメッセージは [examples/commit-and-pr.md](examples/commit-and-pr.md) を参照

**並列実行の最適化**:

`[P]` マークがついたステップは依存関係がなく、並列実行を検討する（詳細は [examples/task-list-format.md](examples/task-list-format.md)）。

### 3. フェーズごとの受け入れ基準の確認

各フェーズの全ステップが完了したら、受け入れ基準を確認：

1. **自動テストの実行**
   - ユニットテスト: `npm test`
   - 統合テスト: `npm run test:integration`
   - E2E テスト: `npm run test:e2e`

2. **手動確認が必要な項目** — ユーザーに確認を依頼

3. **結果の記録** — `c-implementation.md` の受け入れ基準チェックボックスを `- [x]` に更新

4. **フェーズ完了コミット** — コミットメッセージ例は [examples/commit-and-pr.md](examples/commit-and-pr.md)

### 4. 次のフェーズへの移行

- 前フェーズの受け入れ基準がすべて満たされているか確認。
- 必要な環境設定が完了しているか確認。
- 進捗を可視化してユーザーに共有（例は [examples/task-list-format.md](examples/task-list-format.md)）。

### 5. 全フェーズ完了後の最終確認

**最終テスト**:

- [ ] 全ユニット / 統合 / E2E テストが通る
- [ ] テストカバレッジが基準を満たす（例: 80%以上）
- [ ] Lint エラーがない
- [ ] TypeScript コンパイルエラーがない
- [ ] ビルドが成功する

```bash
npm run test:all
npm run lint
npm run type-check
npm run build
```

**タスク定義の受け入れ基準との照合**:

`a-definition.md` の受け入れ基準をすべての実装が満たしているか検証。

**ドキュメント更新の確認**:

- README.md（セットアップ手順、使い方）
- API ドキュメント（必要に応じて）
- 環境変数設定（.env.example）
- 変更履歴（CHANGELOG.md）

### 6. コミットと PR 作成

- **最終コミット**: 実装全体のまとめコミットを作成。
- **PR 作成の提案**: Pull Request を作成するか確認。
- コミットメッセージ・PR タイトル・PR 本文のテンプレートは [examples/commit-and-pr.md](examples/commit-and-pr.md) を参照。

### 7. 完成と次のステップ

- 「タスク {task-id} の実装が完了しました！」
- 実装完了チェック:
  - [ ] 全ステップが完了している
  - [ ] 全受け入れ基準が満たされている
  - [ ] テストが全て通っている
  - [ ] ドキュメントが更新されている
  - [ ] コミットが作成されている
  - [ ] PR が作成されている（該当する場合）
- 次のステップの提案: PR レビュー依頼 or 次のタスク着手。

## 完了条件

- `c-implementation.md` の全ステップチェックボックスが `[x]`
- 全フェーズの受け入れ基準が満たされている
- `a-definition.md` の受け入れ基準が満たされている
- 全テスト（ユニット/統合/E2E）が通っている
- Lint エラーがない
- ビルドが成功している
- ドキュメントが更新されている
- Git コミットが作成されている
- PR が作成されている（該当する場合）

## エスカレーション

- **必須ドキュメントが不足**: 「{ドキュメント名} が見つかりません。先に該当スキルを実行してください（タスク定義 → `/b-001` / リサーチ → `/b-002` / 実装タスクリスト → `/b-003`）。」
- **開発環境が未準備**: 「必要なツールがインストールされていません：{ツール名}」とインストール方法をガイド。
- **ステップ実装中のエラー**: 原因を分析し修正を試行。修正不能ならユーザーに報告しガイダンスを求める。
- **テスト失敗**: 失敗の原因を分析し、修正が必要なコードを特定して提案 or 実行。
- **受け入れ基準が満たせない**: 原因調査 → 追加実装 or 基準の見直しを検討。
- **並列実行でコンフリクト発生**: コンフリクトを解決、必要に応じて順次実行に切り替え。
- **前のステップの完了未確認**: 依存関係を確認し、順序を守る。

## 参考

- [reference/implementation-loop.md](reference/implementation-loop.md) — 実装ループの詳細フロー図と speckit.implement 対応
- [reference/validation-loop.md](reference/validation-loop.md) — 検証ループのフロー、実行コマンド、エスカレーション基準
- [examples/task-list-format.md](examples/task-list-format.md) — 実装タスクリストの構造・受け入れ基準・進捗表示の例
- [examples/commit-and-pr.md](examples/commit-and-pr.md) — コミットメッセージと PR テンプレート
