@einja/dev-cli 0.1.10 → 0.1.12

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.
Files changed (30) hide show
  1. package/dist/lib/file-system.js +1 -1
  2. package/dist/lib/file-system.js.map +1 -1
  3. package/package.json +1 -2
  4. package/scaffolds/cli/preset.yaml +110 -0
  5. package/scaffolds/example/README.md +35 -0
  6. package/scaffolds/example/specs/issues/issue999-example-task/design.md +879 -0
  7. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/README.md +150 -0
  8. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-1.md +268 -0
  9. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-2.md +179 -0
  10. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-3.md +392 -0
  11. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/evidence/.gitkeep +0 -0
  12. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase2/2-1.md +459 -0
  13. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase2/evidence/.gitkeep +0 -0
  14. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/scenarios.md +125 -0
  15. package/scaffolds/example/specs/issues/issue999-example-task/requirements.md +494 -0
  16. package/scaffolds/example/specs/issues/issue999-example-task/tasks.md +212 -0
  17. package/scaffolds/instructions/deployment-setup.md +458 -0
  18. package/scaffolds/instructions/environment-setup.md +509 -0
  19. package/scaffolds/instructions/local-server-environment-and-worktree.md +539 -0
  20. package/scaffolds/instructions/task-execute.md +649 -0
  21. package/scaffolds/instructions/task-vibe-kanban-loop.md +495 -0
  22. package/scaffolds/memory/archive/.gitkeep +0 -0
  23. package/scaffolds/memory/decisions.md +26 -0
  24. package/scaffolds/memory/patterns.md +28 -0
  25. package/scaffolds/CLAUDE.md.template +0 -386
  26. /package/{templates → scaffolds/templates}/README.md +0 -0
  27. /package/{templates → scaffolds/templates}/design-simple.md.template +0 -0
  28. /package/{templates → scaffolds/templates}/design.md.template +0 -0
  29. /package/{templates → scaffolds/templates}/qa-test.md.template +0 -0
  30. /package/{templates → scaffolds/templates}/requirements.md.template +0 -0
@@ -0,0 +1,392 @@
1
+ # Phase 1-3: フロントエンド基盤 QAテスト結果
2
+
3
+ ## テスト対象タスク
4
+ - **タスクID**: 1.3.1~1.3.8
5
+ - **タスク名**: フロントエンド基盤実装
6
+ - **実装日**: YYYY-MM-DD
7
+ - **テスター**: TBD
8
+ - **最終更新**: YYYY-MM-DD HH:MM
9
+
10
+ ## テストサマリー
11
+ | ステータス | 件数 |
12
+ |----------|-----|
13
+ | ✅ PASS | 0 |
14
+ | ❌ FAIL | 0 |
15
+ | ⚠️ PARTIAL | 0 |
16
+ | 🔄 未実施 | 8 |
17
+
18
+ ---
19
+
20
+ ## 必須自動テスト結果
21
+
22
+ ### 実行コマンド
23
+ ```bash
24
+ # 1. ユニットテスト
25
+ pnpm test
26
+
27
+ # 2. E2Eテスト(該当する場合)
28
+ pnpm test:e2e
29
+
30
+ # 3. Lintチェック
31
+ pnpm lint
32
+
33
+ # 4. ビルドチェック
34
+ pnpm build
35
+
36
+ # 5. 型チェック(TypeScript)
37
+ pnpm typecheck
38
+ ```
39
+
40
+ ### 結果
41
+ | テスト項目 | ステータス | 備考 |
42
+ |----------|----------|------|
43
+ | ユニットテスト | 🔄 | - |
44
+ | E2Eテスト | 🔄 | - |
45
+ | Lintチェック | 🔄 | - |
46
+ | ビルドチェック | 🔄 | - |
47
+ | 型チェック | 🔄 | - |
48
+
49
+ **重要**: 上記のいずれか1つでも失敗した場合、全体ステータスは**❌ FAIL**となります。
50
+
51
+ ---
52
+
53
+ ## タスク1.3.1: 認証ページルーティング設定
54
+
55
+ ### 受け入れ条件
56
+ - AC3.1: Given ブラウザがある When /auth/loginにアクセス Then ログイン画面が表示される
57
+ - AC3.2: Given ブラウザがある When /auth/verify?token=xxxにアクセス Then トークン検証画面が表示される
58
+ - AC3.3: Given ブラウザがある When /auth/logoutにアクセス Then ログアウト処理が実行される
59
+ - AC3.4: Given ブラウザがある When 存在しないルートにアクセス Then 404エラー画面が表示される
60
+
61
+ ### テストシナリオ
62
+
63
+ #### ルーティングテスト
64
+
65
+ | No | URL | 期待される画面 | 結果 | 備考 |
66
+ |----|-----|-------------|------|------|
67
+ | 1 | /auth/login | ログイン画面が表示される | - | - |
68
+ | 2 | /auth/verify?token=xxx | トークン検証画面が表示される | - | - |
69
+ | 3 | /auth/logout | ログアウト処理が実行される | - | - |
70
+ | 4 | /auth/invalid | 404または適切なエラー画面が表示される | - | - |
71
+
72
+ ### 全体ステータス: 🔄 未実施
73
+
74
+ #### 主な問題点
75
+ - (実施後に記載)
76
+
77
+ #### 対応策
78
+ - (実施後に記載)
79
+
80
+ #### エビデンス
81
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-1-routing.png`
82
+
83
+ ---
84
+
85
+ ## タスク1.3.2: ログイン画面コンポーネント実装
86
+
87
+ ### 受け入れ条件
88
+ - AC3.5: Given ログイン画面がある When 画面を表示 Then メールアドレス入力欄が表示される
89
+ - AC3.6: Given ログイン画面がある When 画面を表示 Then 送信ボタンが表示される
90
+
91
+ ### テストシナリオ
92
+
93
+ #### QAテスト(Playwright)
94
+
95
+ | No | 手順 | 確認項目 | 期待値 | 結果 | 備考 |
96
+ |----|------|---------|--------|------|------|
97
+ | 1 | ログイン画面に移動 (http://localhost:3000/auth/login) | URLが正しい | /auth/login | - | - |
98
+ | 2 | スナップショット取得 | メールアドレス入力欄が表示される | input[data-testid="email-input"]が存在 | - | - |
99
+ | 3 | - | 送信ボタンが表示される | button[data-testid="submit-button"]が存在 | - | - |
100
+ | 4 | - | ページタイトルが正しい | 「ログイン」または「Sign In」が表示 | - | - |
101
+ | 5 | メールアドレス入力欄をクリック | フォーカス状態になる | 枠線色が変化する | - | - |
102
+ | 6 | スナップショット取得 | フォーカス状態を確認 | 視覚的にフォーカス状態が分かる | - | - |
103
+
104
+ ### 全体ステータス: 🔄 未実施
105
+
106
+ #### 主な問題点
107
+ - (実施後に記載)
108
+
109
+ #### 対応策
110
+ - (実施後に記載)
111
+
112
+ #### エビデンス
113
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-2-login.png`
114
+
115
+ ---
116
+
117
+ ## タスク1.3.3: メール送信確認画面コンポーネント実装
118
+
119
+ ### 受け入れ条件
120
+ - AC3.7: Given メール送信後 When 確認画面を表示 Then 送信先メールアドレスが表示される
121
+ - AC3.8: Given メール送信後 When 確認画面を表示 Then 再送信ボタンとカウントダウンが表示される
122
+
123
+ ### テストシナリオ
124
+
125
+ #### QAテスト(Playwright)
126
+
127
+ | No | 手順 | 確認項目 | 期待値 | 結果 | 備考 |
128
+ |----|------|---------|--------|------|------|
129
+ | 1 | ログイン画面に移動 | - | - | - | - |
130
+ | 2 | メールアドレス入力: test@example.com | - | - | - | - |
131
+ | 3 | 送信ボタンをクリック | - | - | - | - |
132
+ | 4 | 3秒待機 | 画面遷移完了 | - | - | - |
133
+ | 5 | スナップショット取得 | URLが変更された | /auth/verify または /auth/email-sent | - | - |
134
+ | 6 | - | 送信先メールアドレスが表示される | test@example.comが表示 | - | - |
135
+ | 7 | - | 再送信ボタンが存在 | button[data-testid="resend-button"]が存在 | - | - |
136
+ | 8 | - | カウントダウン表示が初期化される | 「再送信 (00:60)」または「59」「58」が表示 | - | - |
137
+ | 9 | - | 「別のアドレスを試す」リンクが表示される | リンク要素が存在 | - | - |
138
+ | 10 | 5秒待機 | カウントダウンが減少している | 「55」「54」等、60より小さい数値 | - | - |
139
+ | 11 | - | 再送信ボタンが無効化されている | ボタンがクリック不可 | - | - |
140
+
141
+ ### 全体ステータス: 🔄 未実施
142
+
143
+ #### 主な問題点
144
+ - (実施後に記載)
145
+
146
+ #### 対応策
147
+ - (実施後に記載)
148
+
149
+ #### エビデンス
150
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-3-email-sent.png`
151
+
152
+ ---
153
+
154
+ ## タスク1.3.4: バリデーション機能実装
155
+
156
+ ### 受け入れ条件
157
+ - AC3.9: Given ログイン画面がある When 空欄で送信 Then エラーメッセージが表示される
158
+ - AC3.10: Given ログイン画面がある When 不正形式で送信 Then エラーメッセージが表示される
159
+
160
+ ### テストシナリオ
161
+
162
+ #### QAテスト(Playwright)
163
+
164
+ | No | 手順 | 確認項目 | 期待値 | 結果 | 備考 |
165
+ |----|------|---------|--------|------|------|
166
+ | 1 | ログイン画面に移動 | - | - | - | 空欄バリデーション |
167
+ | 2 | 空欄のまま送信ボタンをクリック | エラーメッセージが表示される | 「メールアドレスを入力してください」 | - | - |
168
+ | 3 | スナップショット取得 | フィールドが赤枠になる | 視覚的にエラー状態が分かる | - | - |
169
+ | 4 | - | 画面遷移しない | 同じページに留まる | - | - |
170
+ | 5 | ページをリロード | - | - | - | 不正形式バリデーション |
171
+ | 6 | メールアドレス入力: test@ | - | - | - | - |
172
+ | 7 | 送信ボタンをクリック | エラーメッセージが表示される | 「有効なメールアドレスを入力してください」 | - | - |
173
+ | 8 | スナップショット取得 | フィールドが赤枠になる | 視覚的にエラー状態が分かる | - | - |
174
+ | 9 | ページをリロード | - | - | - | 有効なメール形式 |
175
+ | 10 | メールアドレス入力: test@example.com | - | - | - | - |
176
+ | 11 | 送信ボタンをクリック | エラーメッセージが表示されない | エラーなし | - | - |
177
+ | 12 | 2秒待機 | 画面遷移する | メール送信確認画面へ | - | - |
178
+
179
+ ### 全体ステータス: 🔄 未実施
180
+
181
+ #### 主な問題点
182
+ - (実施後に記載)
183
+
184
+ #### 対応策
185
+ - (実施後に記載)
186
+
187
+ #### エビデンス
188
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-4-validation.png`
189
+
190
+ ---
191
+
192
+ ## タスク1.3.5: ローディング状態管理実装
193
+
194
+ ### 受け入れ条件
195
+ - AC3.11: Given 送信ボタンをクリック When API呼び出し中 Then ローディングスピナーが表示される
196
+ - AC3.12: Given API呼び出し中 When 3秒以上経過 Then 追加メッセージが表示される
197
+
198
+ ### テストシナリオ
199
+
200
+ #### QAテスト(Playwright)
201
+
202
+ | No | 手順 | 確認項目 | 期待値 | 結果 | 備考 |
203
+ |----|------|---------|--------|------|------|
204
+ | 1 | ログイン画面に移動 | - | - | - | ローディング状態(短時間) |
205
+ | 2 | メールアドレス入力: test@example.com | - | - | - | - |
206
+ | 3 | 送信ボタンをクリック | 送信ボタンが無効化される | ボタンがクリック不可 | - | - |
207
+ | 4 | 即座にスナップショット取得 | ローディングスピナーが表示される | スピナーアイコンが表示 | - | - |
208
+ | 5 | - | 2秒以内はスピナーのみ表示 | 追加メッセージなし | - | - |
209
+ | 6 | ページをリロード | - | - | - | ローディング状態(長時間)※API遅延モード有効化 |
210
+ | 7 | メールアドレス入力: test@example.com | - | - | - | - |
211
+ | 8 | 送信ボタンをクリック | - | - | - | - |
212
+ | 9 | 3秒待機 | 追加メッセージが表示される | 「メールを送信しています...」等が表示 | - | - |
213
+ | 10 | スナップショット取得 | スピナーも表示継続 | スピナー表示中 | - | - |
214
+
215
+ ### 全体ステータス: 🔄 未実施
216
+
217
+ #### 主な問題点
218
+ - (実施後に記載)
219
+
220
+ #### 対応策
221
+ - (実施後に記載)
222
+
223
+ #### エビデンス
224
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-5-loading.png`
225
+
226
+ ---
227
+
228
+ ## タスク1.3.6: 認証状態管理Hook実装
229
+
230
+ ### 受け入れ条件
231
+ - AC3.13: Given メールアドレスを入力 When 送信 Then ローカルストレージに保存される
232
+ - AC3.14: Given ローカルストレージにデータがある When ページリロード Then 値が復元される
233
+
234
+ ### テストシナリオ
235
+
236
+ #### QAテスト(ブラウザ開発者ツール)
237
+
238
+ | No | 手順 | 確認項目 | 期待値 | 結果 | 備考 |
239
+ |----|------|---------|--------|------|------|
240
+ | 1 | ログイン画面に移動 | - | - | - | - |
241
+ | 2 | 開発者ツールを開く(F12) | - | - | - | - |
242
+ | 3 | Applicationタブ → Local Storageを開く | ローカルストレージが空 | データなし | - | - |
243
+ | 4 | メールアドレス入力: test@example.com | - | - | - | - |
244
+ | 5 | 送信ボタンをクリック | - | - | - | - |
245
+ | 6 | Local Storageを再確認 | メールアドレスが保存される | test@example.comが保存されている | - | - |
246
+ | 7 | ページをリロード | - | - | - | - |
247
+ | 8 | メールアドレス入力欄を確認 | 保存された値が復元される | test@example.comが入力済み | - | - |
248
+
249
+ ### 全体ステータス: 🔄 未実施
250
+
251
+ #### 主な問題点
252
+ - (実施後に記載)
253
+
254
+ #### 対応策
255
+ - (実施後に記載)
256
+
257
+ #### エビデンス
258
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-6-localstorage.png`
259
+
260
+ ---
261
+
262
+ ## タスク1.3.7: UIインタラクションテスト作成・実行
263
+
264
+ ### 受け入れ条件
265
+ - AC3.15: Given ログイン画面がある When UIインタラクションテスト Then 全テストが通る
266
+ - AC3.16: Given メール送信確認画面がある When UIインタラクションテスト Then 全テストが通る
267
+
268
+ ### テストシナリオ
269
+
270
+ #### ログイン画面のインタラクションテスト
271
+
272
+ | No | テストシナリオ | 操作 | 期待される反応 | 結果 | 備考 |
273
+ |----|--------------|------|-------------|------|------|
274
+ | 1 | フィールドフォーカス | メールアドレスフィールドをクリック | 枠線の色が変化(フォーカス状態) | - | - |
275
+ | 2 | フィールドフォーカスアウト | フィールド外をクリック | 枠線が通常状態に戻る | - | - |
276
+ | 3 | 空欄バリデーション | 空欄のまま送信ボタンをクリック | フィールド下に「メールアドレスを入力してください」エラー表示、フィールド赤枠 | - | - |
277
+ | 4 | 形式バリデーション(不完全) | "test@"を入力して送信 | フィールド下に「有効なメールアドレスを入力してください」エラー表示 | - | - |
278
+ | 5 | 形式バリデーション(特殊文字なし) | "testexample.com"を入力して送信 | フィールド下に「有効なメールアドレスを入力してください」エラー表示 | - | - |
279
+ | 6 | 送信ボタンクリック(有効なメール) | "test@example.com"を入力して送信 | ボタンが無効化され、ローディングスピナー表示 | - | - |
280
+ | 7 | ローディング状態(短時間) | 送信後2秒以内 | ボタン内スピナーのみ表示 | - | - |
281
+ | 8 | ローディング状態(長時間) | 送信後3秒以上経過 | 追加メッセージ「メールを送信しています...」表示 | - | - |
282
+ | 9 | 送信成功 | API応答成功 | メール送信確認画面に遷移 | - | - |
283
+ | 10 | エラー表示の持続性 | エラー表示後、ページ内をクリック | エラーメッセージが自動消去されず表示継続 | - | - |
284
+
285
+ #### メール送信確認画面のインタラクションテスト
286
+
287
+ | No | テストシナリオ | 操作 | 期待される反応 | 結果 | 備考 |
288
+ |----|--------------|------|-------------|------|------|
289
+ | 1 | 初期表示 | 画面表示 | 送信先メールアドレス表示、カウントダウン「再送信 (00:60)」表示 | - | - |
290
+ | 2 | カウントダウン動作 | 5秒待機 | カウントダウンが「再送信 (00:55)」に減少 | - | - |
291
+ | 3 | 再送信ボタン無効状態 | カウントダウン中にボタンをクリック | ボタンが反応しない(無効化状態) | - | - |
292
+ | 4 | カウントダウン完了 | 60秒待機 | 再送信ボタン有効化、「再送信」のみ表示 | - | - |
293
+ | 5 | 再送信ボタンクリック | 有効化後にボタンをクリック | ボタン無効化、ローディングスピナー表示 | - | - |
294
+ | 6 | 再送信成功 | API応答成功 | カウントダウンが60秒にリセット、再度無効化 | - | - |
295
+ | 7 | 別のアドレスを試す | リンクをクリック | ログイン画面に遷移 | - | - |
296
+
297
+ ### 全体ステータス: 🔄 未実施
298
+
299
+ #### 主な問題点
300
+ - (実施後に記載)
301
+
302
+ #### 対応策
303
+ - (実施後に記載)
304
+
305
+ #### エビデンス
306
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-7-interaction.png`
307
+
308
+ ---
309
+
310
+ ## タスク1.3.8: 要件3シナリオテスト作成・実行
311
+
312
+ ### 受け入れ条件
313
+ - AC3.17: Given テスト環境がある When E2Eテスト全体フロー Then テストが通る
314
+ - AC3.18: Given テスト環境がある When エラーケーステスト Then テストが通る
315
+
316
+ ### テストシナリオ
317
+
318
+ #### E2Eテスト全体フロー
319
+
320
+ | No | テストシナリオ | 期待される結果 | 結果 | 備考 |
321
+ |----|-------------|-------------|------|------|
322
+ | 1 | ログイン画面にアクセス | 画面が正常に表示される | - | - |
323
+ | 2 | 有効なメールアドレスを入力 | バリデーションエラーなし | - | - |
324
+ | 3 | 送信ボタンをクリック | API呼び出しが実行される | - | - |
325
+ | 4 | API呼び出し成功 | メール送信確認画面に遷移 | - | - |
326
+ | 5 | 送信先メールアドレスが表示される | 入力したメールアドレスが表示 | - | - |
327
+ | 6 | 60秒待機 | 再送信ボタンが有効化される | - | - |
328
+ | 7 | 再送信ボタンをクリック | API呼び出しが実行される | - | - |
329
+ | 8 | 再送信成功 | カウントダウンがリセットされる | - | - |
330
+
331
+ #### エラーケーステスト
332
+
333
+ | No | テストシナリオ | 期待される結果 | 結果 | 備考 |
334
+ |----|-------------|-------------|------|------|
335
+ | 1 | 空欄で送信 | バリデーションエラー表示 | - | - |
336
+ | 2 | 不正形式で送信 | バリデーションエラー表示 | - | - |
337
+ | 3 | API呼び出し失敗 | エラーメッセージ表示 | - | - |
338
+ | 4 | ネットワークエラー | 適切なエラー表示 | - | - |
339
+
340
+ ### 全体ステータス: 🔄 未実施
341
+
342
+ #### 主な問題点
343
+ - (実施後に記載)
344
+
345
+ #### 対応策
346
+ - (実施後に記載)
347
+
348
+ #### エビデンス
349
+ - スクリーンショット: `qa-tests/phase1/evidence/1-3-8-e2e.png`
350
+
351
+ ---
352
+
353
+ ## 統合テスト結果サマリー
354
+
355
+ ### フェーズ1-3全体結果
356
+ - **全体ステータス**: 🔄 未実施
357
+ - **完了タスク**: 0/8
358
+ - **テスト合格率**: 0% (0/0)
359
+
360
+ ### 修正が必要な項目
361
+ - (実施後に記載)
362
+
363
+ ### 次フェーズへの引き継ぎ事項
364
+ - フロントエンド基盤が正常に動作していること
365
+ - 全UIコンポーネントが実装済みであること
366
+ - バリデーション機能が正常に動作していること
367
+
368
+ ### 改善提案
369
+ - (実施後に記載)
370
+
371
+ ---
372
+
373
+ ## 報告と対応
374
+
375
+ ### 失敗原因分類
376
+ <!-- 該当する分類にチェック -->
377
+ - [ ] **A: 実装ミス** → task-executerへ差し戻し
378
+ - [ ] **B: 要件齟齬** → requirements.md修正 → task-executerへ差し戻し
379
+ - [ ] **C: 設計不備** → design.md修正 → task-executerへ差し戻し
380
+ - [ ] **D: 環境問題** → qa再実行
381
+
382
+ ### task-executerへの差し戻し(該当する場合)
383
+ 以下の項目について修正が必要:
384
+ - (実施後に記載)
385
+
386
+ ### 修正優先度
387
+ - **即座対応**: (実施後に記載)
388
+ - **1週間以内**: (実施後に記載)
389
+ - **2週間以内**: (実施後に記載)
390
+
391
+ ### 回避策(該当する場合)
392
+ - (実施後に記載)