@aramassa/ai-rules 0.9.5 → 0.9.7

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.
@@ -0,0 +1,438 @@
1
+ ---
2
+ type: prompt
3
+ name: fix-implementation
4
+ category: workflow
5
+ focus: implementation-completion
6
+ description: "実装完了後のワークフローを自動化。e2eテスト実行、PR本文更新、Checksへの登録を効率的に実施。"
7
+ agent: agent
8
+ ---
9
+ # prompt fix-implementation ワークフロー
10
+
11
+ ## 概要
12
+
13
+ 実装が完了したら、この prompt を使用して e2e テストの実行、PR 本文への情報追記、Checks の登録を一括で実施します。実装完了後の定型的な品質保証プロセスを効率化します。
14
+
15
+ ## 目的
16
+
17
+ 実装完了後の以下のタスクを自動化します:
18
+
19
+ - e2e テストの実行と結果確認
20
+ - PR 本文への実装情報の追記
21
+ - e2e テスト実行 Checks の PR への登録
22
+ - 品質保証プロセスの標準化
23
+
24
+ ## 前提条件
25
+
26
+ - 実装が完了している(コードの変更が commit されている)
27
+ - PR が作成されている
28
+ - `docs-ai/e2e-test/` に該当機能の e2e テストドキュメントが存在する
29
+ - gh CLI がインストール・認証されている
30
+
31
+ ## ワークフロー
32
+
33
+ ### Step 1: 現状確認
34
+
35
+ ```bash
36
+ # PR番号を確認
37
+ PR_NUMBER=$(gh pr view --json number -q '.number')
38
+ echo "PR Number: $PR_NUMBER"
39
+
40
+ # 現在のブランチを確認
41
+ git branch --show-current
42
+
43
+ # 実装の変更ファイルを確認
44
+ git --no-pager diff --name-only origin/main...HEAD
45
+ ```
46
+
47
+ **確認ポイント**:
48
+ - [ ] PR が存在し、番号が取得できている
49
+ - [ ] 実装ブランチにいる
50
+ - [ ] 変更ファイル一覧が意図した内容と一致している
51
+
52
+ ### Step 2: 該当する e2e テストドキュメントの特定
53
+
54
+ `docs-ai/e2e-test/` ディレクトリから、実装した機能に関連する e2e テストドキュメントを探します。
55
+
56
+ ```bash
57
+ # e2e テストドキュメント一覧を表示
58
+ ls -la docs-ai/e2e-test/
59
+
60
+ # 関連するドキュメントを確認(例: presets関連の場合)
61
+ cat docs-ai/e2e-test/presets-command-e2e.md
62
+ ```
63
+
64
+ **e2e テストドキュメントの構造**:
65
+ - 各ドキュメントは機能ごとに分かれている
66
+ - `[機能名]-[スコープ]-e2e.md` の命名規則
67
+ - コマンドはコピペでそのまま実行可能
68
+
69
+ ### Step 3: e2e テストの実行
70
+
71
+ 該当する e2e テストドキュメントに記載されたコマンドを順次実行します。
72
+
73
+ ```bash
74
+ # プロジェクトルートに移動
75
+ cd /path/to/project
76
+
77
+ # 依存関係をインストール(必要に応じて)
78
+ npm install
79
+
80
+ # プロジェクトをビルド
81
+ npm run build
82
+
83
+ # e2e テストドキュメントに記載されたコマンドを実行
84
+ # 例: CLIコマンドの動作確認
85
+ ./dist/cli.js [コマンド] [オプション]
86
+
87
+ # 結果を確認(成功の場合 ✓ マーク、失敗の場合 ✗ マーク)
88
+ ```
89
+
90
+ **確認ポイント**:
91
+ - [ ] 全ての e2e テストコマンドが成功している
92
+ - [ ] 期待される出力が得られている
93
+ - [ ] エラーが発生していない
94
+
95
+ ### Step 4: PR 本文への情報追記
96
+
97
+ 実装完了後、PR の本文に以下の情報を **追記** します。
98
+
99
+ **追記する内容**:
100
+ 1. **実装した内容の概要** - 何を実装したか
101
+ 2. **テストや注意事項** - テスト方法や注意すべき点
102
+ 3. **想定される本番影響** - 本番環境への影響評価
103
+
104
+ ```bash
105
+ # 現在のPR本文を取得
106
+ CURRENT_BODY=$(gh pr view --json body -q '.body')
107
+
108
+ # 追記する内容を作成
109
+ APPEND_CONTENT="
110
+
111
+ ---
112
+
113
+ ## 実装完了レポート
114
+
115
+ ### 実装した内容の概要
116
+
117
+ - [実装内容1]
118
+ - [実装内容2]
119
+ - [実装内容3]
120
+
121
+ ### テストや注意事項
122
+
123
+ #### 実行したテスト
124
+ - [ ] ユニットテスト: \`npm test\`
125
+ - [ ] e2e テスト: \`docs-ai/e2e-test/[該当ファイル].md\` の手順を実行
126
+ - [ ] 手動動作確認
127
+
128
+ #### 注意事項
129
+ - [注意事項1]
130
+ - [注意事項2]
131
+
132
+ ### 想定される本番影響
133
+
134
+ #### 影響範囲
135
+ - [影響を受けるモジュール/機能]
136
+
137
+ #### リスク評価
138
+ - **高リスク**: なし
139
+ - **中リスク**: [該当あれば記載]
140
+ - **低リスク**: [該当あれば記載]
141
+
142
+ #### 切り戻し方法
143
+ - [問題発生時の切り戻し手順]
144
+ "
145
+
146
+ # PR本文を更新(既存内容 + 追記内容)
147
+ echo "${CURRENT_BODY}${APPEND_CONTENT}" | gh pr edit --body-file -
148
+ ```
149
+
150
+ **PR本文追記テンプレート(コピペ用)**:
151
+
152
+ ```markdown
153
+ ---
154
+
155
+ ## 実装完了レポート
156
+
157
+ ### 実装した内容の概要
158
+
159
+ - [機能Aの実装]
160
+ - [機能Bの改善]
161
+ - [バグXの修正]
162
+
163
+ ### テストや注意事項
164
+
165
+ #### 実行したテスト
166
+ - [x] ユニットテスト: `npm test` - 全テスト通過
167
+ - [x] e2e テスト: `docs-ai/e2e-test/presets-command-e2e.md` の手順を実行
168
+ - [x] 手動動作確認
169
+
170
+ #### 注意事項
171
+ - 既存の設定ファイルとの互換性を確認してください
172
+ - 環境変数 `XXX` の設定が必要です
173
+
174
+ ### 想定される本番影響
175
+
176
+ #### 影響範囲
177
+ - `packages/core/` - 新機能追加
178
+ - `packages/cli/` - コマンドオプション追加
179
+
180
+ #### リスク評価
181
+ - **高リスク**: なし
182
+ - **中リスク**: なし
183
+ - **低リスク**: CLI出力フォーマットの軽微な変更
184
+
185
+ #### 切り戻し方法
186
+ - このPRをリバートすることで元の状態に戻せます
187
+ ```
188
+
189
+ ### Step 5: e2e テスト実行 Checks の PR 登録
190
+
191
+ e2e テストを実行したことを PR の Checks として登録します。
192
+
193
+ **方法1: GitHub API を使用してチェック実行を作成**
194
+
195
+ ```bash
196
+ # リポジトリ情報を取得
197
+ REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner')
198
+ COMMIT_SHA=$(git rev-parse HEAD)
199
+
200
+ # Check Run を作成
201
+ gh api \
202
+ --method POST \
203
+ -H "Accept: application/vnd.github+json" \
204
+ -H "X-GitHub-Api-Version: 2022-11-28" \
205
+ /repos/${REPO}/check-runs \
206
+ -f name='E2E Tests' \
207
+ -f head_sha="${COMMIT_SHA}" \
208
+ -f status='completed' \
209
+ -f conclusion='success' \
210
+ -f output='{"title":"E2E Tests Passed","summary":"All e2e tests from docs-ai/e2e-test/ passed successfully."}' \
211
+ -f started_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
212
+ -f completed_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
213
+ ```
214
+
215
+ **方法2: PRにコメントとして e2e テスト結果を記録**
216
+
217
+ ```bash
218
+ # e2e テスト結果をコメントとして追加
219
+ gh pr comment $PR_NUMBER --body "## E2E テスト実行結果
220
+
221
+ **実行日時**: $(date '+%Y-%m-%d %H:%M:%S')
222
+
223
+ ### 実行したテスト
224
+ - ✅ \`docs-ai/e2e-test/[該当ファイル].md\` のコマンドを実行
225
+
226
+ ### 結果サマリ
227
+ - ✅ 全テスト通過
228
+ - 実行環境: [環境情報]
229
+
230
+ ### 実行ログ(抜粋)
231
+ \`\`\`
232
+ [テスト実行ログの抜粋]
233
+ \`\`\`
234
+ "
235
+ ```
236
+
237
+ **確認ポイント**:
238
+ - [ ] Check Run が正常に作成された、またはコメントが追加された
239
+ - [ ] PR の Checks タブに e2e テスト結果が表示されている
240
+
241
+ ### Step 6: 最終確認
242
+
243
+ ```bash
244
+ # PR の状態を確認
245
+ gh pr view --json title,state,body,labels,checks
246
+
247
+ # Checks の状態を確認
248
+ gh pr checks
249
+
250
+ # 変更内容の最終確認
251
+ gh pr diff
252
+ ```
253
+
254
+ **最終確認チェックリスト**:
255
+ - [ ] 全ての e2e テストが成功している
256
+ - [ ] PR 本文に実装情報が追記されている
257
+ - [ ] Checks に e2e テスト結果が登録されている
258
+ - [ ] レビュー依頼の準備が整っている
259
+
260
+ ## コマンド一覧(まとめ)
261
+
262
+ 以下のコマンドを順に実行することで、fix-implementation ワークフローを完了できます。
263
+
264
+ ```bash
265
+ #!/bin/bash
266
+
267
+ # Step 1: 現状確認
268
+ PR_NUMBER=$(gh pr view --json number -q '.number')
269
+ echo "PR Number: $PR_NUMBER"
270
+
271
+ # Step 2: e2e テストドキュメントの確認
272
+ ls docs-ai/e2e-test/
273
+
274
+ # Step 3: e2e テストの実行(該当するドキュメントに従う)
275
+ npm run build
276
+ # [e2e テストコマンドを実行]
277
+
278
+ # Step 4: PR本文への追記
279
+ # (上記のテンプレートを使用してPR本文を更新)
280
+
281
+ # Step 5: Checks の登録
282
+ REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner')
283
+ COMMIT_SHA=$(git rev-parse HEAD)
284
+
285
+ gh api \
286
+ --method POST \
287
+ -H "Accept: application/vnd.github+json" \
288
+ -H "X-GitHub-Api-Version: 2022-11-28" \
289
+ /repos/${REPO}/check-runs \
290
+ -f name='E2E Tests' \
291
+ -f head_sha="${COMMIT_SHA}" \
292
+ -f status='completed' \
293
+ -f conclusion='success' \
294
+ -f output='{"title":"E2E Tests Passed","summary":"E2E tests completed successfully."}' \
295
+ -f started_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
296
+ -f completed_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
297
+
298
+ # Step 6: 最終確認
299
+ gh pr view
300
+ gh pr checks
301
+
302
+ echo "✅ fix-implementation workflow completed!"
303
+ ```
304
+
305
+ ## e2e テストドキュメントの書き方
306
+
307
+ 実装する機能に対応する e2e テストドキュメントが存在しない場合は、新規作成してください。
308
+
309
+ **ファイル命名規則**: `[機能名]-[スコープ]-e2e.md`
310
+
311
+ **必須セクション**:
312
+ 1. **前提条件** - 実行環境、必要なツール
313
+ 2. **全体ビルド・テスト** - プロジェクト全体のビルド・テスト
314
+ 3. **機能固有のテスト** - 対象機能の動作確認
315
+ 4. **エラーケース** - 異常系の確認
316
+ 5. **クリーンアップ** - 一時ファイルの削除等
317
+
318
+ **テンプレート例**:
319
+
320
+ ```markdown
321
+ ---
322
+ feature: [機能名]
323
+ purpose: E2E テストコマンド集
324
+ ---
325
+
326
+ # [機能名] E2E Tests
327
+
328
+ ## 前提条件
329
+
330
+ \`\`\`bash
331
+ cd /path/to/project
332
+ npm install
333
+ npm run build
334
+ \`\`\`
335
+
336
+ ## 基本動作確認
337
+
338
+ ### 正常系
339
+
340
+ \`\`\`bash
341
+ # コマンド実行
342
+ ./dist/cli.js [command] [options]
343
+
344
+ # 期待される出力を確認
345
+ \`\`\`
346
+
347
+ ### エラーケース
348
+
349
+ \`\`\`bash
350
+ # エラーケースの確認
351
+ ./dist/cli.js [invalid-command] 2>&1 || echo "Expected error occurred"
352
+ \`\`\`
353
+
354
+ ## クリーンアップ
355
+
356
+ \`\`\`bash
357
+ # 一時ファイルの削除
358
+ rm -rf /tmp/test-output
359
+ \`\`\`
360
+ ```
361
+
362
+ ## ベストプラクティス
363
+
364
+ ### e2e テスト実行時
365
+
366
+ - **環境の一致**: ローカル環境と CI 環境の差異を考慮
367
+ - **再現性**: 同じコマンドで同じ結果が得られることを確認
368
+ - **ドキュメント更新**: テスト内容が変わったらドキュメントも更新
369
+
370
+ ### PR 本文更新時
371
+
372
+ - **簡潔に**: 重要な情報を簡潔にまとめる
373
+ - **具体的に**: 抽象的な表現を避け、具体的な変更点を記載
374
+ - **リスク明示**: 本番影響を正直に評価
375
+
376
+ ### Checks 登録時
377
+
378
+ - **正確な結果**: テスト結果を正確に報告
379
+ - **失敗時の対応**: テスト失敗時は conclusion を 'failure' に設定
380
+ - **詳細情報**: 必要に応じてログの抜粋を含める
381
+
382
+ ## トラブルシューティング
383
+
384
+ ### e2e テストが失敗する場合
385
+
386
+ **原因**: 環境の違い、依存関係の不整合
387
+
388
+ **解決策**:
389
+ ```bash
390
+ # クリーンビルド
391
+ rm -rf node_modules dist
392
+ npm install
393
+ npm run build
394
+
395
+ # 再度テスト実行
396
+ ```
397
+
398
+ ### Check Run の作成に失敗する場合
399
+
400
+ **原因**: GitHub API の権限不足
401
+
402
+ **解決策**:
403
+ - リポジトリの Settings → Actions → General で権限を確認
404
+ - GitHub App を使用している場合は `checks:write` 権限を付与
405
+ - 代替手段として PR コメントを使用
406
+
407
+ ### PR 本文の更新に失敗する場合
408
+
409
+ **原因**: gh CLI の認証エラー
410
+
411
+ **解決策**:
412
+ ```bash
413
+ # 認証状態を確認
414
+ gh auth status
415
+
416
+ # 再認証
417
+ gh auth login
418
+ ```
419
+
420
+ ## 関連ドキュメント
421
+
422
+ - [plan-fix プロンプト](./plan-fix.prompt.md) - 計画完成後のワークフロー
423
+ - [TODO Plans 作成ルール](./todo_plans.prompt.md) - 計画管理
424
+ - [e2e テストガイドライン](../../../docs-ai/e2e-test/README.md) - e2e テストの書き方
425
+
426
+ ## まとめ
427
+
428
+ prompt fix-implementation ワークフローを使用することで:
429
+
430
+ ✅ **品質保証**: e2e テストによる品質確認
431
+ ✅ **透明性**: PR 本文への詳細な実装情報追記
432
+ ✅ **追跡可能性**: Checks への e2e テスト結果登録
433
+ ✅ **標準化**: 実装完了プロセスの統一
434
+
435
+ ---
436
+
437
+ **作成日**: 2025年1月
438
+ **バージョン**: 1.0.0
@@ -105,13 +105,30 @@ cat > "todo_plans/${ISSUE_NUMBER}/index.md" <<'EOF'
105
105
  - `testing.md`: テスト戦略・テストケース
106
106
  - `risks.md`: リスク評価と対策
107
107
  - `notes.md`: 設計メモ・その他補足
108
+ - `e2e-cmd.md`: E2E テスト(追加/更新/削除すべきコマンドラインテスト。詳細は artifact/instructions/rules/test/e2e-cmd.md を参照)
109
+
110
+ ## 関連ファイルの記載ルール
111
+
112
+ 計画ファイル内で関連ファイルやディレクトリを参照する場合は、**必ずプロジェクトルートからのフルパス**で記載してください。
113
+
114
+ **良い例**:
115
+ - `artifact/instructions/rules/test/e2e-cmd.md`
116
+ - `todo_plans/123/index.md`
117
+ - `packages/core/src/index.ts`
118
+
119
+ **悪い例**:
120
+ - `e2e-cmd.md`(相対パスが不明確)
121
+ - `./index.md`(現在のディレクトリが不明確)
122
+ - `src/index.ts`(どのパッケージか不明)
108
123
  EOF
109
124
 
110
125
  cat > "todo_plans/${ISSUE_NUMBER}/details.md" <<'EOF'
111
126
  # 補足(自由記述)
112
127
 
113
128
  ※補足はこのファイルに「全部」書く必要はありません。
114
- `todo_plans/${ISSUE_NUMBER}/` 配下に、用途別にファイルを増やしてOKです(例: `testing.md`, `risks.md`, `notes.md`)。
129
+ `todo_plans/${ISSUE_NUMBER}/` 配下に、用途別にファイルを増やしてOKです(例: `testing.md`, `risks.md`, `notes.md`, `e2e-cmd.md`)。
130
+
131
+ **重要**: ファイル内で関連ファイルを参照する際は、プロジェクトルートからのフルパスで記載してください。
115
132
 
116
133
  ## 背景
117
134
 
@@ -308,8 +325,11 @@ echo "Next: Start Agent Coding with base branch plan/${ISSUE_NUMBER}"
308
325
 
309
326
  - **index.md**: 人間が読む前提で、要点だけに絞る(Issue 本文と一致させる正本)
310
327
  - **補足ファイル**: 長い背景/Phase/受け入れ基準などは `todo_plans/${ISSUE_NUMBER}/` 配下に分割して置く(`details.md` はその一例)
328
+ - **e2e-cmd.md**: E2E テストの追加/更新/削除内容を記載(原則としてコマンドライン上で完結するテストのみ対象)
329
+ - 詳細は `artifact/instructions/rules/test/e2e-cmd.md` を参照
311
330
  - **Phase 分け**: 1つの Phase が 2-3時間で完了する規模に分割
312
331
  - **受け入れ基準**: 検証可能な形で明記
332
+ - **ファイルパスの記載**: 関連ファイルは必ずプロジェクトルートからのフルパスで記載
313
333
 
314
334
  #### Issue 作成時
315
335
 
@@ -433,9 +453,10 @@ git push
433
453
 
434
454
  ### 関連ドキュメント
435
455
 
436
- - プランニングワークフロー マニュアル(planning-workflow.md)
437
- - Git ブランチ命名規則(git-rules.md)
438
- - todo_plans への記載項目(todo_planning.md)
456
+ - プランニングワークフロー マニュアル(artifact/instructions/planning-workflow.md)
457
+ - Git ブランチ命名規則(artifact/instructions/git-rules.md)
458
+ - todo_plans への記載項目(artifact/instructions/todo_planning.md)
459
+ - E2E コマンドラインテスト計画(artifact/instructions/rules/test/e2e-cmd.md)
439
460
 
440
461
  ### まとめ
441
462