@aramassa/ai-rules 0.9.6 → 0.9.8
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/artifact/agents/agent-creation.agent.md +8 -0
- package/artifact/agents/copilot-planner.agent.md +590 -0
- package/artifact/instructions/git-rules.md +8 -0
- package/artifact/instructions/rules/test/e2e-cmd.md +323 -0
- package/artifact/prompts/development/plan-fix.prompt.md +25 -4
- package/artifact/prompts/github-copilot/copilot-agent-environment.prompt.md +462 -0
- package/package.json +1 -1
- package/presets/README.md +1 -0
- package/presets/agents.yaml +12 -1
- package/presets/prompts/github-copilot-agent.yaml +15 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: test
|
|
3
|
+
category: e2e-test
|
|
4
|
+
focus: command-line-testing
|
|
5
|
+
applyTo: "todo_plans/**/e2e-cmd.md"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# E2E コマンドラインテスト計画ガイドライン
|
|
9
|
+
|
|
10
|
+
## 概要
|
|
11
|
+
|
|
12
|
+
このドキュメントは、`todo_plans/${ISSUE_NUMBER}/e2e-cmd.md` ファイルに記載すべき E2E テストの追加/更新/削除内容に関するガイドラインです。
|
|
13
|
+
|
|
14
|
+
## 基本原則
|
|
15
|
+
|
|
16
|
+
### コマンドライン完結の原則
|
|
17
|
+
|
|
18
|
+
**E2E テストは、原則としてコマンドライン(CLI)上で完結するもののみを対象とします。**
|
|
19
|
+
|
|
20
|
+
**対象となるテスト**:
|
|
21
|
+
- CLI ツールの動作確認
|
|
22
|
+
- API サーバーの HTTP リクエスト/レスポンス検証(curl、httpie などを使用)
|
|
23
|
+
- ビルドプロセスの実行確認
|
|
24
|
+
- スクリプトの実行と出力検証
|
|
25
|
+
- ファイル操作の確認
|
|
26
|
+
|
|
27
|
+
**対象外となるテスト**:
|
|
28
|
+
- ブラウザ UI のインタラクション(Playwright、Selenium などを使うもの)
|
|
29
|
+
- デスクトップアプリケーションの GUI 操作
|
|
30
|
+
- モバイルアプリケーションのテスト
|
|
31
|
+
- コマンドラインから実行できないインタラクティブな操作
|
|
32
|
+
|
|
33
|
+
### なぜコマンドライン完結なのか
|
|
34
|
+
|
|
35
|
+
- **再現性**: コマンドは完全に記録でき、誰でも同じ手順で実行可能
|
|
36
|
+
- **自動化**: CI/CD パイプラインで容易に実行可能
|
|
37
|
+
- **保守性**: テストスクリプトがシンプルで理解しやすい
|
|
38
|
+
- **環境依存性の最小化**: ブラウザやGUIツールのバージョン差異を避けられる
|
|
39
|
+
|
|
40
|
+
## e2e-cmd.md の記載内容
|
|
41
|
+
|
|
42
|
+
### ファイル構成
|
|
43
|
+
|
|
44
|
+
`todo_plans/${ISSUE_NUMBER}/e2e-cmd.md` ファイルには、以下の内容を記載します:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
# E2E テスト計画: [機能名]
|
|
48
|
+
|
|
49
|
+
## 追加すべきテスト
|
|
50
|
+
|
|
51
|
+
### テスト1: [テスト名]
|
|
52
|
+
- **目的**: [何を検証するか]
|
|
53
|
+
- **対象ファイル**: [プロジェクトルートからのフルパス]
|
|
54
|
+
- **コマンド**:
|
|
55
|
+
```bash
|
|
56
|
+
# セットアップ
|
|
57
|
+
npm run build
|
|
58
|
+
|
|
59
|
+
# テスト実行
|
|
60
|
+
./dist/cli.js command --option value
|
|
61
|
+
|
|
62
|
+
# 期待する結果
|
|
63
|
+
# - 終了コード: 0
|
|
64
|
+
# - 標準出力: "Success message"
|
|
65
|
+
```
|
|
66
|
+
- **検証ポイント**:
|
|
67
|
+
- [ ] 終了コードが正しい
|
|
68
|
+
- [ ] 標準出力/標準エラー出力が期待通り
|
|
69
|
+
- [ ] ファイル生成が正しく行われる
|
|
70
|
+
|
|
71
|
+
## 更新すべきテスト
|
|
72
|
+
|
|
73
|
+
### テスト2: [既存テスト名]
|
|
74
|
+
- **現在の問題**: [なぜ更新が必要か]
|
|
75
|
+
- **対象ファイル**: docs-ai/e2e-test/[既存ファイル名]
|
|
76
|
+
- **変更内容**:
|
|
77
|
+
- 変更前: `old command`
|
|
78
|
+
- 変更後: `new command --new-option`
|
|
79
|
+
- **理由**: [変更理由]
|
|
80
|
+
|
|
81
|
+
## 削除すべきテスト
|
|
82
|
+
|
|
83
|
+
### テスト3: [削除するテスト名]
|
|
84
|
+
- **対象ファイル**: docs-ai/e2e-test/[ファイル名]
|
|
85
|
+
- **削除理由**: [なぜ不要になったか]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 記載のポイント
|
|
89
|
+
|
|
90
|
+
#### 1. 追加すべきテスト
|
|
91
|
+
|
|
92
|
+
新機能や改善により、新たに動作確認が必要になったテストを記載します。
|
|
93
|
+
|
|
94
|
+
**必須項目**:
|
|
95
|
+
- テスト名(何をテストするか明確に)
|
|
96
|
+
- 目的(このテストで何を保証するか)
|
|
97
|
+
- 対象ファイル(プロジェクトルートからのフルパス)
|
|
98
|
+
- 実行コマンド(コピペで実行可能な形式)
|
|
99
|
+
- 検証ポイント(チェックリスト形式)
|
|
100
|
+
|
|
101
|
+
**良い例**:
|
|
102
|
+
```markdown
|
|
103
|
+
### テスト: CLI のヘルプ表示
|
|
104
|
+
|
|
105
|
+
- **目的**: CLI が正しくヘルプメッセージを表示することを確認
|
|
106
|
+
- **対象ファイル**: packages/cli/dist/index.js
|
|
107
|
+
- **コマンド**:
|
|
108
|
+
```bash
|
|
109
|
+
cd /home/runner/work/ai-rules/ai-rules
|
|
110
|
+
./packages/cli/dist/index.js --help
|
|
111
|
+
```
|
|
112
|
+
- **検証ポイント**:
|
|
113
|
+
- [ ] 終了コード 0
|
|
114
|
+
- [ ] 使用方法が表示される
|
|
115
|
+
- [ ] オプション一覧が表示される
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**悪い例**:
|
|
119
|
+
```markdown
|
|
120
|
+
### ヘルプのテスト
|
|
121
|
+
- ヘルプが表示されることを確認
|
|
122
|
+
- コマンド: `cli --help`
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### 2. 更新すべきテスト
|
|
126
|
+
|
|
127
|
+
既存の E2E テストの変更が必要な場合に記載します。
|
|
128
|
+
|
|
129
|
+
**記載すべき内容**:
|
|
130
|
+
- 既存テストファイルのフルパス(docs-ai/e2e-test/ 配下)
|
|
131
|
+
- 変更前後のコマンド
|
|
132
|
+
- 変更理由
|
|
133
|
+
|
|
134
|
+
**例**:
|
|
135
|
+
```markdown
|
|
136
|
+
### テスト: presets コマンドの引数変更
|
|
137
|
+
|
|
138
|
+
- **現在の問題**: 新しいオプション `--format` が追加されたが、既存テストでカバーされていない
|
|
139
|
+
- **対象ファイル**: docs-ai/e2e-test/presets-command-e2e.md
|
|
140
|
+
- **変更内容**:
|
|
141
|
+
- 変更前: `./dist/cli.js presets`
|
|
142
|
+
- 変更後: `./dist/cli.js presets --format json`
|
|
143
|
+
- **理由**: JSON 形式の出力を検証するため
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### 3. 削除すべきテスト
|
|
147
|
+
|
|
148
|
+
不要になったテストや、機能削除により実行できなくなったテストを記載します。
|
|
149
|
+
|
|
150
|
+
**記載すべき内容**:
|
|
151
|
+
- 削除対象ファイルのフルパス
|
|
152
|
+
- 削除理由
|
|
153
|
+
|
|
154
|
+
**例**:
|
|
155
|
+
```markdown
|
|
156
|
+
### テスト: 旧形式の config ファイル読み込み
|
|
157
|
+
|
|
158
|
+
- **対象ファイル**: docs-ai/e2e-test/legacy-config-e2e.md
|
|
159
|
+
- **削除理由**: 旧形式のサポートを終了したため、このテストは不要
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## コマンド記述のベストプラクティス
|
|
163
|
+
|
|
164
|
+
### 1. 絶対パスの使用
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# ✅ 良い例: プロジェクトルートからの明示的なパス
|
|
168
|
+
cd /home/runner/work/ai-rules/ai-rules
|
|
169
|
+
./dist/cli.js command
|
|
170
|
+
|
|
171
|
+
# ❌ 悪い例: 相対パスのみ
|
|
172
|
+
./cli.js command
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 2. 環境変数の明示
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# ✅ 良い例: 必要な環境変数を明示
|
|
179
|
+
NODE_ENV=test ./dist/cli.js test-command
|
|
180
|
+
|
|
181
|
+
# ❌ 悪い例: 環境変数が暗黙的
|
|
182
|
+
./dist/cli.js test-command
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 3. 前提条件の記載
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# ✅ 良い例: セットアップ手順を含める
|
|
189
|
+
# 前提: ビルド済みであること
|
|
190
|
+
npm run build
|
|
191
|
+
|
|
192
|
+
# テスト実行
|
|
193
|
+
./dist/cli.js command
|
|
194
|
+
|
|
195
|
+
# ❌ 悪い例: 前提条件が不明
|
|
196
|
+
./dist/cli.js command
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 4. 期待結果の明記
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# ✅ 良い例: 期待する出力を明記
|
|
203
|
+
# 期待する結果:
|
|
204
|
+
# - 終了コード: 0
|
|
205
|
+
# - 標準出力に "Success" を含む
|
|
206
|
+
# - ファイル dist/output.json が生成される
|
|
207
|
+
|
|
208
|
+
# ❌ 悪い例: 期待結果が不明
|
|
209
|
+
./dist/cli.js command
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 5. エラーケースの検証
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# ✅ 良い例: エラーケースも記載
|
|
216
|
+
# エラーケース: 無効な引数
|
|
217
|
+
./dist/cli.js command --invalid-option ; echo "exit code: $?"
|
|
218
|
+
# 期待: 終了コード 1、エラーメッセージ出力
|
|
219
|
+
|
|
220
|
+
# ❌ 悪い例: 正常系のみ
|
|
221
|
+
./dist/cli.js command
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## E2E テストドキュメントへの反映
|
|
225
|
+
|
|
226
|
+
`todo_plans/${ISSUE_NUMBER}/e2e-cmd.md` に記載した内容は、実装完了後に `docs-ai/e2e-test/` ディレクトリ配下の適切なファイルに反映します。
|
|
227
|
+
|
|
228
|
+
### 反映先の決定
|
|
229
|
+
|
|
230
|
+
- **既存機能の拡張**: 既存の E2E テストファイルに追記
|
|
231
|
+
- **新機能**: 新しい E2E テストファイルを作成(命名規則: `[機能名]-e2e.md`)
|
|
232
|
+
- **大規模な変更**: 既存ファイルを分割または再構成
|
|
233
|
+
|
|
234
|
+
### 反映時の注意点
|
|
235
|
+
|
|
236
|
+
1. **ファイルパスはプロジェクトルートからのフルパス**で記載
|
|
237
|
+
2. **コマンドはコピペで実行可能**な形式で記載
|
|
238
|
+
3. **セクション構成**は既存ファイルに合わせる:
|
|
239
|
+
- 前提条件
|
|
240
|
+
- 全体ビルド・テスト
|
|
241
|
+
- パッケージ別テスト
|
|
242
|
+
- コマンドライン検証
|
|
243
|
+
- エラーケーステスト
|
|
244
|
+
- クリーンアップ
|
|
245
|
+
|
|
246
|
+
## チェックリスト
|
|
247
|
+
|
|
248
|
+
e2e-cmd.md を作成する際の確認事項:
|
|
249
|
+
|
|
250
|
+
- [ ] すべてのテストがコマンドライン上で完結する
|
|
251
|
+
- [ ] ファイルパスはプロジェクトルートからのフルパスで記載されている
|
|
252
|
+
- [ ] コマンドがコピペで実行可能である
|
|
253
|
+
- [ ] 期待結果(終了コード、出力内容など)が明記されている
|
|
254
|
+
- [ ] セットアップ手順が含まれている
|
|
255
|
+
- [ ] クリーンアップ手順が必要な場合は記載されている
|
|
256
|
+
- [ ] 既存の E2E テストファイルとの関連が明確である
|
|
257
|
+
|
|
258
|
+
## 関連ドキュメント
|
|
259
|
+
|
|
260
|
+
- **E2E テストガイドライン**: artifact/instructions/rules/test/e2e-cli-execution.md
|
|
261
|
+
- **E2E テストディレクトリ**: docs-ai/e2e-test/README.md
|
|
262
|
+
- **計画ワークフロー**: artifact/prompts/development/plan-fix.prompt.md
|
|
263
|
+
|
|
264
|
+
## 例
|
|
265
|
+
|
|
266
|
+
### 完全な e2e-cmd.md の例
|
|
267
|
+
|
|
268
|
+
```markdown
|
|
269
|
+
# E2E テスト計画: presets コマンド拡張
|
|
270
|
+
|
|
271
|
+
## 追加すべきテスト
|
|
272
|
+
|
|
273
|
+
### テスト1: JSON 形式での出力
|
|
274
|
+
|
|
275
|
+
- **目的**: presets コマンドが JSON 形式で出力できることを確認
|
|
276
|
+
- **対象ファイル**: packages/cli/dist/cli.js
|
|
277
|
+
- **コマンド**:
|
|
278
|
+
```bash
|
|
279
|
+
cd /home/runner/work/ai-rules/ai-rules
|
|
280
|
+
npm run build
|
|
281
|
+
./dist/cli.js presets --format json
|
|
282
|
+
```
|
|
283
|
+
- **検証ポイント**:
|
|
284
|
+
- [ ] 終了コード 0
|
|
285
|
+
- [ ] 標準出力が有効な JSON である
|
|
286
|
+
- [ ] JSON に "presets" 配列が含まれる
|
|
287
|
+
|
|
288
|
+
### テスト2: サブディレクトリのプリセット検出
|
|
289
|
+
|
|
290
|
+
- **目的**: presets/ 配下のサブディレクトリ内のプリセットも検出できることを確認
|
|
291
|
+
- **対象ファイル**: packages/cli/dist/cli.js
|
|
292
|
+
- **コマンド**:
|
|
293
|
+
```bash
|
|
294
|
+
cd /home/runner/work/ai-rules/ai-rules
|
|
295
|
+
npm run build
|
|
296
|
+
|
|
297
|
+
# サブディレクトリを作成してテスト
|
|
298
|
+
mkdir -p presets/custom
|
|
299
|
+
echo "test: true" > presets/custom/test.yaml
|
|
300
|
+
|
|
301
|
+
./dist/cli.js presets
|
|
302
|
+
|
|
303
|
+
# クリーンアップ
|
|
304
|
+
rm -rf presets/custom
|
|
305
|
+
```
|
|
306
|
+
- **検証ポイント**:
|
|
307
|
+
- [ ] 終了コード 0
|
|
308
|
+
- [ ] "custom/test.yaml" がリストに含まれる
|
|
309
|
+
|
|
310
|
+
## 更新すべきテスト
|
|
311
|
+
|
|
312
|
+
### テスト3: 既存の presets 一覧表示テスト
|
|
313
|
+
|
|
314
|
+
- **現在の問題**: 新しい `--format` オプションが追加されたが、既存テストでカバーされていない
|
|
315
|
+
- **対象ファイル**: docs-ai/e2e-test/presets-command-e2e.md
|
|
316
|
+
- **変更内容**:
|
|
317
|
+
- セクション「基本的な presets 一覧表示」の後に、「JSON 形式での出力」セクションを追加
|
|
318
|
+
- **理由**: 新機能のテストを既存の E2E テストファイルに統合
|
|
319
|
+
|
|
320
|
+
## 削除すべきテスト
|
|
321
|
+
|
|
322
|
+
なし
|
|
323
|
+
```
|
|
@@ -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
|
|