| name | code-dev |
| description | アプリケーション実装の一気通貫オーケストレーションワークフロー。実装(テスト変更を含む場合はTDD、含まない場合は直接実装)→コードレビュー→レビュー指摘修正→CI実行→CI指摘修正→設計書整合性チェック→設計書修正を人間への確認なしに自律実行する。CLAUDE.md の開発フロー Step 6(frontend/backend実装)で使用。Issue番号を引数に指定すること(例: /code-dev 15)。CDKには使用しない。 |
| argument-hint | <Issue番号> |
/code-dev
Issue番号: $ARGUMENTS
実装 → コードレビュー → レビュー指摘修正 → CI実行 → CI指摘修正 → 設計書整合性チェック → 設計書修正 を順次自律実行する。
全フェーズを人間への確認なしに自律実行すること。
実行手順
- Phase 1: 実装 - まず実装方式を判定し、判定結果に応じて TDD または直接実装を行う(詳細は下記「Phase 1: 実装方式の判定と実行」)。AskUserQuestion が必要な箇所は全て最初の選択肢(デフォルト)で自動選択し、人間への確認なしに最後まで自律実行すること
- Phase 2: コードレビュー - Phase 1 完了後、
code-reviewer-agent を Task ツールで起動し、完了を待つ
- Phase 3: レビュー指摘修正 - Phase 2 のレビュー結果に指摘事項がある場合、直接コードを修正する。指摘なしの場合はスキップ
- Phase 4: CI実行 -
code-ci-runner-agent を Task ツールで起動し、完了を待つ
- Phase 5: CI指摘修正 - Phase 4 の結果にエラーがある場合、静的解析・テストエラーを修正する。エラーなしの場合はスキップ
- Phase 6: 設計書整合性チェック -
design-validator-agent を Task ツールで起動し、完了を待つ
- Phase 7: 設計書修正 - Phase 6 の結果に指摘事項がある場合、実装を正として設計書を修正する。指摘なしの場合はスキップ
- 各フェーズの出力をそのまま全文表示する(要約・加工・コメント追加は禁止)
Phase 1: 実装方式の判定と実行
TDD はテストを起点に実装を駆動する手法であり、テストの新規作成・変更を伴うタスクでこそ価値を発揮する。逆に、テスト変更を伴わないタスク(設定値変更・型定義の調整・ログ追加・既存テストを壊さない軽微な修正など)に TDD を適用すると、無意味な Red フェーズを挟むだけで非効率になる。そのため、まずタスク内容からテスト変更の要否を判定し、方式を分岐する。
ステップ 1-1: テスト変更要否の判定
gh issue view $ARGUMENTS --json title,body,labels で Issue を取得し、タスク一覧(## タスク一覧 のチェックリスト)のうち アプリケーションコード(backend/frontend)に関するタスク を対象に、テストの新規作成・変更を伴うかを判定する。
| 判定 | 該当するタスクの例 | 実装方式 |
|---|
| テスト変更あり | 新規関数・ハンドラーの実装、新しい振る舞いの追加、テストコード作成が明記されている | ステップ 1-2A(TDD) |
| テスト変更なし | 設定値・定数の変更、型定義の調整、ログ追加、リネーム、コメント修正など既存テストに影響しない変更のみ | ステップ 1-2B(直接実装) |
判定が曖昧な場合(新しい振る舞いが加わる可能性がある)は、安全側に倒して TDD(1-2A) を選択する。
判定結果と根拠を明示してから、対応するステップへ進む。
ステップ 1-2A: TDD 実装
tdd スキルを Skill ツールで Issue番号 $ARGUMENTS を渡して起動し、TDDサイクル(Red-Green-Refactor)をこの場(インライン)で実行する。AskUserQuestion が必要な箇所は全て最初の選択肢(デフォルト)で自動選択し、人間への確認なしに最後まで自律実行すること。完了後、Phase 2 へ進む。
ステップ 1-2B: 直接実装(TDD を使わない)
tdd スキルは起動しない。Issue のタスク一覧(アプリケーションコードタスクのみ)を1つずつ実装する。
- 対象は
backend/・frontend/ 配下のみ。cdk/ 配下は変更しない
- コメント・JSDoc は
docs/policy/code-comment-policy.md に従う(実装コメントは WHY、doc comment は契約を書く。コードが語る WHAT/HOW は書かない)
- 各タスク完了ごとに
gh issue edit $ARGUMENTS でチェックリストを更新する
- 既存テストがある場合、変更後も壊れていないことを確認するため
unit-test-runner を Task ツールで起動して回帰確認する(既存テストが存在しない場合はスキップ)
完了後、Phase 2 へ進む。
エラーハンドリング
- Phase 1 失敗(TDD: ステップ 1-2A) → Phase 2 以降は実行しない。
/tdd $ARGUMENTS で個別実行を案内する
- Phase 1 失敗(直接実装: ステップ 1-2B) → Phase 2 以降は実行しない。エラー内容を表示し、手動での修正を案内する
- Phase 2 失敗 → Phase 1 の実装は完了済み。
/code-review で個別実行を案内する
- Phase 3 修正不要(指摘なし)→ Phase 4 へスキップ
- Phase 4 失敗 → エラー内容を表示し中断。
/code-ci で個別実行を案内する
- Phase 5 修正後も CI 失敗 → エラー内容を表示し、手動での修正を案内する
- Phase 6 失敗 → CI まで完了済み。
/validate-design で個別実行を案内する
- Phase 7 修正不要(指摘なし)→ 完了