@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.
- package/lib/assets/.claude/commands/dev.md +147 -13
- package/lib/assets/.claude/commands/plan-github.md +138 -26
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +532 -0
- package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
74
|
-
|
|
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
|
-
- `--
|
|
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 --
|
|
34
|
-
「release_plan.md と GitHub
|
|
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
|
|
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
|
|
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 --
|
|
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
|
-
|
|
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 --
|
|
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
|
-
- 初回は `--
|
|
276
|
+
- 初回は `--sync` で差異確認してから同期
|
|
183
277
|
- 大規模な変更前にはバックアップを推奨
|
|
184
278
|
|
|
185
279
|
### ベストプラクティス
|
|
186
280
|
|
|
187
281
|
1. **初回同期**: `/plan-github` で全体を一括作成
|
|
188
|
-
2. **計画更新時**: `/plan-github --
|
|
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
|
-
|
|
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
|