@k2works/claude-code-booster 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,15 +5,24 @@
5
5
  ### 使い方
6
6
 
7
7
  ```bash
8
- /dev
8
+ /dev [オプション]
9
9
  ```
10
10
 
11
+ ### オプション
12
+
13
+ - なし : 開発フェーズ全体のワークフローを表示
14
+ - `--codex` : Claude(計画・設計・受入)と Codex(実装)の分業体制で開発
15
+
11
16
  ### 基本例
12
17
 
13
18
  ```bash
14
19
  # 開発フェーズ全体のワークフロー表示
15
20
  /dev
16
21
  「開発フェーズの全体的な進め方と TDD サイクルの説明」
22
+
23
+ # Claude と Codex の分業体制で開発
24
+ /dev --codex
25
+ 「US-103 お知らせ管理を開始。計画・設計は Claude、実装は Codex が担当」
17
26
  ```
18
27
 
19
28
  ### 詳細機能
@@ -43,6 +52,7 @@ Red-Green-Refactor サイクルを厳密に実行:
43
52
 
44
53
  #### 参照ドキュメント
45
54
 
55
+ - @docs/reference/CodexCLIMCPアプリケーション開発フロー.md を参照
46
56
  - @docs/design/architecture.md を参照
47
57
  - @docs/design/architecture_backend.md を参照
48
58
  - @docs/design/architecture_frontend.md を参照
@@ -60,23 +70,145 @@ Red-Green-Refactor サイクルを厳密に実行:
60
70
  - **インサイドアウト**: データ層から開始し上位層へ展開(バックエンド推奨)
61
71
  - **アウトサイドイン**: UI から開始しドメインロジックを段階的に実装(フロントエンド推奨)
62
72
 
63
- ### Claude との連携
73
+ #### Codex を活用した開発モード(--codex)
74
+
75
+ `--codex` オプションを指定すると、Claude と Codex の分業体制で開発を進めます。
76
+
77
+ **前提条件**:
78
+ - Codex MCP サーバーが設定済みであること
79
+ - @docs/reference/CodexCLIMCPサーバー設定手順.md を参照
80
+ - @docs/reference/CodexCLIMCPアプリケーション開発フロー.md を参照
81
+
82
+ **役割分担**:
83
+
84
+ | フェーズ | 担当 | 責務 |
85
+ |---------|------|------|
86
+ | 計画 | Claude | 要件分析、タスク分解、優先度決定 |
87
+ | 設計 | Claude | API 設計、UI 設計、データモデル設計 |
88
+ | 実装 | Codex | コード実装、ユニットテスト作成 |
89
+ | 受入 | Claude | 設計レビュー、E2E テスト作成・実行、品質確認 |
90
+
91
+ **開発フロー**:
92
+
93
+ ```mermaid
94
+ graph LR
95
+ A[計画] --> B[設計]
96
+ B --> C[実装指示]
97
+ C --> D[受入]
98
+
99
+ subgraph Claude
100
+ A
101
+ B
102
+ D
103
+ end
104
+
105
+ subgraph Codex
106
+ C
107
+ end
108
+ ```
109
+
110
+ **Codex MCP ツールのパラメータ**:
111
+
112
+ | パラメータ | 説明 | 推奨値 |
113
+ |-----------|------|--------|
114
+ | `prompt` | 実装指示(詳細な要件を含む) | タスク単位で明確に記述 |
115
+ | `sandbox` | 実行環境の権限レベル | `danger-full-access`(推奨) |
116
+ | `approval-policy` | コマンド実行時の承認ポリシー | `never` |
117
+ | `cwd` | 作業ディレクトリ | プロジェクトルート |
118
+
119
+ **指示サイズに関する注意**:
120
+
121
+ | 粒度 | 推奨度 | 説明 |
122
+ |------|--------|------|
123
+ | タスク単位(1-3 ファイル) | ✅ 推奨 | 1 つのコンポーネントや機能単位 |
124
+ | 機能単位(3-5 ファイル) | ⚠️ 注意 | 進捗確認を頻繁に行う |
125
+ | ユーザーストーリー単位 | ❌ 非推奨 | タスクに分割して実行 |
126
+
127
+ **Codex が書き込みできない場合の対処**:
128
+
129
+ 1. Claude が勝手に直接編集を進めてはいけない
130
+ 2. ユーザーに状況を報告し、確認を待つ
131
+ 3. ユーザーの許可を得てから代替手段を実行
132
+
133
+ ### 開発フローの実践
134
+
135
+ `/dev --codex` を使用した開発フローの実践例:
136
+
137
+ #### 1. 計画フェーズ(Claude)
64
138
 
65
139
  ```bash
66
- # プロジェクト情報の確認後に開発開始
67
- ls -la apps/
68
- cat README.md
69
- /dev
70
- 「プロジェクトの現状を踏まえた開発フェーズの進め方を提案」
140
+ # イテレーションのユーザーストーリー開始
141
+ /dev --codex
142
+ 「US-103 お知らせ管理を開始。計画・設計は Claude、実装は Codex が担当」
143
+ ```
144
+
145
+ Claude の活動:
146
+ 1. イテレーション計画を読み込み
147
+ 2. 受入条件を確認
148
+ 3. 既存コードを調査(API、フロントエンド構造)
149
+ 4. タスクリストを作成
150
+
151
+ #### 2. 設計フェーズ(Claude)
152
+
153
+ Claude の活動:
154
+ 1. API エンドポイント設計を確認
155
+ 2. フロントエンドコンポーネント設計
156
+ 3. Codex への詳細指示を作成
71
157
 
72
- # バックエンド開発の開始
73
- /dev-backend --tdd
74
- 「User エンティティのテストから開始します」
158
+ #### 3. 実装フェーズ(Codex)
159
+
160
+ **Codex への指示例**:
161
+
162
+ ```
163
+ mcp__codex__codex
164
+ prompt: |
165
+ お知らせ管理機能を実装してください。
166
+
167
+ ## 開発ガイド
168
+ docs/reference/コーディングとテストガイド.md に従って実装すること。
169
+ 特に TDD サイクル(Red-Green-Refactor)を厳守すること。
170
+
171
+ ## タスク
172
+ 1. AuthContext に role と canManageAnnouncements を追加
173
+ 2. API クライアントに create/update/delete 関数を追加
174
+ 3. ConfirmDialog コンポーネントを作成
175
+ 4. AnnouncementForm コンポーネントを作成
176
+
177
+ ## 既存パターン参照
178
+ - API クライアント: src/lib/api.ts
179
+ - フォームコンポーネント: src/components/ui/Input.tsx
180
+
181
+ ## 完了条件
182
+ - ESLint エラーなし
183
+ - 既存テストがパス
184
+ - TDD サイクルに従って実装
185
+
186
+ sandbox: danger-full-access
187
+ approval-policy: never
188
+ cwd: プロジェクトルート
189
+ ```
190
+
191
+ **継続指示**(codex-reply ツール使用):
75
192
 
76
- # フロントエンド開発の開始
77
- /dev-frontend --tdd
78
- 「LoginForm コンポーネントのテストから開始します」
79
193
  ```
194
+ mcp__codex__codex-reply
195
+ threadId: "<前回のスレッドID>"
196
+ prompt: "テストを実行して結果を確認してください"
197
+ ```
198
+
199
+ #### 4. 受入フェーズ(Claude)
200
+
201
+ Claude の活動:
202
+ 1. 設計レビュー: 実装が設計に準拠しているか確認
203
+ 2. E2E テスト作成: 成功基準に基づくテストを作成
204
+ 3. E2E テスト実行: 機能が正しく動作することを検証
205
+ 4. バグ修正: 問題があれば修正
206
+
207
+ **受入基準**:
208
+ - [ ] すべての受入条件が満たされている
209
+ - [ ] E2E テストがすべてパス
210
+ - [ ] ESLint エラーがない
211
+ - [ ] 既存テストが壊れていない
80
212
 
81
213
  ### 注意事項
82
214
 
@@ -95,3 +227,5 @@ cat README.md
95
227
 
96
228
  - `/dev-backend` : バックエンド開発ガイド
97
229
  - `/dev-frontend` : フロントエンド開発ガイド
230
+ - @docs/reference/CodexCLIMCPアプリケーション開発フロー.md : アプリケーション開発フロー
231
+ - @docs/reference/CodexCLIMCPサーバー設定手順.md : Codex MCP サーバー設定手順
@@ -13,9 +13,9 @@
13
13
  - なし : 全体の同期を実行(Project作成、Issue作成、フィールド設定、Milestone作成)
14
14
  - `--project` : GitHub Project のみを作成
15
15
  - `--issues` : Issue のみを作成(Project が存在する前提)
16
- - `--fields` : Project フィールド値のみを設定
16
+ - `--fields` : 各 Issue に対して Project フィールド値を個別に設定(リリース、イテレーション、優先度、SP、カテゴリ、Status)
17
17
  - `--milestones` : Milestone のみを作成し Issue に割り当て
18
- - `--verify` : release_plan.md と GitHub の差異を確認
18
+ - `--sync` : release_plan.md と GitHub の差異を確認し、差異があれば同期を実行
19
19
  - `--status` : 現在の GitHub Project 状態を表示
20
20
 
21
21
  ### 基本例
@@ -29,9 +29,9 @@
29
29
  /plan-github --project
30
30
  「GitHub Project を作成して」
31
31
 
32
- # 差異確認
33
- /plan-github --verify
34
- 「release_plan.md と GitHub Issue の差異を確認して」
32
+ # 差異確認と同期
33
+ /plan-github --sync
34
+ 「release_plan.md と GitHub の差異を確認して同期して」
35
35
 
36
36
  # 現在の状態確認
37
37
  /plan-github --status
@@ -76,20 +76,99 @@ release_plan.md に基づいて GitHub Project を作成し、カスタムフィ
76
76
 
77
77
  #### フィールド値の設定
78
78
 
79
- 各 Issue Project フィールドに release_plan.md の値を反映します。
79
+ 各 Issue に対して Project のカスタムフィールド値を個別に設定します。
80
80
 
81
- **設定される情報**:
81
+ **設定手順**:
82
82
 
83
- - リリース(マイルストーン対応)
84
- - イテレーション番号
85
- - 優先度(必須/重要)
86
- - ストーリーポイント
87
- - カテゴリ
83
+ 1. **フィールド ID とオプション ID の取得**
84
+ ```bash
85
+ gh project field-list <PROJECT_NUMBER> --owner <OWNER> --format json
86
+ ```
87
+
88
+ 2. **Project Item ID の取得**
89
+ ```bash
90
+ gh project item-list <PROJECT_NUMBER> --owner <OWNER> --format json --limit 50 \
91
+ | jq -r '.items[] | "\(.content.number):\(.id)"'
92
+ ```
93
+
94
+ 3. **各 Issue にフィールド値を設定**
95
+ ```bash
96
+ # Single Select フィールド(リリース、イテレーション、優先度、カテゴリ、Status)
97
+ gh project item-edit --project-id <PROJECT_ID> --id <ITEM_ID> \
98
+ --field-id <FIELD_ID> --single-select-option-id <OPTION_ID>
99
+
100
+ # Number フィールド(SP)
101
+ gh project item-edit --project-id <PROJECT_ID> --id <ITEM_ID> \
102
+ --field-id <FIELD_ID> --number <VALUE>
103
+ ```
104
+
105
+ **設定されるフィールド**:
106
+
107
+ | フィールド | タイプ | 設定内容 |
108
+ |-----------|--------|---------|
109
+ | **リリース** | Single Select | Release 1.0 MVP Alpha / 1.1 MVP Beta / 1.2 MVP / 2.0 完成版 |
110
+ | **イテレーション** | **Iteration** | IT-1 〜 IT-6(2週間スプリント) |
111
+ | **優先度** | Single Select | 必須 / 中 / 低 |
112
+ | **SP** | Number | ストーリーポイント(2〜5) |
113
+ | **カテゴリ** | Single Select | 認証 / お知らせ / 社員名簿 / カレンダー / 規定集 / マニュアル / ツール / 問い合わせ / 申請 / 承認 / ユーザー管理 |
114
+ | **Status** | Single Select | Todo / In Progress / Done |
115
+
116
+ **Iteration フィールドの作成**:
117
+
118
+ イテレーションフィールドは `gh project field-create` では作成できないため、GraphQL API を使用します:
119
+
120
+ ```bash
121
+ # Iteration タイプでフィールドを作成
122
+ gh api graphql -f query='
123
+ mutation {
124
+ createProjectV2Field(input: {
125
+ projectId: "<PROJECT_ID>"
126
+ dataType: ITERATION
127
+ name: "イテレーション"
128
+ }) {
129
+ projectV2Field {
130
+ ... on ProjectV2IterationField {
131
+ id
132
+ name
133
+ dataType
134
+ }
135
+ }
136
+ }
137
+ }'
138
+ ```
139
+
140
+ **注意**: Iteration フィールドの期間設定(開始日、スプリント期間)は GitHub Web UI から設定する必要があります:
141
+ 1. Project Settings → 「イテレーション」フィールド → 設定
142
+ 2. 各イテレーション(IT-1〜IT-6)を追加し、開始日と期間(14日)を設定
143
+
144
+ **設定例**:
145
+
146
+ ```bash
147
+ # Issue #1 にフィールド値を設定
148
+ PROJECT_ID="PVT_kwDOBz-FwM4BNAQ9"
149
+ ITEM_ID="PVTI_lADOBz-FwM4BNAQ9zgj6ixU"
150
+
151
+ # リリース: Release 1.0 MVP Alpha
152
+ gh project item-edit --project-id $PROJECT_ID --id $ITEM_ID \
153
+ --field-id PVTSSF_xxx --single-select-option-id 32cce308
154
+
155
+ # イテレーション: IT-1(Iteration フィールドの場合)
156
+ gh project item-edit --project-id $PROJECT_ID --id $ITEM_ID \
157
+ --field-id PVTIF_xxx --iteration-id <ITERATION_ID>
158
+
159
+ # SP: 5
160
+ gh project item-edit --project-id $PROJECT_ID --id $ITEM_ID \
161
+ --field-id PVTF_xxx --number 5
162
+
163
+ # Status: Done
164
+ gh project item-edit --project-id $PROJECT_ID --id $ITEM_ID \
165
+ --field-id PVTSSF_xxx --single-select-option-id 98236657
166
+ ```
88
167
 
89
168
  ```bash
90
169
  # フィールド値の一括設定
91
170
  /plan-github --fields
92
- 「release_plan.md の内容で Project フィールドを更新して」
171
+ 「release_plan.md の内容で各 Issue のフィールド値を個別に設定して」
93
172
  ```
94
173
 
95
174
  #### Milestone の作成
@@ -108,9 +187,9 @@ release_plan.md に基づいて GitHub Project を作成し、カスタムフィ
108
187
  「リリースを Milestone として作成して Issue に割り当てて」
109
188
  ```
110
189
 
111
- #### 差異確認
190
+ #### 差異確認と同期
112
191
 
113
- release_plan.md と GitHub Issue/Project の整合性を確認します。
192
+ release_plan.md と GitHub Issue/Project の整合性を確認し、差異があれば同期を実行します。
114
193
 
115
194
  **確認項目**:
116
195
 
@@ -118,11 +197,22 @@ release_plan.md と GitHub Issue/Project の整合性を確認します。
118
197
  - ストーリーポイントの一致
119
198
  - リリース/Milestone 割り当ての一致
120
199
  - 優先度の一致
200
+ - Status の一致
201
+
202
+ **同期動作**:
203
+
204
+ 1. release_plan.md と GitHub Issue/Project の差異を検出
205
+ 2. 差異レポートを表示(追加/変更/削除項目)
206
+ 3. 差異がある場合は同期を実行:
207
+ - **新規ストーリー**: Issue を作成し Project に追加
208
+ - **変更されたストーリー**: Issue のフィールド値を更新
209
+ - **削除されたストーリー**: Issue をクローズ(削除はしない)
210
+ - **Status 変更**: release_plan.md の Status を GitHub に反映
121
211
 
122
212
  ```bash
123
- # 差異確認
124
- /plan-github --verify
125
- 「release_plan.md と GitHub の差異がないか確認して」
213
+ # 差異確認と同期
214
+ /plan-github --sync
215
+ 「release_plan.md と GitHub の差異を確認して同期して」
126
216
  ```
127
217
 
128
218
  ### 出力例
@@ -148,7 +238,11 @@ release_plan.md と GitHub Issue/Project の整合性を確認します。
148
238
  ├─ リリース 2.0 機能拡張版: 12件(期日: 2026-04-24)
149
239
  └─ リリース 3.0 完成版: 8件(期日: 2026-06-19)
150
240
 
151
- 差異確認: release_plan.md と完全一致
241
+ 🔄 差異確認・同期結果
242
+ ├─ 新規 Issue: 2件(US-401, US-402)
243
+ ├─ 更新 Issue: 3件(SP変更、Status変更)
244
+ ├─ クローズ Issue: 0件
245
+ └─ ✅ 同期完了: release_plan.md と GitHub が一致
152
246
  ```
153
247
 
154
248
  ### Claude との連携
@@ -161,8 +255,8 @@ cat docs/development/release_plan.md
161
255
 
162
256
  # 計画更新後の差異確認と同期
163
257
  cat docs/development/release_plan.md
164
- /plan-github --verify
165
- 「更新したリリース計画と GitHub の差異を確認して」
258
+ /plan-github --sync
259
+ 「更新したリリース計画と GitHub の差異を確認して同期して」
166
260
 
167
261
  # 既存 Project へのフィールド更新
168
262
  /plan-github --fields
@@ -179,18 +273,20 @@ cat docs/development/release_plan.md
179
273
  - 既存の Project/Issue がある場合は重複作成に注意
180
274
  - フィールド値の更新は既存値を上書き
181
275
  - **推奨事項**:
182
- - 初回は `--verify` で差異確認してから同期
276
+ - 初回は `--sync` で差異確認してから同期
183
277
  - 大規模な変更前にはバックアップを推奨
184
278
 
185
279
  ### ベストプラクティス
186
280
 
187
281
  1. **初回同期**: `/plan-github` で全体を一括作成
188
- 2. **計画更新時**: `/plan-github --verify` で差異確認後、必要な部分のみ更新
282
+ 2. **計画更新時**: `/plan-github --sync` で差異確認と自動同期
189
283
  3. **定期確認**: `/plan-github --status` で進捗状況を定期的に確認
190
- 4. **一貫性維持**: release_plan.md を Single Source of Truth として管理
284
+ 4. **一貫性維持**: release_plan.md を Single Source of Truth として管理し、`--sync` で GitHub に反映
191
285
 
192
286
  ### 同期フロー
193
287
 
288
+ #### 初回同期フロー(`/plan-github`)
289
+
194
290
  ```mermaid
195
291
  graph TD
196
292
  A[release_plan.md] --> B{/plan-github}
@@ -201,8 +297,24 @@ graph TD
201
297
  F --> G[フィールド値設定]
202
298
  G --> H[Milestone 作成]
203
299
  H --> I[Issue に Milestone 割当]
204
- I --> J[差異確認]
205
- J --> K[同期完了]
300
+ I --> J[同期完了]
301
+ ```
302
+
303
+ #### 差異確認・同期フロー(`/plan-github --sync`)
304
+
305
+ ```mermaid
306
+ graph TD
307
+ A[release_plan.md] --> B[GitHub Issue/Project 取得]
308
+ B --> C{差異検出}
309
+ C -->|差異なし| D[✅ 一致確認]
310
+ C -->|差異あり| E[差異レポート表示]
311
+ E --> F{同期実行}
312
+ F --> G[新規 Issue 作成]
313
+ F --> H[既存 Issue 更新]
314
+ F --> I[削除された Issue クローズ]
315
+ G --> J[同期完了]
316
+ H --> J
317
+ I --> J
206
318
  ```
207
319
 
208
320
  ### 関連コマンド
@@ -0,0 +1,532 @@
1
+ # アプリケーション開発フロー
2
+
3
+ ## 概要
4
+
5
+ 本ドキュメントは、Claude(AI アシスタント)と Codex(実装エージェント)を活用した開発フローを定義します。計画・設計は Claude が担当し、実装は Codex に委譲することで、効率的かつ品質の高い開発を実現します。
6
+
7
+ ---
8
+
9
+ ## 開発フローの全体像
10
+
11
+ ```plantuml
12
+ @startuml
13
+ title 開発フロー
14
+
15
+ skinparam rectangle {
16
+ BackgroundColor<<claude>> LightBlue
17
+ BackgroundColor<<codex>> LightGreen
18
+ }
19
+
20
+ rectangle "1. 計画\n\n・要件分析\n・タスク分解\n・優先度決定" <<claude>> as plan
21
+ rectangle "2. 設計\n\n・API設計\n・UI設計\n・データ設計" <<claude>> as design
22
+ rectangle "3. 実装指示\n\n・コード実装\n・テスト作成\n・リファクタ" <<codex>> as impl
23
+ rectangle "4. 受入\n\n・設計レビュー\n・E2Eテスト\n・品質確認" <<claude>> as accept
24
+
25
+ plan --> design
26
+ design --> impl
27
+ impl --> accept
28
+
29
+ note bottom of plan : Claude
30
+ note bottom of design : Claude
31
+ note bottom of impl : Codex
32
+ note bottom of accept : Claude
33
+
34
+ @enduml
35
+ ```
36
+
37
+ ```plantuml
38
+ @startuml
39
+ title 開発フロー シーケンス図
40
+
41
+ actor ユーザー as user
42
+ participant Claude as claude
43
+ participant "Codex MCP" as codex
44
+ database コードベース as code
45
+
46
+ user -> claude : /dev US-103 開始
47
+ activate claude
48
+
49
+ == 計画フェーズ ==
50
+ claude -> code : イテレーション計画読み込み
51
+ claude -> code : 既存コード調査
52
+ claude -> claude : タスク分解・優先度決定
53
+
54
+ == 設計フェーズ ==
55
+ claude -> code : 既存パターン確認
56
+ claude -> claude : API/UI/データ設計
57
+ claude -> claude : Codex指示作成
58
+
59
+ == 実装フェーズ ==
60
+ claude -> codex : 実装指示(MCP)
61
+ activate codex
62
+ codex -> code : コード実装
63
+ codex -> code : ユニットテスト作成
64
+ codex -> codex : Lint/テスト実行
65
+ codex --> claude : 実装完了
66
+ deactivate codex
67
+
68
+ == 受入フェーズ ==
69
+ claude -> code : 設計レビュー
70
+ claude -> code : E2Eテスト作成
71
+ claude -> code : E2Eテスト実行
72
+ claude -> code : バグ修正(必要に応じて)
73
+ claude --> user : 完了報告
74
+
75
+ deactivate claude
76
+
77
+ @enduml
78
+ ```
79
+
80
+ ### 役割分担
81
+
82
+ | フェーズ | 担当 | 責務 |
83
+ |---------|------|------|
84
+ | 計画 | Claude | 要件分析、タスク分解、優先度決定 |
85
+ | 設計 | Claude | API 設計、UI 設計、データモデル設計 |
86
+ | 実装指示 | Codex | コード実装、ユニットテスト作成 |
87
+ | 受入 | Claude | 設計レビュー、E2E テスト作成・実行、品質確認 |
88
+
89
+ ---
90
+
91
+ ## フェーズ 1: 計画
92
+
93
+ ### 目的
94
+
95
+ イテレーション計画とユーザーストーリーに基づき、実装すべきタスクを明確化する。
96
+
97
+ ### 入力
98
+
99
+ - イテレーション計画(`docs/development/iteration_plan-*.md`)
100
+ - ユーザーストーリーと受入条件
101
+
102
+ ### 活動
103
+
104
+ 1. **要件分析**: ユーザーストーリーの受入条件を確認
105
+ 2. **既存コード調査**: 関連する既存実装を確認
106
+ 3. **タスク分解**: 実装タスクを細分化
107
+ 4. **優先度決定**: 依存関係を考慮してタスク順序を決定
108
+
109
+ ### 出力
110
+
111
+ - タスクリスト(TODO)
112
+ - 実装方針
113
+
114
+ ### 例: US-103 お知らせ管理
115
+
116
+ ```markdown
117
+ ## タスクリスト
118
+
119
+ 1. AuthContext に role と canManageAnnouncements を追加
120
+ 2. API クライアントに CRUD 関数を追加(create/update/delete)
121
+ 3. ConfirmDialog 汎用コンポーネント作成
122
+ 4. AnnouncementForm コンポーネント作成
123
+ 5. AnnouncementFormPage 作成(新規作成・編集兼用)
124
+ 6. App.tsx にルーティング追加
125
+ 7. AnnouncementsPage に新規作成ボタン追加
126
+ 8. AnnouncementDetailPage に編集・削除ボタン追加
127
+ 9. ユニットテスト作成
128
+ ```
129
+
130
+ ---
131
+
132
+ ## フェーズ 2: 設計
133
+
134
+ ### 目的
135
+
136
+ 実装前に詳細な設計を行い、Codex への指示内容を明確化する。
137
+
138
+ ### 入力
139
+
140
+ - タスクリスト
141
+ - 既存のアーキテクチャ・パターン
142
+
143
+ ### 活動
144
+
145
+ 1. **API 設計**: エンドポイント、リクエスト/レスポンス形式
146
+ 2. **データモデル設計**: 型定義、バリデーションルール
147
+ 3. **UI 設計**: コンポーネント構造、状態管理
148
+ 4. **既存パターン確認**: プロジェクトの既存実装に合わせる
149
+
150
+ ### 出力
151
+
152
+ - 詳細設計仕様
153
+ - Codex への実装指示
154
+
155
+ ### 例: AnnouncementForm 設計
156
+
157
+ ```typescript
158
+ // 設計仕様
159
+ type FormValues = {
160
+ title: string // 必須、最大200文字
161
+ content: string // 必須
162
+ category: AnnouncementCategory // GENERAL | IMPORTANT | EVENT | HR
163
+ publishedAt: string // datetime-local 形式
164
+ }
165
+
166
+ // バリデーション
167
+ - title: z.string().min(1).max(200)
168
+ - content: z.string().min(1)
169
+ - category: z.enum(['GENERAL', 'IMPORTANT', 'EVENT', 'HR'])
170
+ - publishedAt: z.string().min(1)
171
+
172
+ // コンポーネント構造
173
+ - AnnouncementForm
174
+ - Input (タイトル)
175
+ - TextArea (本文)
176
+ - Select (カテゴリ)
177
+ - DateTimeInput (公開日時)
178
+ - Button (キャンセル/保存)
179
+ ```
180
+
181
+ ---
182
+
183
+ ## フェーズ 3: 実装指示(Codex)
184
+
185
+ ### 目的
186
+
187
+ Codex MCP サーバーを通じて、設計に基づいた実装を委譲する。
188
+
189
+ ### Codex MCP 呼び出し方法
190
+
191
+ ```
192
+ mcp__codex__codex ツールを使用
193
+
194
+ パラメータ:
195
+ - prompt: 実装指示(詳細な要件を含む)
196
+ - sandbox: danger-full-access(workspace-write ではread-onlyエラーになることがある)
197
+ - approval-policy: never(自動承認)
198
+ - cwd: プロジェクトルート
199
+ ```
200
+
201
+ ### 指示サイズに関する注意
202
+
203
+ > **重要**: ユーザーストーリー単位など大きな単位で Codex に指示を出すと、処理が長時間化しレスポンスがなくなることがあります。
204
+
205
+ #### 推奨される指示の粒度
206
+
207
+ | 粒度 | 推奨度 | 説明 |
208
+ |------|--------|------|
209
+ | タスク単位(1-3 ファイル) | ✅ 推奨 | 1 つのコンポーネントや機能単位 |
210
+ | 機能単位(3-5 ファイル) | ⚠️ 注意 | 進捗確認を頻繁に行う |
211
+ | ユーザーストーリー単位 | ❌ 非推奨 | タスクに分割して実行 |
212
+
213
+ #### 大きなタスクの分割例
214
+
215
+ ```
216
+ ❌ 悪い例: ユーザーストーリー全体を一度に指示
217
+ 「US-103 お知らせ管理機能を全て実装してください」
218
+
219
+ ✅ 良い例: タスク単位で分割して指示
220
+ 1. 「AuthContext に role と canManageAnnouncements を追加」
221
+ 2. 「API クライアントに create/update/delete 関数を追加」
222
+ 3. 「ConfirmDialog コンポーネントを作成」
223
+ 4. 「AnnouncementForm コンポーネントを作成」
224
+ 5. ...
225
+ ```
226
+
227
+ #### レスポンスがない場合の対処
228
+
229
+ 1. `codex-reply` で進捗を確認
230
+ 2. 長時間応答がない場合はタスクを中断
231
+ 3. より小さな単位に分割して再実行
232
+
233
+ #### Codex が書き込みできない場合の対処(重要)
234
+
235
+ Codex が read-only 制限やファイルロック等で書き込みできなかった場合:
236
+
237
+ 1. **Claude が勝手に直接編集を進めてはいけない**
238
+ 2. ユーザーに状況を報告し、確認を待つ
239
+ 3. ユーザーの許可を得てから代替手段(Claude による直接編集等)を実行
240
+
241
+ ```
242
+ ❌ 悪い例:
243
+ Claude: 「Codex が read-only 制限で書き込みできませんでした。直接編集を行います。」
244
+ → 勝手に進めている
245
+
246
+ ✅ 良い例:
247
+ Claude: 「Codex が read-only 制限で書き込みできませんでした。
248
+ 以下の選択肢があります:
249
+ 1. Claude が直接編集を行う
250
+ 2. 環境の問題を解決してから Codex で再実行
251
+ どちらで進めますか?」
252
+ → ユーザーの確認を待っている
253
+ ```
254
+
255
+ ### 実装指示のベストプラクティス
256
+
257
+ 1. **明確な要件**: 何を実装するか具体的に記述
258
+ 2. **既存パターン参照**: 既存ファイルを参照先として指定
259
+ 3. **型定義の明示**: TypeScript の型を事前に定義
260
+ 4. **テスト要件**: テストも同時に作成させる
261
+ 5. **適切な粒度**: タスク単位(1-3 ファイル)で指示を分割
262
+
263
+ ### 例: Codex への実装指示
264
+
265
+ ```
266
+ prompt: |
267
+ お知らせ管理機能を実装してください。
268
+
269
+ ## タスク
270
+ 1. AuthContext に role プロパティと canManageAnnouncements を追加
271
+ 2. API クライアント(src/lib/api.ts)に以下を追加:
272
+ - createAnnouncement(input: AnnouncementCreateInput)
273
+ - updateAnnouncement(id, input)
274
+ - deleteAnnouncement(id)
275
+ 3. ConfirmDialog コンポーネントを作成(既存の Button を参考に)
276
+ 4. AnnouncementForm コンポーネントを作成(React Hook Form + Zod)
277
+ 5. AnnouncementFormPage を作成(/announcements/new と /announcements/:id/edit)
278
+ 6. App.tsx にルーティングを追加
279
+
280
+ ## 既存パターン参照
281
+ - API クライアント: src/lib/api.ts
282
+ - フォームコンポーネント: src/components/ui/Input.tsx
283
+ - ページコンポーネント: src/pages/AnnouncementsPage.tsx
284
+
285
+ ## 完了条件
286
+ - ESLint エラーなし
287
+ - 既存テストがパス
288
+
289
+ sandbox: workspace-write
290
+ approval-policy: never
291
+ ```
292
+
293
+ ### Codex 実行中の確認
294
+
295
+ - Codex の進捗は `codex-reply` ツールで確認
296
+ - 問題発生時は追加指示で修正を依頼
297
+
298
+ ---
299
+
300
+ ## フェーズ 4: 受入
301
+
302
+ ### 目的
303
+
304
+ 実装された機能が設計通りに動作することを確認する。
305
+
306
+ ### 活動
307
+
308
+ 1. **設計レビュー**: 実装が設計仕様に準拠しているか確認
309
+ 2. **コード品質確認**: ESLint、テストカバレッジの確認
310
+ 3. **E2E テスト作成**: 成功基準に基づくテストを作成
311
+ 4. **E2E テスト実行**: 機能が正しく動作することを検証
312
+ 5. **バグ修正**: 問題があれば修正
313
+
314
+ ### E2E テスト作成のポイント
315
+
316
+ ```typescript
317
+ // 成功基準に対応するテストケース
318
+ test.describe('お知らせ管理機能(管理者)', () => {
319
+ test('管理者がお知らせを新規作成できる', async ({ page }) => {
320
+ // 1. 新規作成ボタンをクリック
321
+ // 2. フォームに入力
322
+ // 3. 保存
323
+ // 4. 詳細ページで確認
324
+ })
325
+
326
+ test('管理者がお知らせを編集できる', async ({ page }) => {
327
+ // ...
328
+ })
329
+
330
+ test('管理者がお知らせを削除できる(確認ダイアログあり)', async ({ page }) => {
331
+ // ...
332
+ })
333
+ })
334
+ ```
335
+
336
+ ### 受入基準
337
+
338
+ - [ ] すべての受入条件が満たされている
339
+ - [ ] E2E テストがすべてパス
340
+ - [ ] ESLint エラーがない
341
+ - [ ] 既存テストが壊れていない
342
+
343
+ ---
344
+
345
+ ## 実践例: US-103 お知らせ管理
346
+
347
+ ```plantuml
348
+ @startuml
349
+ title US-103 お知らせ管理 開発フロー
350
+
351
+ |Claude|
352
+ start
353
+ :イテレーション計画読み込み;
354
+ :受入条件確認;
355
+ :既存コード調査;
356
+ :タスクリスト作成;
357
+
358
+ |Claude|
359
+ :API設計確認;
360
+ :フロントエンド設計;
361
+ :Codex指示作成;
362
+
363
+ |Codex|
364
+ :AuthContext拡張;
365
+ :APIクライアント追加;
366
+ :ConfirmDialog作成;
367
+ :AnnouncementForm作成;
368
+ :AnnouncementFormPage作成;
369
+ :ルーティング追加;
370
+ :既存ページ修正;
371
+ :ユニットテスト実行;
372
+
373
+ |Claude|
374
+ :設計レビュー;
375
+ :E2Eテスト作成;
376
+ :E2Eテスト実行;
377
+
378
+ if (テスト失敗?) then (yes)
379
+ :バグ修正;
380
+ :再テスト;
381
+ else (no)
382
+ endif
383
+
384
+ :完了報告;
385
+ stop
386
+
387
+ @enduml
388
+ ```
389
+
390
+ ### 1. 計画フェーズ
391
+
392
+ ```
393
+ ユーザー: /dev iteration3 US-103: お知らせ管理 開始
394
+ 計画・設計は claude 実装は codex が担当する
395
+
396
+ Claude:
397
+ 1. イテレーション計画を読み込み
398
+ 2. 受入条件を確認
399
+ 3. 既存コードを調査(API、フロントエンド構造)
400
+ 4. タスクリストを作成
401
+ ```
402
+
403
+ ### 2. 設計フェーズ
404
+
405
+ ```
406
+ Claude:
407
+ 1. API エンドポイント設計を確認(既に実装済み)
408
+ 2. フロントエンドコンポーネント設計
409
+ - AuthContext の拡張
410
+ - AnnouncementForm コンポーネント
411
+ - AnnouncementFormPage
412
+ - 既存ページの修正
413
+ 3. Codex への詳細指示を作成
414
+ ```
415
+
416
+ ### 3. 実装フェーズ
417
+
418
+ ```
419
+ Claude → Codex MCP:
420
+ prompt: "お知らせ管理機能を実装..."
421
+ sandbox: workspace-write
422
+ approval-policy: never
423
+
424
+ Codex:
425
+ 1. AuthContext に role, canManageAnnouncements 追加
426
+ 2. API クライアントに CRUD 関数追加
427
+ 3. ConfirmDialog コンポーネント作成
428
+ 4. AnnouncementForm コンポーネント作成
429
+ 5. AnnouncementFormPage 作成
430
+ 6. App.tsx ルーティング追加
431
+ 7. AnnouncementsPage, AnnouncementDetailPage 修正
432
+ 8. テスト作成・実行
433
+ ```
434
+
435
+ ### 4. 受入フェーズ
436
+
437
+ ```
438
+ Claude:
439
+ 1. 設計レビュー
440
+ - 実装が設計に準拠しているか確認
441
+ - コード品質確認
442
+
443
+ 2. E2E テスト作成
444
+ - announcements.spec.ts に管理機能テストを追加
445
+
446
+ 3. E2E テスト実行
447
+ - npm run test:e2e -- --grep "お知らせ"
448
+
449
+ 4. バグ修正
450
+ - publishedAt の ISO 8601 形式変換を追加
451
+ - テストの待機処理を追加
452
+
453
+ 5. 最終確認
454
+ - 15 tests passed
455
+ ```
456
+
457
+ ---
458
+
459
+ ## コマンドリファレンス
460
+
461
+ ### 開発開始
462
+
463
+ ```bash
464
+ # イテレーションのユーザーストーリー開始
465
+ /dev iteration3 US-103: お知らせ管理 開始
466
+ ```
467
+
468
+ ### Codex MCP 呼び出し
469
+
470
+ ```
471
+ mcp__codex__codex
472
+ prompt: "実装指示..."
473
+ sandbox: workspace-write
474
+ approval-policy: never
475
+ cwd: /path/to/project
476
+ ```
477
+
478
+ ### テスト実行
479
+
480
+ ```bash
481
+ # ユニットテスト
482
+ npm run test
483
+
484
+ # E2E テスト(全体)
485
+ npm run test:e2e
486
+
487
+ # E2E テスト(特定機能)
488
+ npm run test:e2e -- --grep "お知らせ"
489
+ ```
490
+
491
+ ### 品質チェック
492
+
493
+ ```bash
494
+ # Lint + Format + Test
495
+ npm run check
496
+ ```
497
+
498
+ ---
499
+
500
+ ## ベストプラクティス
501
+
502
+ ### 計画・設計
503
+
504
+ 1. **既存パターンを尊重**: プロジェクトの既存実装に合わせる
505
+ 2. **受入条件を明確に**: テスト可能な条件を定義する
506
+ 3. **依存関係を考慮**: タスクの実行順序を適切に設定
507
+
508
+ ### 実装指示
509
+
510
+ 1. **具体的な指示**: 曖昧さを排除した詳細な要件
511
+ 2. **参照ファイルの明示**: 既存のパターンを参照先として指定
512
+ 3. **完了条件の明示**: 何をもって完了とするか明確に
513
+
514
+ ### 受入
515
+
516
+ 1. **設計レビュー先行**: テスト前にコードを確認
517
+ 2. **E2E テストで検証**: 成功基準に対応するテストを作成
518
+ 3. **継続的なフィードバック**: 問題があれば即座に修正
519
+
520
+ ---
521
+
522
+ ## 関連ドキュメント
523
+
524
+ - [開発環境セットアップ](dev_app_instruction.md)
525
+ - [Codex CLI MCP サーバー設定](codex_instruction.md)
526
+ - [イテレーション計画](../development/iteration_plan-3.md)
527
+ - [コーディングとテストガイド](../reference/コーディングとテストガイド.md)
528
+
529
+ ---
530
+
531
+ **作成日**: 2026-01-19
532
+ **更新日**: 2026-01-19
@@ -33,7 +33,7 @@ state 配置 #lightblue
33
33
 
34
34
  アプリケーション開発は、アジャイル開発手法(XP)に基づいて進めます。
35
35
 
36
- 詳細は [エクストリームプログラミング](エクストリームプログラミング) を参照。
36
+ 詳細は [エクストリームプログラミング](エクストリームプログラミング.md) を参照。
37
37
 
38
38
  ## 分析
39
39
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k2works/claude-code-booster",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "AI Agent Development Support Tool",
5
5
  "main": "main.js",
6
6
  "bin": {