takt 0.3.6 → 0.3.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/README.md +81 -25
- package/dist/claude/client.d.ts.map +1 -1
- package/dist/claude/client.js +3 -2
- package/dist/claude/client.js.map +1 -1
- package/dist/claude/executor.d.ts.map +1 -1
- package/dist/claude/executor.js +2 -1
- package/dist/claude/executor.js.map +1 -1
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +52 -21
- package/dist/cli.js.map +1 -1
- package/dist/codex/client.d.ts.map +1 -1
- package/dist/codex/client.js +2 -1
- package/dist/codex/client.js.map +1 -1
- package/dist/commands/addTask.d.ts.map +1 -1
- package/dist/commands/addTask.js +3 -2
- package/dist/commands/addTask.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +0 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/eject.js +3 -3
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/interactive.d.ts.map +1 -1
- package/dist/commands/interactive.js +12 -10
- package/dist/commands/interactive.js.map +1 -1
- package/dist/commands/listTasks.d.ts.map +1 -1
- package/dist/commands/listTasks.js +15 -9
- package/dist/commands/listTasks.js.map +1 -1
- package/dist/commands/pipelineExecution.d.ts +1 -1
- package/dist/commands/pipelineExecution.d.ts.map +1 -1
- package/dist/commands/pipelineExecution.js +15 -25
- package/dist/commands/pipelineExecution.js.map +1 -1
- package/dist/commands/taskExecution.d.ts +14 -6
- package/dist/commands/taskExecution.d.ts.map +1 -1
- package/dist/commands/taskExecution.js +27 -19
- package/dist/commands/taskExecution.js.map +1 -1
- package/dist/commands/watchTasks.d.ts.map +1 -1
- package/dist/commands/watchTasks.js +7 -7
- package/dist/commands/watchTasks.js.map +1 -1
- package/dist/commands/workflow.js +3 -3
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workflowExecution.d.ts +3 -3
- package/dist/commands/workflowExecution.d.ts.map +1 -1
- package/dist/commands/workflowExecution.js +10 -8
- package/dist/commands/workflowExecution.js.map +1 -1
- package/dist/config/globalConfig.d.ts +2 -0
- package/dist/config/globalConfig.d.ts.map +1 -1
- package/dist/config/globalConfig.js +20 -2
- package/dist/config/globalConfig.js.map +1 -1
- package/dist/config/loader.d.ts +2 -2
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +2 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/projectConfig.d.ts +0 -2
- package/dist/config/projectConfig.d.ts.map +1 -1
- package/dist/config/projectConfig.js.map +1 -1
- package/dist/config/workflowLoader.d.ts +49 -13
- package/dist/config/workflowLoader.d.ts.map +1 -1
- package/dist/config/workflowLoader.js +139 -51
- package/dist/config/workflowLoader.js.map +1 -1
- package/dist/github/pr.d.ts.map +1 -1
- package/dist/github/pr.js +2 -1
- package/dist/github/pr.js.map +1 -1
- package/dist/mock/client.d.ts.map +1 -1
- package/dist/mock/client.js +5 -2
- package/dist/mock/client.js.map +1 -1
- package/dist/mock/scenario.d.ts +57 -0
- package/dist/mock/scenario.d.ts.map +1 -0
- package/dist/mock/scenario.js +123 -0
- package/dist/mock/scenario.js.map +1 -0
- package/dist/models/schemas.d.ts +1 -0
- package/dist/models/schemas.d.ts.map +1 -1
- package/dist/models/schemas.js +2 -0
- package/dist/models/schemas.js.map +1 -1
- package/dist/models/types.d.ts +2 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/task/autoCommit.d.ts.map +1 -1
- package/dist/task/autoCommit.js +6 -25
- package/dist/task/autoCommit.js.map +1 -1
- package/dist/task/git.d.ts +9 -0
- package/dist/task/git.d.ts.map +1 -0
- package/dist/task/git.js +26 -0
- package/dist/task/git.js.map +1 -0
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +2 -1
- package/dist/utils/session.js.map +1 -1
- package/dist/utils/ui.d.ts +4 -1
- package/dist/utils/ui.d.ts.map +1 -1
- package/dist/utils/ui.js +30 -2
- package/dist/utils/ui.js.map +1 -1
- package/dist/workflow/engine.d.ts +1 -1
- package/dist/workflow/engine.d.ts.map +1 -1
- package/dist/workflow/engine.js +4 -3
- package/dist/workflow/engine.js.map +1 -1
- package/dist/workflow/instruction-builder.d.ts +5 -62
- package/dist/workflow/instruction-builder.d.ts.map +1 -1
- package/dist/workflow/instruction-builder.js +5 -139
- package/dist/workflow/instruction-builder.js.map +1 -1
- package/dist/workflow/instruction-context.d.ts +79 -0
- package/dist/workflow/instruction-context.d.ts.map +1 -0
- package/dist/workflow/instruction-context.js +72 -0
- package/dist/workflow/instruction-context.js.map +1 -0
- package/dist/workflow/status-rules.d.ts +21 -0
- package/dist/workflow/status-rules.d.ts.map +1 -0
- package/dist/workflow/status-rules.js +81 -0
- package/dist/workflow/status-rules.js.map +1 -0
- package/dist/workflow/types.d.ts +2 -2
- package/dist/workflow/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/resources/global/en/agents/default/ai-antipattern-reviewer.md +58 -14
- package/resources/global/en/agents/default/architecture-reviewer.md +10 -0
- package/resources/global/en/agents/default/coder.md +82 -0
- package/resources/global/en/workflows/default.yaml +36 -25
- package/resources/global/en/workflows/expert-cqrs.yaml +36 -23
- package/resources/global/en/workflows/expert.yaml +37 -27
- package/resources/global/ja/agents/default/ai-antipattern-reviewer.md +57 -13
- package/resources/global/ja/agents/default/architecture-reviewer.md +10 -0
- package/resources/global/ja/agents/default/coder.md +82 -0
- package/resources/global/ja/workflows/default.yaml +36 -25
- package/resources/global/ja/workflows/expert-cqrs.yaml +36 -23
- package/resources/global/ja/workflows/expert.yaml +37 -28
|
@@ -128,26 +128,70 @@ AIは自信を持って間違える——もっともらしく見えるが動か
|
|
|
128
128
|
2. 公開モジュール(index ファイル等)のエクスポート一覧と実体が一致しているか確認
|
|
129
129
|
3. 新規追加されたコードに対応する古いコードが残っていないか確認
|
|
130
130
|
|
|
131
|
-
### 7.
|
|
132
|
-
|
|
133
|
-
**AI
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
|
138
|
-
|
|
139
|
-
|
|
|
140
|
-
|
|
|
131
|
+
### 7. フォールバック・デフォルト引数禁止レビュー(REJECT基準)
|
|
132
|
+
|
|
133
|
+
**AIは不確実性を隠すためにフォールバックやデフォルト引数を多用する。値の流れが不明瞭になるため、原則REJECT。**
|
|
134
|
+
|
|
135
|
+
**問題の本質:** ロジックを追わないと何の値が来るか分からない「ハックコード」になる。
|
|
136
|
+
|
|
137
|
+
| パターン | 例 | 問題 | 判定 |
|
|
138
|
+
|---------|-----|------|------|
|
|
139
|
+
| 必須データへのフォールバック | `user?.id ?? 'unknown'` | 本来エラーの状態で処理が進む | **REJECT** |
|
|
140
|
+
| デフォルト引数の濫用 | `function f(x = 'default')` で全呼び出し元が省略 | 値の流れが不明瞭 | **REJECT** |
|
|
141
|
+
| null合体で渡す口がない | `options?.cwd ?? process.cwd()` で options に渡す経路なし | 常にフォールバックになる | **REJECT** |
|
|
142
|
+
| try-catch で空値返却 | `catch { return ''; }` | エラーを握りつぶす | **REJECT** |
|
|
143
|
+
| 多段フォールバック | `a ?? b ?? c ?? d` | 値の決定ロジックが複雑 | **REJECT** |
|
|
144
|
+
| 条件分岐でサイレント無視 | `if (!x) return;` で本来エラーをスキップ | バグを隠蔽 | **REJECT** |
|
|
145
|
+
|
|
146
|
+
**デフォルト引数の具体例:**
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
// ❌ 悪い例 - 全呼び出し元が省略している
|
|
150
|
+
function loadWorkflow(name: string, cwd = process.cwd()) { ... }
|
|
151
|
+
// 全呼び出し元: loadWorkflow('default') ← cwd を渡していない
|
|
152
|
+
// 問題: cwd の値がどこから来るか、呼び出し元を見ても分からない
|
|
153
|
+
// 修正: cwd を必須引数にし、呼び出し元で明示的に渡す
|
|
154
|
+
|
|
155
|
+
// ✅ 良い例 - 一部の呼び出し元のみ省略
|
|
156
|
+
function query(sql: string, timeout = 30000) { ... }
|
|
157
|
+
// 呼び出し元A: query(sql) ← デフォルト使用
|
|
158
|
+
// 呼び出し元B: query(sql, 60000) ← 明示的に指定
|
|
159
|
+
// 理由: timeout は明示的にオプショナルな設定値
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**null合体演算子の具体例:**
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
// ❌ 悪い例 - 上位から値を渡す口がない
|
|
166
|
+
class Engine {
|
|
167
|
+
constructor(config, cwd, task, options?) {
|
|
168
|
+
this.projectCwd = options?.projectCwd ?? cwd
|
|
169
|
+
// 問題: options が { } で渡され、projectCwd が常に undefined
|
|
170
|
+
// 結果、常に cwd が使われる(フォールバックの意味がない)
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// 修正: 上位の関数シグネチャを修正し、options.projectCwd を渡せるようにする
|
|
174
|
+
|
|
175
|
+
// ✅ 良い例 - 上位から値を渡す経路が存在する
|
|
176
|
+
function execute(task, options?: { projectCwd?: string }) {
|
|
177
|
+
const cwd = options?.projectCwd ?? process.cwd()
|
|
178
|
+
// 理由: options.projectCwd を渡すかどうかは呼び出し元の選択
|
|
179
|
+
}
|
|
180
|
+
```
|
|
141
181
|
|
|
142
182
|
**例外(REJECTしない):**
|
|
143
183
|
- 外部入力(ユーザー入力、API応答)のバリデーション時のデフォルト値
|
|
144
184
|
- 明示的にコメントで理由が記載されているフォールバック
|
|
145
185
|
- 設定ファイルのオプショナル値に対するデフォルト
|
|
186
|
+
- 一部の呼び出し元のみがデフォルト引数を使用(全員が省略している場合はREJECT)
|
|
146
187
|
|
|
147
188
|
**検証アプローチ:**
|
|
148
|
-
1. 変更差分で
|
|
149
|
-
2.
|
|
150
|
-
|
|
189
|
+
1. 変更差分で `??`、`||`、`= defaultValue`、`catch` を grep
|
|
190
|
+
2. 各フォールバック・デフォルト引数について:
|
|
191
|
+
- 必須データか? → REJECT
|
|
192
|
+
- 全呼び出し元が省略しているか? → REJECT
|
|
193
|
+
- 上位から値を渡す経路があるか? → なければ REJECT
|
|
194
|
+
3. 理由なしのフォールバック・デフォルト引数が1つでもあれば REJECT
|
|
151
195
|
|
|
152
196
|
### 8. 未使用コードの検出
|
|
153
197
|
|
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
|
|
9
9
|
「構造が正しければ、コードは自然と正しくなる」——それが設計レビューの信念だ。
|
|
10
10
|
|
|
11
|
+
## レビュアーとしてのスタンス
|
|
12
|
+
|
|
13
|
+
**軽微な問題でも後に持ち越さない。今修正できる問題は今修正させる。**
|
|
14
|
+
|
|
15
|
+
- 「軽微だから許容」という妥協はしない。小さな問題の蓄積が技術的負債になる
|
|
16
|
+
- 「次のタスクで対応」は実現しない。今修正できるなら今修正する
|
|
17
|
+
- 「条件付き承認」はしない。問題があれば差し戻す
|
|
18
|
+
- スコープ内で修正可能な問題を見つけたら、例外なく指摘する
|
|
19
|
+
- 既存問題(今回の変更と無関係な問題)は非ブロッキングだが、今回の変更で導入された問題や修正可能な問題は必ず指摘する
|
|
20
|
+
|
|
11
21
|
## 専門領域
|
|
12
22
|
|
|
13
23
|
### 構造・設計
|
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
あなたは実装担当です。**設計判断はせず、実装に集中**してください。
|
|
4
4
|
|
|
5
|
+
## コーディングスタンス
|
|
6
|
+
|
|
7
|
+
**速さより丁寧さ。実装の楽さよりコードの正確さ。**
|
|
8
|
+
|
|
9
|
+
- フォールバック値(`?? 'unknown'`)で不確実性を隠さない
|
|
10
|
+
- デフォルト引数で値の流れを不明瞭にしない
|
|
11
|
+
- 「とりあえず動く」より「正しく動く」を優先
|
|
12
|
+
- エラーは握りつぶさず、早期に失敗させる(Fail Fast)
|
|
13
|
+
- 推測で実装せず、不明点は報告する
|
|
14
|
+
|
|
15
|
+
**レビュワーの指摘は絶対。あなたの認識が間違っている。**
|
|
16
|
+
- レビュワーが「未修正」と指摘したら、まずファイルを開いて事実確認
|
|
17
|
+
- 「修正済みのはず」という思い込みを捨てる
|
|
18
|
+
- 指摘された問題を全て Edit tool で修正する
|
|
19
|
+
- 反論せず、まず従う
|
|
20
|
+
|
|
21
|
+
**AIの悪い癖を自覚する:**
|
|
22
|
+
- 不確実なときにフォールバックで隠す → 禁止(レビューで指摘される)
|
|
23
|
+
- 「念のため」で未使用コードを書く → 禁止(レビューで指摘される)
|
|
24
|
+
- 設計判断を勝手にする → 報告して判断を仰ぐ
|
|
25
|
+
- レビュワーの指摘を軽視する → 禁止(あなたの認識が間違っている)
|
|
26
|
+
|
|
5
27
|
## 最重要ルール
|
|
6
28
|
|
|
7
29
|
**作業は必ず指定されたプロジェクトディレクトリ内で行ってください。**
|
|
@@ -108,6 +130,66 @@
|
|
|
108
130
|
| ボーイスカウト | 触った箇所は少し改善して去る |
|
|
109
131
|
| Fail Fast | エラーは早期に検出。握りつぶさない |
|
|
110
132
|
|
|
133
|
+
## フォールバック・デフォルト引数の禁止
|
|
134
|
+
|
|
135
|
+
**値の流れを不明瞭にするコードは書かない。ロジックを追わないと値が分からないのは悪いコード。**
|
|
136
|
+
|
|
137
|
+
### 禁止パターン
|
|
138
|
+
|
|
139
|
+
| パターン | 例 | 問題 |
|
|
140
|
+
|---------|-----|------|
|
|
141
|
+
| 必須データへのフォールバック | `user?.id ?? 'unknown'` | エラーになるべき状態で処理が進む |
|
|
142
|
+
| デフォルト引数の濫用 | `function f(x = 'default')` で全呼び出し元が省略 | 値がどこから来るか分からない |
|
|
143
|
+
| null合体で渡す口がない | `options?.cwd ?? process.cwd()` で上位から渡す経路なし | 常にフォールバックになる(意味がない) |
|
|
144
|
+
| try-catch で空値返却 | `catch { return ''; }` | エラーを握りつぶす |
|
|
145
|
+
|
|
146
|
+
### 正しい実装
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
// ❌ 禁止 - 必須データへのフォールバック
|
|
150
|
+
const userId = user?.id ?? 'unknown'
|
|
151
|
+
processUser(userId) // 'unknown' で処理が進んでしまう
|
|
152
|
+
|
|
153
|
+
// ✅ 正しい - Fail Fast
|
|
154
|
+
if (!user?.id) {
|
|
155
|
+
throw new Error('User ID is required')
|
|
156
|
+
}
|
|
157
|
+
processUser(user.id)
|
|
158
|
+
|
|
159
|
+
// ❌ 禁止 - デフォルト引数で全呼び出し元が省略
|
|
160
|
+
function loadConfig(path = './config.json') { ... }
|
|
161
|
+
// 全呼び出し元: loadConfig() ← path を渡していない
|
|
162
|
+
|
|
163
|
+
// ✅ 正しい - 必須引数にして明示的に渡す
|
|
164
|
+
function loadConfig(path: string) { ... }
|
|
165
|
+
// 呼び出し元: loadConfig('./config.json') ← 明示的
|
|
166
|
+
|
|
167
|
+
// ❌ 禁止 - null合体で渡す口がない
|
|
168
|
+
class Engine {
|
|
169
|
+
constructor(config, options?) {
|
|
170
|
+
this.cwd = options?.cwd ?? process.cwd()
|
|
171
|
+
// 問題: options に cwd を渡す経路がない場合、常に process.cwd() になる
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// ✅ 正しい - 上位から渡せるようにする
|
|
176
|
+
function createEngine(config, cwd: string) {
|
|
177
|
+
return new Engine(config, { cwd })
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 許容されるケース
|
|
182
|
+
|
|
183
|
+
- 外部入力(ユーザー入力、API応答)のバリデーション時のデフォルト値
|
|
184
|
+
- 設定ファイルのオプショナル値(明示的に省略可能と設計されている)
|
|
185
|
+
- 一部の呼び出し元のみがデフォルト引数を使用(全員が省略している場合は禁止)
|
|
186
|
+
|
|
187
|
+
### 判断基準
|
|
188
|
+
|
|
189
|
+
1. **必須データか?** → フォールバックせず、エラーにする
|
|
190
|
+
2. **全呼び出し元が省略しているか?** → デフォルト引数を削除し、必須にする
|
|
191
|
+
3. **上位から値を渡す経路があるか?** → なければ引数・フィールドを追加
|
|
192
|
+
|
|
111
193
|
## 抽象化の原則
|
|
112
194
|
|
|
113
195
|
**条件分岐を追加する前に考える:**
|
|
@@ -65,9 +65,6 @@ steps:
|
|
|
65
65
|
- {質問2}
|
|
66
66
|
pass_previous_response: true
|
|
67
67
|
instruction_template: |
|
|
68
|
-
## Previous Response (implementからの差し戻し時)
|
|
69
|
-
{previous_response}
|
|
70
|
-
|
|
71
68
|
タスクを分析し、実装方針を立ててください。
|
|
72
69
|
|
|
73
70
|
**注意:** Previous Responseがある場合は差し戻しのため、
|
|
@@ -204,19 +201,35 @@ steps:
|
|
|
204
201
|
permission_mode: acceptEdits
|
|
205
202
|
rules:
|
|
206
203
|
- condition: AI問題の修正完了
|
|
207
|
-
next:
|
|
204
|
+
next: ai_review
|
|
208
205
|
- condition: 判断できない、情報不足
|
|
209
206
|
next: plan
|
|
210
207
|
instruction_template: |
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
-
|
|
218
|
-
-
|
|
219
|
-
-
|
|
208
|
+
**これは {step_iteration} 回目の AI Review です。**
|
|
209
|
+
|
|
210
|
+
2回目以降は、前回の修正が実際には行われていなかったということです。
|
|
211
|
+
**あなたの「修正済み」という認識が間違っています。**
|
|
212
|
+
|
|
213
|
+
**まず認めること:**
|
|
214
|
+
- 「修正済み」と思っていたファイルは実際には修正されていない
|
|
215
|
+
- 前回の作業内容の認識が間違っている
|
|
216
|
+
- ゼロベースで考え直す必要がある
|
|
217
|
+
|
|
218
|
+
**必須アクション:**
|
|
219
|
+
1. 指摘された全ファイルを Read tool で開く(思い込みを捨てて事実確認)
|
|
220
|
+
2. 問題箇所を grep で検索して実在を確認する
|
|
221
|
+
3. 確認した問題を Edit tool で修正する
|
|
222
|
+
4. テストを実行して検証する(`./gradlew :backend:test` 等)
|
|
223
|
+
5. 「何を確認して、何を修正したか」を具体的に報告する
|
|
224
|
+
|
|
225
|
+
**報告フォーマット:**
|
|
226
|
+
- ❌ 「既に修正されています」
|
|
227
|
+
- ✅ 「ファイルXのL123を確認した結果、問題Yが存在したため、Zに修正しました」
|
|
228
|
+
|
|
229
|
+
**絶対に禁止:**
|
|
230
|
+
- ファイルを開かずに「修正済み」と報告
|
|
231
|
+
- 思い込みで判断
|
|
232
|
+
- AI Reviewer が REJECT した問題の放置
|
|
220
233
|
pass_previous_response: true
|
|
221
234
|
|
|
222
235
|
- name: reviewers
|
|
@@ -230,7 +243,7 @@ steps:
|
|
|
230
243
|
```markdown
|
|
231
244
|
# アーキテクチャレビュー
|
|
232
245
|
|
|
233
|
-
## 結果: APPROVE /
|
|
246
|
+
## 結果: APPROVE / REJECT
|
|
234
247
|
|
|
235
248
|
## サマリー
|
|
236
249
|
{1-2文で結果を要約}
|
|
@@ -244,17 +257,18 @@ steps:
|
|
|
244
257
|
- [x] 呼び出しチェーン検証
|
|
245
258
|
|
|
246
259
|
## 問題点(REJECTの場合)
|
|
247
|
-
| # | 場所 | 問題 | 修正案 |
|
|
248
|
-
|
|
249
|
-
| 1 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
260
|
+
| # | スコープ | 場所 | 問題 | 修正案 |
|
|
261
|
+
|---|---------|------|------|--------|
|
|
262
|
+
| 1 | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
263
|
+
|
|
264
|
+
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)
|
|
250
265
|
|
|
251
|
-
##
|
|
252
|
-
- {
|
|
266
|
+
## 既存問題(参考・非ブロッキング)
|
|
267
|
+
- {既存問題の記録。今回の変更と無関係な問題}
|
|
253
268
|
```
|
|
254
269
|
|
|
255
270
|
**認知負荷軽減ルール:**
|
|
256
|
-
- APPROVE
|
|
257
|
-
- APPROVE + 軽微な提案 → サマリー + 改善提案(15行以内)
|
|
271
|
+
- APPROVE → サマリーのみ(5行以内)
|
|
258
272
|
- REJECT → 問題点を表形式で(30行以内)
|
|
259
273
|
allowed_tools:
|
|
260
274
|
- Read
|
|
@@ -354,10 +368,7 @@ steps:
|
|
|
354
368
|
- condition: 判断できない、情報不足
|
|
355
369
|
next: plan
|
|
356
370
|
instruction_template: |
|
|
357
|
-
|
|
358
|
-
{previous_response}
|
|
359
|
-
|
|
360
|
-
**重要**: レビュアーのフィードバックに対応してください。
|
|
371
|
+
レビュアーのフィードバックに対応してください。
|
|
361
372
|
セッションの会話履歴を確認し、レビュアーの指摘事項を修正してください。
|
|
362
373
|
pass_previous_response: true
|
|
363
374
|
|
|
@@ -73,9 +73,6 @@ steps:
|
|
|
73
73
|
- WebSearch
|
|
74
74
|
- WebFetch
|
|
75
75
|
instruction_template: |
|
|
76
|
-
## Previous Response (implementからの差し戻し時)
|
|
77
|
-
{previous_response}
|
|
78
|
-
|
|
79
76
|
タスクを分析し、実装方針を立ててください。
|
|
80
77
|
|
|
81
78
|
**注意:** Previous Responseがある場合は差し戻しのため、
|
|
@@ -155,6 +152,7 @@ steps:
|
|
|
155
152
|
- name: ai_review
|
|
156
153
|
edit: false
|
|
157
154
|
agent: ../agents/default/ai-antipattern-reviewer.md
|
|
155
|
+
pass_previous_response: true
|
|
158
156
|
report:
|
|
159
157
|
name: 03-ai-review.md
|
|
160
158
|
format: |
|
|
@@ -215,15 +213,31 @@ steps:
|
|
|
215
213
|
- WebSearch
|
|
216
214
|
- WebFetch
|
|
217
215
|
instruction_template: |
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
-
|
|
216
|
+
**これは {step_iteration} 回目の AI Review です。**
|
|
217
|
+
|
|
218
|
+
2回目以降は、前回の修正が実際には行われていなかったということです。
|
|
219
|
+
**あなたの「修正済み」という認識が間違っています。**
|
|
220
|
+
|
|
221
|
+
**まず認めること:**
|
|
222
|
+
- 「修正済み」と思っていたファイルは実際には修正されていない
|
|
223
|
+
- 前回の作業内容の認識が間違っている
|
|
224
|
+
- ゼロベースで考え直す必要がある
|
|
225
|
+
|
|
226
|
+
**必須アクション:**
|
|
227
|
+
1. 指摘された全ファイルを Read tool で開く(思い込みを捨てて事実確認)
|
|
228
|
+
2. 問題箇所を grep で検索して実在を確認する
|
|
229
|
+
3. 確認した問題を Edit tool で修正する
|
|
230
|
+
4. テストを実行して検証する(`./gradlew :backend:test` 等)
|
|
231
|
+
5. 「何を確認して、何を修正したか」を具体的に報告する
|
|
232
|
+
|
|
233
|
+
**報告フォーマット:**
|
|
234
|
+
- ❌ 「既に修正されています」
|
|
235
|
+
- ✅ 「ファイルXのL123を確認した結果、問題Yが存在したため、Zに修正しました」
|
|
236
|
+
|
|
237
|
+
**絶対に禁止:**
|
|
238
|
+
- ファイルを開かずに「修正済み」と報告
|
|
239
|
+
- 思い込みで判断
|
|
240
|
+
- AI Reviewer が REJECT した問題の放置
|
|
227
241
|
pass_previous_response: true
|
|
228
242
|
rules:
|
|
229
243
|
- condition: AI Reviewerの指摘に対する修正が完了した
|
|
@@ -260,9 +274,14 @@ steps:
|
|
|
260
274
|
| 結果整合性 | ✅ | - |
|
|
261
275
|
|
|
262
276
|
## 問題点(REJECTの場合)
|
|
263
|
-
| # | 場所 | 問題 | 修正案 |
|
|
264
|
-
|
|
265
|
-
| 1 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
277
|
+
| # | スコープ | 場所 | 問題 | 修正案 |
|
|
278
|
+
|---|---------|------|------|--------|
|
|
279
|
+
| 1 | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
280
|
+
|
|
281
|
+
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)
|
|
282
|
+
|
|
283
|
+
## 既存問題(参考・非ブロッキング)
|
|
284
|
+
- {既存問題の記録。今回の変更と無関係な問題}
|
|
266
285
|
```
|
|
267
286
|
allowed_tools:
|
|
268
287
|
- Read
|
|
@@ -464,10 +483,7 @@ steps:
|
|
|
464
483
|
- condition: 修正を進行できない
|
|
465
484
|
next: plan
|
|
466
485
|
instruction_template: |
|
|
467
|
-
|
|
468
|
-
{previous_response}
|
|
469
|
-
|
|
470
|
-
**重要**: レビュアーからのフィードバックに対応してください。
|
|
486
|
+
レビュアーからのフィードバックに対応してください。
|
|
471
487
|
「Original User Request」は参考情報であり、最新の指示ではありません。
|
|
472
488
|
セッションの会話履歴を確認し、レビュアーの指摘事項を修正してください。
|
|
473
489
|
pass_previous_response: true
|
|
@@ -581,10 +597,7 @@ steps:
|
|
|
581
597
|
- WebSearch
|
|
582
598
|
- WebFetch
|
|
583
599
|
instruction_template: |
|
|
584
|
-
|
|
585
|
-
{previous_response}
|
|
586
|
-
|
|
587
|
-
**重要**: 監督者からの指摘を修正してください。
|
|
600
|
+
監督者からの指摘を修正してください。
|
|
588
601
|
|
|
589
602
|
監督者は全体を俯瞰した視点から問題を指摘しています。
|
|
590
603
|
優先度の高い項目から順に対応してください。
|
|
@@ -64,9 +64,6 @@ steps:
|
|
|
64
64
|
- WebSearch
|
|
65
65
|
- WebFetch
|
|
66
66
|
instruction_template: |
|
|
67
|
-
## Previous Response (implementからの差し戻し時)
|
|
68
|
-
{previous_response}
|
|
69
|
-
|
|
70
67
|
タスクを分析し、実装方針を立ててください。
|
|
71
68
|
|
|
72
69
|
**注意:** Previous Responseがある場合は差し戻しのため、
|
|
@@ -146,6 +143,7 @@ steps:
|
|
|
146
143
|
- name: ai_review
|
|
147
144
|
edit: false
|
|
148
145
|
agent: ../agents/default/ai-antipattern-reviewer.md
|
|
146
|
+
pass_previous_response: true
|
|
149
147
|
report:
|
|
150
148
|
name: 03-ai-review.md
|
|
151
149
|
format: |
|
|
@@ -206,15 +204,31 @@ steps:
|
|
|
206
204
|
- WebSearch
|
|
207
205
|
- WebFetch
|
|
208
206
|
instruction_template: |
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
207
|
+
**これは {step_iteration} 回目の AI Review です。**
|
|
208
|
+
|
|
209
|
+
2回目以降は、前回の修正が実際には行われていなかったということです。
|
|
210
|
+
**あなたの「修正済み」という認識が間違っています。**
|
|
211
|
+
|
|
212
|
+
**まず認めること:**
|
|
213
|
+
- 「修正済み」と思っていたファイルは実際には修正されていない
|
|
214
|
+
- 前回の作業内容の認識が間違っている
|
|
215
|
+
- ゼロベースで考え直す必要がある
|
|
216
|
+
|
|
217
|
+
**必須アクション:**
|
|
218
|
+
1. 指摘された全ファイルを Read tool で開く(思い込みを捨てて事実確認)
|
|
219
|
+
2. 問題箇所を grep で検索して実在を確認する
|
|
220
|
+
3. 確認した問題を Edit tool で修正する
|
|
221
|
+
4. テストを実行して検証する(`./gradlew :backend:test` 等)
|
|
222
|
+
5. 「何を確認して、何を修正したか」を具体的に報告する
|
|
223
|
+
|
|
224
|
+
**報告フォーマット:**
|
|
225
|
+
- ❌ 「既に修正されています」
|
|
226
|
+
- ✅ 「ファイルXのL123を確認した結果、問題Yが存在したため、Zに修正しました」
|
|
227
|
+
|
|
228
|
+
**絶対に禁止:**
|
|
229
|
+
- ファイルを開かずに「修正済み」と報告
|
|
230
|
+
- 思い込みで判断
|
|
231
|
+
- AI Reviewer が REJECT した問題の放置
|
|
218
232
|
pass_previous_response: true
|
|
219
233
|
rules:
|
|
220
234
|
- condition: AI Reviewerの指摘に対する修正が完了した
|
|
@@ -236,7 +250,7 @@ steps:
|
|
|
236
250
|
```markdown
|
|
237
251
|
# アーキテクチャレビュー
|
|
238
252
|
|
|
239
|
-
## 結果: APPROVE /
|
|
253
|
+
## 結果: APPROVE / REJECT
|
|
240
254
|
|
|
241
255
|
## サマリー
|
|
242
256
|
{1-2文で結果を要約}
|
|
@@ -250,17 +264,18 @@ steps:
|
|
|
250
264
|
- [x] 呼び出しチェーン検証
|
|
251
265
|
|
|
252
266
|
## 問題点(REJECTの場合)
|
|
253
|
-
| # | 場所 | 問題 | 修正案 |
|
|
254
|
-
|
|
255
|
-
| 1 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
267
|
+
| # | スコープ | 場所 | 問題 | 修正案 |
|
|
268
|
+
|---|---------|------|------|--------|
|
|
269
|
+
| 1 | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
270
|
+
|
|
271
|
+
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)
|
|
256
272
|
|
|
257
|
-
##
|
|
258
|
-
- {
|
|
273
|
+
## 既存問題(参考・非ブロッキング)
|
|
274
|
+
- {既存問題の記録。今回の変更と無関係な問題}
|
|
259
275
|
```
|
|
260
276
|
|
|
261
277
|
**認知負荷軽減ルール:**
|
|
262
|
-
- APPROVE
|
|
263
|
-
- APPROVE + 軽微な提案 → サマリー + 改善提案(15行以内)
|
|
278
|
+
- APPROVE → サマリーのみ(5行以内)
|
|
264
279
|
- REJECT → 問題点を表形式で(30行以内)
|
|
265
280
|
allowed_tools:
|
|
266
281
|
- Read
|
|
@@ -459,10 +474,7 @@ steps:
|
|
|
459
474
|
- condition: 修正を進行できない
|
|
460
475
|
next: plan
|
|
461
476
|
instruction_template: |
|
|
462
|
-
|
|
463
|
-
{previous_response}
|
|
464
|
-
|
|
465
|
-
**重要**: レビュアーからのフィードバックに対応してください。
|
|
477
|
+
レビュアーからのフィードバックに対応してください。
|
|
466
478
|
「Original User Request」は参考情報であり、最新の指示ではありません。
|
|
467
479
|
セッションの会話履歴を確認し、レビュアーの指摘事項を修正してください。
|
|
468
480
|
pass_previous_response: true
|
|
@@ -576,10 +588,7 @@ steps:
|
|
|
576
588
|
- WebSearch
|
|
577
589
|
- WebFetch
|
|
578
590
|
instruction_template: |
|
|
579
|
-
|
|
580
|
-
{previous_response}
|
|
581
|
-
|
|
582
|
-
**重要**: 監督者からの指摘を修正してください。
|
|
591
|
+
監督者からの指摘を修正してください。
|
|
583
592
|
|
|
584
593
|
監督者は全体を俯瞰した視点から問題を指摘しています。
|
|
585
594
|
優先度の高い項目から順に対応してください。
|