takt 0.2.0 → 0.2.1
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 +55 -15
- package/dist/agents/runner.d.ts +3 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +15 -0
- package/dist/agents/runner.js.map +1 -1
- package/dist/claude/client.d.ts +3 -1
- package/dist/claude/client.d.ts.map +1 -1
- package/dist/claude/client.js +17 -0
- package/dist/claude/client.js.map +1 -1
- package/dist/cli.d.ts +9 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +64 -18
- package/dist/cli.js.map +1 -1
- package/dist/commands/addTask.d.ts.map +1 -1
- package/dist/commands/addTask.js +27 -9
- package/dist/commands/addTask.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +5 -3
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/reviewTasks.d.ts +32 -0
- package/dist/commands/reviewTasks.d.ts.map +1 -0
- package/dist/commands/reviewTasks.js +198 -0
- package/dist/commands/reviewTasks.js.map +1 -0
- package/dist/commands/taskExecution.d.ts +16 -2
- package/dist/commands/taskExecution.d.ts.map +1 -1
- package/dist/commands/taskExecution.js +75 -39
- package/dist/commands/taskExecution.js.map +1 -1
- package/dist/commands/watchTasks.d.ts.map +1 -1
- package/dist/commands/watchTasks.js +6 -36
- package/dist/commands/watchTasks.js.map +1 -1
- package/dist/commands/workflowExecution.d.ts +5 -1
- package/dist/commands/workflowExecution.d.ts.map +1 -1
- package/dist/commands/workflowExecution.js +35 -12
- package/dist/commands/workflowExecution.js.map +1 -1
- package/dist/config/initialization.d.ts +2 -0
- package/dist/config/initialization.d.ts.map +1 -1
- package/dist/config/initialization.js +12 -2
- package/dist/config/initialization.js.map +1 -1
- package/dist/config/paths.d.ts +1 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +1 -1
- package/dist/config/paths.js.map +1 -1
- package/dist/config/sessionStore.d.ts +5 -0
- package/dist/config/sessionStore.d.ts.map +1 -1
- package/dist/config/sessionStore.js +1 -1
- package/dist/config/sessionStore.js.map +1 -1
- package/dist/config/workflowLoader.d.ts.map +1 -1
- package/dist/config/workflowLoader.js +1 -0
- package/dist/config/workflowLoader.js.map +1 -1
- package/dist/models/schemas.d.ts +22 -0
- package/dist/models/schemas.d.ts.map +1 -1
- package/dist/models/schemas.js +8 -0
- package/dist/models/schemas.js.map +1 -1
- package/dist/models/types.d.ts +8 -2
- package/dist/models/types.d.ts.map +1 -1
- package/dist/prompt/index.d.ts +60 -11
- package/dist/prompt/index.d.ts.map +1 -1
- package/dist/prompt/index.js +246 -72
- package/dist/prompt/index.js.map +1 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +2 -0
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/index.d.ts +3 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/task/autoCommit.d.ts +28 -0
- package/dist/task/autoCommit.d.ts.map +1 -0
- package/dist/task/autoCommit.js +68 -0
- package/dist/task/autoCommit.js.map +1 -0
- package/dist/task/index.d.ts +2 -1
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/index.js +2 -1
- package/dist/task/index.js.map +1 -1
- package/dist/task/worktree.d.ts +39 -0
- package/dist/task/worktree.d.ts.map +1 -1
- package/dist/task/worktree.js +111 -2
- package/dist/task/worktree.js.map +1 -1
- package/dist/utils/debug.d.ts +6 -1
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +30 -24
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/session.d.ts +20 -0
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +32 -3
- package/dist/utils/session.js.map +1 -1
- package/dist/utils/text.d.ts +22 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +54 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/workflow/engine.d.ts +5 -6
- package/dist/workflow/engine.d.ts.map +1 -1
- package/dist/workflow/engine.js +32 -12
- package/dist/workflow/engine.js.map +1 -1
- package/dist/workflow/index.d.ts +2 -2
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +2 -2
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/instruction-builder.d.ts +31 -2
- package/dist/workflow/instruction-builder.d.ts.map +1 -1
- package/dist/workflow/instruction-builder.js +69 -1
- package/dist/workflow/instruction-builder.js.map +1 -1
- package/dist/workflow/transitions.d.ts.map +1 -1
- package/dist/workflow/transitions.js +1 -0
- package/dist/workflow/transitions.js.map +1 -1
- package/dist/workflow/types.d.ts +5 -1
- package/dist/workflow/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/resources/global/en/workflows/default.yaml +22 -1
- package/resources/global/en/workflows/simple.yaml +18 -1
- package/resources/global/ja/agents/default/ai-reviewer.md +24 -1
- package/resources/global/ja/agents/default/architect.md +37 -4
- package/resources/global/ja/agents/default/coder.md +1 -0
- package/resources/global/ja/workflows/default.yaml +27 -2
- package/resources/global/ja/workflows/expert-review.yaml +169 -10
- package/resources/global/ja/workflows/simple.yaml +18 -1
|
@@ -39,6 +39,7 @@ steps:
|
|
|
39
39
|
| Situation | Judgment |
|
|
40
40
|
|-----------|----------|
|
|
41
41
|
| Requirements clear and implementable | DONE |
|
|
42
|
+
| User is asking a question (not an implementation task) | ANSWER |
|
|
42
43
|
| Requirements unclear, insufficient info | BLOCKED |
|
|
43
44
|
|
|
44
45
|
## Output Format
|
|
@@ -46,6 +47,7 @@ steps:
|
|
|
46
47
|
| Situation | Tag |
|
|
47
48
|
|-----------|-----|
|
|
48
49
|
| Analysis complete | `[PLANNER:DONE]` |
|
|
50
|
+
| Question answered | `[PLANNER:ANSWER]` |
|
|
49
51
|
| Insufficient info | `[PLANNER:BLOCKED]` |
|
|
50
52
|
|
|
51
53
|
### Output Examples
|
|
@@ -55,6 +57,13 @@ steps:
|
|
|
55
57
|
[PLANNER:DONE]
|
|
56
58
|
```
|
|
57
59
|
|
|
60
|
+
**ANSWER case:**
|
|
61
|
+
```
|
|
62
|
+
{Answer to the question}
|
|
63
|
+
|
|
64
|
+
[PLANNER:ANSWER]
|
|
65
|
+
```
|
|
66
|
+
|
|
58
67
|
**BLOCKED case:**
|
|
59
68
|
```
|
|
60
69
|
[PLANNER:BLOCKED]
|
|
@@ -80,10 +89,15 @@ steps:
|
|
|
80
89
|
## Instructions
|
|
81
90
|
Analyze the task and create an implementation plan.
|
|
82
91
|
|
|
92
|
+
**Judgment criteria:**
|
|
93
|
+
- If the user input is an implementation task → create a plan and output `[PLANNER:DONE]`
|
|
94
|
+
- If the user input is a question → research, answer, and output `[PLANNER:ANSWER]`
|
|
95
|
+
- If there is insufficient information → output `[PLANNER:BLOCKED]`
|
|
96
|
+
|
|
83
97
|
**Note:** If returned from implement step (Previous Response exists),
|
|
84
98
|
review and revise the plan based on that feedback (replan).
|
|
85
99
|
|
|
86
|
-
**Tasks:**
|
|
100
|
+
**Tasks (for implementation tasks):**
|
|
87
101
|
1. Understand the requirements
|
|
88
102
|
2. Identify impact scope
|
|
89
103
|
3. Decide implementation approach
|
|
@@ -117,6 +131,8 @@ steps:
|
|
|
117
131
|
transitions:
|
|
118
132
|
- condition: done
|
|
119
133
|
next_step: implement
|
|
134
|
+
- condition: answer
|
|
135
|
+
next_step: COMPLETE
|
|
120
136
|
- condition: blocked
|
|
121
137
|
next_step: ABORT
|
|
122
138
|
|
|
@@ -131,6 +147,7 @@ steps:
|
|
|
131
147
|
- Bash
|
|
132
148
|
- WebSearch
|
|
133
149
|
- WebFetch
|
|
150
|
+
permission_mode: acceptEdits
|
|
134
151
|
status_rules_prompt: |
|
|
135
152
|
# ⚠️ REQUIRED: Status Output Rules ⚠️
|
|
136
153
|
|
|
@@ -360,6 +377,7 @@ steps:
|
|
|
360
377
|
- Bash
|
|
361
378
|
- WebSearch
|
|
362
379
|
- WebFetch
|
|
380
|
+
permission_mode: acceptEdits
|
|
363
381
|
status_rules_prompt: |
|
|
364
382
|
# ⚠️ REQUIRED: Status Output Rules ⚠️
|
|
365
383
|
|
|
@@ -545,6 +563,7 @@ steps:
|
|
|
545
563
|
- Bash
|
|
546
564
|
- WebSearch
|
|
547
565
|
- WebFetch
|
|
566
|
+
permission_mode: acceptEdits
|
|
548
567
|
status_rules_prompt: |
|
|
549
568
|
# ⚠️ REQUIRED: Status Output Rules ⚠️
|
|
550
569
|
|
|
@@ -727,6 +746,7 @@ steps:
|
|
|
727
746
|
- Bash
|
|
728
747
|
- WebSearch
|
|
729
748
|
- WebFetch
|
|
749
|
+
permission_mode: acceptEdits
|
|
730
750
|
status_rules_prompt: |
|
|
731
751
|
# ⚠️ REQUIRED: Status Output Rules ⚠️
|
|
732
752
|
|
|
@@ -796,6 +816,7 @@ steps:
|
|
|
796
816
|
- Bash
|
|
797
817
|
- WebSearch
|
|
798
818
|
- WebFetch
|
|
819
|
+
permission_mode: acceptEdits
|
|
799
820
|
status_rules_prompt: |
|
|
800
821
|
# ⚠️ REQUIRED: Status Output Rules ⚠️
|
|
801
822
|
|
|
@@ -40,6 +40,7 @@ steps:
|
|
|
40
40
|
| Situation | Judgment |
|
|
41
41
|
|-----------|----------|
|
|
42
42
|
| Requirements clear and implementable | DONE |
|
|
43
|
+
| User is asking a question (not an implementation task) | ANSWER |
|
|
43
44
|
| Requirements unclear, insufficient info | BLOCKED |
|
|
44
45
|
|
|
45
46
|
## Output Format
|
|
@@ -47,6 +48,7 @@ steps:
|
|
|
47
48
|
| Situation | Tag |
|
|
48
49
|
|-----------|-----|
|
|
49
50
|
| Analysis complete | `[PLANNER:DONE]` |
|
|
51
|
+
| Question answered | `[PLANNER:ANSWER]` |
|
|
50
52
|
| Insufficient info | `[PLANNER:BLOCKED]` |
|
|
51
53
|
|
|
52
54
|
### Output Examples
|
|
@@ -56,6 +58,13 @@ steps:
|
|
|
56
58
|
[PLANNER:DONE]
|
|
57
59
|
```
|
|
58
60
|
|
|
61
|
+
**ANSWER case:**
|
|
62
|
+
```
|
|
63
|
+
{Answer to the question}
|
|
64
|
+
|
|
65
|
+
[PLANNER:ANSWER]
|
|
66
|
+
```
|
|
67
|
+
|
|
59
68
|
**BLOCKED case:**
|
|
60
69
|
```
|
|
61
70
|
[PLANNER:BLOCKED]
|
|
@@ -81,10 +90,15 @@ steps:
|
|
|
81
90
|
## Instructions
|
|
82
91
|
Analyze the task and create an implementation plan.
|
|
83
92
|
|
|
93
|
+
**Judgment criteria:**
|
|
94
|
+
- If the user input is an implementation task → create a plan and output `[PLANNER:DONE]`
|
|
95
|
+
- If the user input is a question → research, answer, and output `[PLANNER:ANSWER]`
|
|
96
|
+
- If there is insufficient information → output `[PLANNER:BLOCKED]`
|
|
97
|
+
|
|
84
98
|
**Note:** If returned from implement step (Previous Response exists),
|
|
85
99
|
review and revise the plan based on that feedback (replan).
|
|
86
100
|
|
|
87
|
-
**Tasks:**
|
|
101
|
+
**Tasks (for implementation tasks):**
|
|
88
102
|
1. Understand the requirements
|
|
89
103
|
2. Identify impact scope
|
|
90
104
|
3. Decide implementation approach
|
|
@@ -118,6 +132,8 @@ steps:
|
|
|
118
132
|
transitions:
|
|
119
133
|
- condition: done
|
|
120
134
|
next_step: implement
|
|
135
|
+
- condition: answer
|
|
136
|
+
next_step: COMPLETE
|
|
121
137
|
- condition: blocked
|
|
122
138
|
next_step: ABORT
|
|
123
139
|
|
|
@@ -132,6 +148,7 @@ steps:
|
|
|
132
148
|
- Bash
|
|
133
149
|
- WebSearch
|
|
134
150
|
- WebFetch
|
|
151
|
+
permission_mode: acceptEdits
|
|
135
152
|
status_rules_prompt: |
|
|
136
153
|
# ⚠️ REQUIRED: Status Output Rules ⚠️
|
|
137
154
|
|
|
@@ -51,11 +51,15 @@ AI生成コードには特有の特徴があります:
|
|
|
51
51
|
| 古いパターン | 学習データからの非推奨アプローチの使用 |
|
|
52
52
|
| 過剰エンジニアリング | タスクに不要な抽象化レイヤーの追加 |
|
|
53
53
|
| 過小エンジニアリング | 現実的なシナリオのエラーハンドリングの欠如 |
|
|
54
|
+
| 配線忘れ | 機構は実装されているが、エントリポイントから渡されていない |
|
|
54
55
|
|
|
55
56
|
**検証アプローチ:**
|
|
56
57
|
1. このコードは実際にコンパイル/実行できるか?
|
|
57
58
|
2. インポートされたモジュール/関数は存在するか?
|
|
58
59
|
3. このライブラリバージョンでAPIは正しく使用されているか?
|
|
60
|
+
4. 新しいパラメータ/フィールドが追加された場合、呼び出し元から実際に渡されているか?
|
|
61
|
+
- AIは個々のファイル内では正しく実装するが、ファイル横断の結合を忘れがち
|
|
62
|
+
- `options.xxx ?? fallback` で常にフォールバックが使われていないか grep で確認
|
|
59
63
|
|
|
60
64
|
### 3. コピペパターン検出
|
|
61
65
|
|
|
@@ -96,7 +100,26 @@ AI生成コードには特有の特徴があります:
|
|
|
96
100
|
|
|
97
101
|
**原則:** 最良のコードは、問題を解決する最小限のコード。
|
|
98
102
|
|
|
99
|
-
### 6.
|
|
103
|
+
### 6. デッドコード検出
|
|
104
|
+
|
|
105
|
+
**AIは新しいコードを追加するが、不要になったコードの削除を忘れることが多い。**
|
|
106
|
+
|
|
107
|
+
| パターン | 例 |
|
|
108
|
+
|---------|-----|
|
|
109
|
+
| 未使用の関数・メソッド | リファクタリング後に残った旧実装 |
|
|
110
|
+
| 未使用の変数・定数 | 条件変更で不要になった定義 |
|
|
111
|
+
| 到達不能コード | 早期returnの後に残った処理、常に真/偽になる条件分岐 |
|
|
112
|
+
| 未使用のインポート・依存 | 削除された機能のimport文やパッケージ依存 |
|
|
113
|
+
| 孤立したエクスポート・公開API | 実体が消えたのにre-exportやindex登録が残っている |
|
|
114
|
+
| 未使用のインターフェース・型定義 | 実装側が変更されたのに残った古い型 |
|
|
115
|
+
| 無効化されたコード | コメントアウトされたまま放置されたコード |
|
|
116
|
+
|
|
117
|
+
**検証アプローチ:**
|
|
118
|
+
1. 変更・削除されたコードを参照している箇所がないか grep で確認
|
|
119
|
+
2. 公開モジュール(index ファイル等)のエクスポート一覧と実体が一致しているか確認
|
|
120
|
+
3. 新規追加されたコードに対応する古いコードが残っていないか確認
|
|
121
|
+
|
|
122
|
+
### 7. 決定トレーサビリティレビュー
|
|
100
123
|
|
|
101
124
|
**Coderの決定ログが妥当か検証する。**
|
|
102
125
|
|
|
@@ -384,7 +384,40 @@ function createOrder(data: OrderData) {
|
|
|
384
384
|
- 3回の重複 → 即抽出
|
|
385
385
|
- ドメインが異なる重複 → 抽象化しない(例: 顧客用バリデーションと管理者用バリデーションは別物)
|
|
386
386
|
|
|
387
|
-
### 8.
|
|
387
|
+
### 8. 呼び出しチェーン検証
|
|
388
|
+
|
|
389
|
+
**新しいパラメータ・フィールドが追加された場合、変更ファイル内だけでなく呼び出し元も検証する。**
|
|
390
|
+
|
|
391
|
+
**検証手順:**
|
|
392
|
+
1. 新しいオプショナルパラメータや interface フィールドを見つけたら、`Grep` で全呼び出し元を検索
|
|
393
|
+
2. 全呼び出し元が新しいパラメータを渡しているか確認
|
|
394
|
+
3. フォールバック値(`?? default`)がある場合、フォールバックが使われるケースが意図通りか確認
|
|
395
|
+
|
|
396
|
+
**危険パターン:**
|
|
397
|
+
|
|
398
|
+
| パターン | 問題 | 検出方法 |
|
|
399
|
+
|---------|------|---------|
|
|
400
|
+
| `options.xxx ?? fallback` で全呼び出し元が `xxx` を省略 | 機能が実装されているのに常にフォールバック | grep で呼び出し元を確認 |
|
|
401
|
+
| テストがモックで直接値をセット | 実際の呼び出しチェーンを経由しない | テストの構築方法を確認 |
|
|
402
|
+
| `executeXxx()` が内部で使う `options` を引数で受け取らない | 上位から値を渡す口がない | 関数シグネチャを確認 |
|
|
403
|
+
|
|
404
|
+
**具体例:**
|
|
405
|
+
|
|
406
|
+
```typescript
|
|
407
|
+
// ❌ 配線漏れ: projectCwd を受け取る口がない
|
|
408
|
+
export async function executeWorkflow(config, cwd, task) {
|
|
409
|
+
const engine = new WorkflowEngine(config, cwd, task); // options なし
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
// ✅ 配線済み: projectCwd を渡せる
|
|
413
|
+
export async function executeWorkflow(config, cwd, task, options?) {
|
|
414
|
+
const engine = new WorkflowEngine(config, cwd, task, options);
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
**このパターンを見つけたら REJECT。** 個々のファイルが正しくても、結合されていなければ機能しない。
|
|
419
|
+
|
|
420
|
+
### 9. 品質特性
|
|
388
421
|
|
|
389
422
|
| 特性 | 確認観点 |
|
|
390
423
|
|------|---------|
|
|
@@ -392,7 +425,7 @@ function createOrder(data: OrderData) {
|
|
|
392
425
|
| Maintainability | 変更・修正が容易か |
|
|
393
426
|
| Observability | ログ・監視が可能な設計か |
|
|
394
427
|
|
|
395
|
-
###
|
|
428
|
+
### 10. 大局観
|
|
396
429
|
|
|
397
430
|
**注意**: 細かい「クリーンコード」の指摘に終始しない。
|
|
398
431
|
|
|
@@ -403,7 +436,7 @@ function createOrder(data: OrderData) {
|
|
|
403
436
|
- ビジネス要件と整合しているか
|
|
404
437
|
- 命名がドメインと一貫しているか
|
|
405
438
|
|
|
406
|
-
###
|
|
439
|
+
### 11. 変更スコープの評価
|
|
407
440
|
|
|
408
441
|
**変更スコープを確認し、レポートに記載する(ブロッキングではない)。**
|
|
409
442
|
|
|
@@ -422,7 +455,7 @@ function createOrder(data: OrderData) {
|
|
|
422
455
|
**提案として記載すること(ブロッキングではない):**
|
|
423
456
|
- 分割可能な場合は分割案を提示
|
|
424
457
|
|
|
425
|
-
###
|
|
458
|
+
### 12. 堂々巡りの検出
|
|
426
459
|
|
|
427
460
|
レビュー回数が渡される場合(例: 「レビュー回数: 3回目」)、回数に応じて判断を変える。
|
|
428
461
|
|
|
@@ -39,6 +39,7 @@ steps:
|
|
|
39
39
|
| 状況 | 判定 |
|
|
40
40
|
|------|------|
|
|
41
41
|
| 要件が明確で実装可能 | DONE |
|
|
42
|
+
| ユーザーが質問をしている(実装タスクではない) | ANSWER |
|
|
42
43
|
| 要件が不明確、情報不足 | BLOCKED |
|
|
43
44
|
|
|
44
45
|
## 出力フォーマット
|
|
@@ -46,6 +47,7 @@ steps:
|
|
|
46
47
|
| 状況 | タグ |
|
|
47
48
|
|------|------|
|
|
48
49
|
| 分析完了 | `[PLANNER:DONE]` |
|
|
50
|
+
| 質問への回答 | `[PLANNER:ANSWER]` |
|
|
49
51
|
| 情報不足 | `[PLANNER:BLOCKED]` |
|
|
50
52
|
|
|
51
53
|
### 出力例
|
|
@@ -55,6 +57,13 @@ steps:
|
|
|
55
57
|
[PLANNER:DONE]
|
|
56
58
|
```
|
|
57
59
|
|
|
60
|
+
**ANSWER の場合:**
|
|
61
|
+
```
|
|
62
|
+
{質問への回答}
|
|
63
|
+
|
|
64
|
+
[PLANNER:ANSWER]
|
|
65
|
+
```
|
|
66
|
+
|
|
58
67
|
**BLOCKED の場合:**
|
|
59
68
|
```
|
|
60
69
|
[PLANNER:BLOCKED]
|
|
@@ -80,10 +89,15 @@ steps:
|
|
|
80
89
|
## Instructions
|
|
81
90
|
タスクを分析し、実装方針を立ててください。
|
|
82
91
|
|
|
92
|
+
**判断基準:**
|
|
93
|
+
- ユーザーの入力が実装タスクの場合 → 計画を立てて `[PLANNER:DONE]`
|
|
94
|
+
- ユーザーの入力が質問の場合 → 調査・回答して `[PLANNER:ANSWER]`
|
|
95
|
+
- 情報不足の場合 → `[PLANNER:BLOCKED]`
|
|
96
|
+
|
|
83
97
|
**注意:** Previous Responseがある場合は差し戻しのため、
|
|
84
98
|
その内容を踏まえて計画を見直してください(replan)。
|
|
85
99
|
|
|
86
|
-
|
|
100
|
+
**やること(実装タスクの場合):**
|
|
87
101
|
1. タスクの要件を理解する
|
|
88
102
|
2. 影響範囲を特定する
|
|
89
103
|
3. 実装アプローチを決める
|
|
@@ -117,6 +131,8 @@ steps:
|
|
|
117
131
|
transitions:
|
|
118
132
|
- condition: done
|
|
119
133
|
next_step: implement
|
|
134
|
+
- condition: answer
|
|
135
|
+
next_step: COMPLETE
|
|
120
136
|
- condition: blocked
|
|
121
137
|
next_step: ABORT
|
|
122
138
|
|
|
@@ -131,6 +147,7 @@ steps:
|
|
|
131
147
|
- Bash
|
|
132
148
|
- WebSearch
|
|
133
149
|
- WebFetch
|
|
150
|
+
permission_mode: acceptEdits
|
|
134
151
|
status_rules_prompt: |
|
|
135
152
|
# ⚠️ 必須: ステータス出力ルール ⚠️
|
|
136
153
|
|
|
@@ -319,7 +336,9 @@ steps:
|
|
|
319
336
|
- 構造・設計の妥当性
|
|
320
337
|
- コード品質
|
|
321
338
|
- 変更スコープの適切性
|
|
322
|
-
-
|
|
339
|
+
- テストカバレッジ
|
|
340
|
+
- デッドコード
|
|
341
|
+
- 呼び出しチェーン検証
|
|
323
342
|
|
|
324
343
|
**レポート出力:** 上記の `Report File` に出力してください。
|
|
325
344
|
- ファイルが存在しない場合: 新規作成
|
|
@@ -339,6 +358,8 @@ steps:
|
|
|
339
358
|
- [x] コード品質
|
|
340
359
|
- [x] 変更スコープ
|
|
341
360
|
- [x] テストカバレッジ
|
|
361
|
+
- [x] デッドコード
|
|
362
|
+
- [x] 呼び出しチェーン検証
|
|
342
363
|
|
|
343
364
|
## 問題点(REJECTの場合)
|
|
344
365
|
| # | 場所 | 問題 | 修正案 |
|
|
@@ -372,6 +393,7 @@ steps:
|
|
|
372
393
|
- Bash
|
|
373
394
|
- WebSearch
|
|
374
395
|
- WebFetch
|
|
396
|
+
permission_mode: acceptEdits
|
|
375
397
|
status_rules_prompt: |
|
|
376
398
|
# ⚠️ 必須: ステータス出力ルール ⚠️
|
|
377
399
|
|
|
@@ -556,6 +578,7 @@ steps:
|
|
|
556
578
|
- Bash
|
|
557
579
|
- WebSearch
|
|
558
580
|
- WebFetch
|
|
581
|
+
permission_mode: acceptEdits
|
|
559
582
|
status_rules_prompt: |
|
|
560
583
|
# ⚠️ 必須: ステータス出力ルール ⚠️
|
|
561
584
|
|
|
@@ -737,6 +760,7 @@ steps:
|
|
|
737
760
|
- Bash
|
|
738
761
|
- WebSearch
|
|
739
762
|
- WebFetch
|
|
763
|
+
permission_mode: acceptEdits
|
|
740
764
|
status_rules_prompt: |
|
|
741
765
|
# ⚠️ 必須: ステータス出力ルール ⚠️
|
|
742
766
|
|
|
@@ -805,6 +829,7 @@ steps:
|
|
|
805
829
|
- Bash
|
|
806
830
|
- WebSearch
|
|
807
831
|
- WebFetch
|
|
832
|
+
permission_mode: acceptEdits
|
|
808
833
|
status_rules_prompt: |
|
|
809
834
|
# ⚠️ 必須: ステータス出力ルール ⚠️
|
|
810
835
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
# CQRS+ES、フロントエンド、セキュリティ、QAの専門家によるレビューワークフロー
|
|
3
3
|
#
|
|
4
4
|
# フロー:
|
|
5
|
-
# plan -> implement -> cqrs_es_review -> frontend_review -> ai_review -> security_review -> qa_review -> supervise -> COMPLETE
|
|
6
|
-
# ↓ ↓ ↓ ↓ ↓ ↓
|
|
7
|
-
# fix_cqrs_es fix_frontend ai_fix fix_security fix_qa fix_supervisor
|
|
5
|
+
# plan -> implement -> architect_review -> cqrs_es_review -> frontend_review -> ai_review -> security_review -> qa_review -> supervise -> COMPLETE
|
|
6
|
+
# ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
7
|
+
# fix_architect fix_cqrs_es fix_frontend ai_fix fix_security fix_qa fix_supervisor
|
|
8
8
|
#
|
|
9
9
|
# 修正時の戻り先はCoderが判断:
|
|
10
10
|
# - fix_security: MINOR→security_review, MAJOR→cqrs_es_review
|
|
@@ -196,12 +196,169 @@ steps:
|
|
|
196
196
|
進行できない場合は [CODER:BLOCKED] を出力し、planに戻ります。
|
|
197
197
|
transitions:
|
|
198
198
|
- condition: done
|
|
199
|
+
next_step: architect_review
|
|
200
|
+
- condition: blocked
|
|
201
|
+
next_step: plan
|
|
202
|
+
|
|
203
|
+
# ===========================================
|
|
204
|
+
# Phase 2: Architecture Review
|
|
205
|
+
# ===========================================
|
|
206
|
+
- name: architect_review
|
|
207
|
+
agent: ~/.takt/agents/default/architect.md
|
|
208
|
+
allowed_tools:
|
|
209
|
+
- Read
|
|
210
|
+
- Glob
|
|
211
|
+
- Grep
|
|
212
|
+
- WebSearch
|
|
213
|
+
- WebFetch
|
|
214
|
+
status_rules_prompt: |
|
|
215
|
+
# ⚠️ 必須: ステータス出力ルール ⚠️
|
|
216
|
+
|
|
217
|
+
**このタグがないとワークフローが停止します。**
|
|
218
|
+
最終出力には必ず以下のルールに従ったステータスタグを含めてください。
|
|
219
|
+
|
|
220
|
+
## 判定基準
|
|
221
|
+
|
|
222
|
+
| 状況 | 判定 |
|
|
223
|
+
|------|------|
|
|
224
|
+
| 構造に問題がある | REJECT |
|
|
225
|
+
| 設計原則違反がある | REJECT |
|
|
226
|
+
| 呼び出しチェーンの配線漏れ | REJECT |
|
|
227
|
+
| テストが不十分 | REJECT |
|
|
228
|
+
| 改善すべき点がある(軽微) | IMPROVE |
|
|
229
|
+
| 問題なし | APPROVE |
|
|
230
|
+
|
|
231
|
+
## 出力フォーマット
|
|
232
|
+
|
|
233
|
+
| 状況 | タグ |
|
|
234
|
+
|------|------|
|
|
235
|
+
| 問題なし | `[ARCHITECT:APPROVE]` |
|
|
236
|
+
| 軽微な改善必要 | `[ARCHITECT:IMPROVE]` |
|
|
237
|
+
| 構造的な修正必要 | `[ARCHITECT:REJECT]` |
|
|
238
|
+
instruction_template: |
|
|
239
|
+
## Workflow Context
|
|
240
|
+
- Iteration: {iteration}/{max_iterations}(ワークフロー全体)
|
|
241
|
+
- Step Iteration: {step_iteration}(このステップの実行回数)
|
|
242
|
+
- Step: architect_review (アーキテクチャレビュー)
|
|
243
|
+
- Report Directory: .takt/reports/{report_dir}/
|
|
244
|
+
- Report File: .takt/reports/{report_dir}/03-architect-review.md
|
|
245
|
+
|
|
246
|
+
## Original User Request (ワークフロー開始時の元の要求)
|
|
247
|
+
{task}
|
|
248
|
+
|
|
249
|
+
## Git Diff
|
|
250
|
+
```diff
|
|
251
|
+
{git_diff}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Instructions
|
|
255
|
+
**アーキテクチャと設計**のレビューに集中してください。
|
|
256
|
+
|
|
257
|
+
**レビュー観点:**
|
|
258
|
+
- 構造・設計の妥当性
|
|
259
|
+
- コード品質
|
|
260
|
+
- 変更スコープの適切性
|
|
261
|
+
- テストカバレッジ
|
|
262
|
+
- デッドコード
|
|
263
|
+
- 呼び出しチェーン検証
|
|
264
|
+
|
|
265
|
+
**レポート出力:** 上記の `Report File` に出力してください。
|
|
266
|
+
- ファイルが存在しない場合: 新規作成
|
|
267
|
+
- ファイルが存在する場合: `## Iteration {step_iteration}` セクションを追記
|
|
268
|
+
|
|
269
|
+
**レポートフォーマット:**
|
|
270
|
+
```markdown
|
|
271
|
+
# アーキテクチャレビュー
|
|
272
|
+
|
|
273
|
+
## 結果: APPROVE / IMPROVE / REJECT
|
|
274
|
+
|
|
275
|
+
## サマリー
|
|
276
|
+
{1-2文で結果を要約}
|
|
277
|
+
|
|
278
|
+
## 確認した観点
|
|
279
|
+
- [x] 構造・設計
|
|
280
|
+
- [x] コード品質
|
|
281
|
+
- [x] 変更スコープ
|
|
282
|
+
- [x] テストカバレッジ
|
|
283
|
+
- [x] デッドコード
|
|
284
|
+
- [x] 呼び出しチェーン検証
|
|
285
|
+
|
|
286
|
+
## 問題点(REJECTの場合)
|
|
287
|
+
| # | 場所 | 問題 | 修正案 |
|
|
288
|
+
|---|------|------|--------|
|
|
289
|
+
| 1 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
|
290
|
+
|
|
291
|
+
## 改善提案(任意・ブロッキングではない)
|
|
292
|
+
- {将来的な改善提案}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**認知負荷軽減ルール:**
|
|
296
|
+
- APPROVE + 問題なし → サマリーのみ(5行以内)
|
|
297
|
+
- APPROVE + 軽微な提案 → サマリー + 改善提案(15行以内)
|
|
298
|
+
- REJECT → 問題点を表形式で(30行以内)
|
|
299
|
+
transitions:
|
|
300
|
+
- condition: approved
|
|
199
301
|
next_step: cqrs_es_review
|
|
302
|
+
- condition: improve
|
|
303
|
+
next_step: fix_architect
|
|
304
|
+
- condition: rejected
|
|
305
|
+
next_step: fix_architect
|
|
306
|
+
|
|
307
|
+
- name: fix_architect
|
|
308
|
+
agent: ~/.takt/agents/default/coder.md
|
|
309
|
+
allowed_tools:
|
|
310
|
+
- Read
|
|
311
|
+
- Glob
|
|
312
|
+
- Grep
|
|
313
|
+
- Edit
|
|
314
|
+
- Write
|
|
315
|
+
- Bash
|
|
316
|
+
- WebSearch
|
|
317
|
+
- WebFetch
|
|
318
|
+
permission_mode: acceptEdits
|
|
319
|
+
status_rules_prompt: |
|
|
320
|
+
# ⚠️ 必須: ステータス出力ルール ⚠️
|
|
321
|
+
|
|
322
|
+
**このタグがないとワークフローが停止します。**
|
|
323
|
+
最終出力には必ず以下のルールに従ったステータスタグを含めてください。
|
|
324
|
+
|
|
325
|
+
## 出力フォーマット
|
|
326
|
+
|
|
327
|
+
| 状況 | タグ |
|
|
328
|
+
|------|------|
|
|
329
|
+
| 修正完了 | `[CODER:DONE]` |
|
|
330
|
+
| 進行不可 | `[CODER:BLOCKED]` |
|
|
331
|
+
instruction_template: |
|
|
332
|
+
## Workflow Context
|
|
333
|
+
- Iteration: {iteration}/{max_iterations}(ワークフロー全体)
|
|
334
|
+
- Step Iteration: {step_iteration}(このステップの実行回数)
|
|
335
|
+
- Step: fix_architect
|
|
336
|
+
|
|
337
|
+
## Architect Feedback (これが最新の指示です - 優先して対応してください)
|
|
338
|
+
{previous_response}
|
|
339
|
+
|
|
340
|
+
## Original User Request (ワークフロー開始時の元の要求 - 参考情報)
|
|
341
|
+
{task}
|
|
342
|
+
|
|
343
|
+
## Additional User Inputs
|
|
344
|
+
{user_inputs}
|
|
345
|
+
|
|
346
|
+
## Instructions
|
|
347
|
+
**重要**: Architectのフィードバックに対応してください。
|
|
348
|
+
「Original User Request」は参考情報であり、最新の指示ではありません。
|
|
349
|
+
セッションの会話履歴を確認し、Architectの指摘事項を修正してください。
|
|
350
|
+
|
|
351
|
+
完了時は [CODER:DONE] を含めてください。
|
|
352
|
+
進行できない場合は [CODER:BLOCKED] を含めてください。
|
|
353
|
+
pass_previous_response: true
|
|
354
|
+
transitions:
|
|
355
|
+
- condition: done
|
|
356
|
+
next_step: architect_review
|
|
200
357
|
- condition: blocked
|
|
201
358
|
next_step: plan
|
|
202
359
|
|
|
203
360
|
# ===========================================
|
|
204
|
-
# Phase
|
|
361
|
+
# Phase 3: CQRS+ES Review
|
|
205
362
|
# ===========================================
|
|
206
363
|
- name: cqrs_es_review
|
|
207
364
|
agent: ~/.takt/agents/expert-review/cqrs-es-reviewer.md
|
|
@@ -229,7 +386,7 @@ steps:
|
|
|
229
386
|
- Step Iteration: {step_iteration}(このステップの実行回数)
|
|
230
387
|
- Step: cqrs_es_review (CQRS+ES専門レビュー)
|
|
231
388
|
- Report Directory: .takt/reports/{report_dir}/
|
|
232
|
-
- Report File: .takt/reports/{report_dir}/
|
|
389
|
+
- Report File: .takt/reports/{report_dir}/04-cqrs-es-review.md
|
|
233
390
|
|
|
234
391
|
## Original User Request
|
|
235
392
|
{task}
|
|
@@ -376,7 +533,7 @@ steps:
|
|
|
376
533
|
- Step Iteration: {step_iteration}(このステップの実行回数)
|
|
377
534
|
- Step: frontend_review (フロントエンド専門レビュー)
|
|
378
535
|
- Report Directory: .takt/reports/{report_dir}/
|
|
379
|
-
- Report File: .takt/reports/{report_dir}/
|
|
536
|
+
- Report File: .takt/reports/{report_dir}/05-frontend-review.md
|
|
380
537
|
|
|
381
538
|
## Original User Request
|
|
382
539
|
{task}
|
|
@@ -523,7 +680,7 @@ steps:
|
|
|
523
680
|
- Step Iteration: {step_iteration}(このステップの実行回数)
|
|
524
681
|
- Step: ai_review (AI生成コードレビュー)
|
|
525
682
|
- Report Directory: .takt/reports/{report_dir}/
|
|
526
|
-
- Report File: .takt/reports/{report_dir}/
|
|
683
|
+
- Report File: .takt/reports/{report_dir}/06-ai-review.md
|
|
527
684
|
|
|
528
685
|
## Original User Request (ワークフロー開始時の元の要求)
|
|
529
686
|
{task}
|
|
@@ -664,7 +821,7 @@ steps:
|
|
|
664
821
|
- Step Iteration: {step_iteration}(このステップの実行回数)
|
|
665
822
|
- Step: security_review (セキュリティ専門レビュー)
|
|
666
823
|
- Report Directory: .takt/reports/{report_dir}/
|
|
667
|
-
- Report File: .takt/reports/{report_dir}/
|
|
824
|
+
- Report File: .takt/reports/{report_dir}/07-security-review.md
|
|
668
825
|
|
|
669
826
|
## Original User Request
|
|
670
827
|
{task}
|
|
@@ -818,7 +975,7 @@ steps:
|
|
|
818
975
|
- Step Iteration: {step_iteration}(このステップの実行回数)
|
|
819
976
|
- Step: qa_review (QA専門レビュー)
|
|
820
977
|
- Report Directory: .takt/reports/{report_dir}/
|
|
821
|
-
- Report File: .takt/reports/{report_dir}/
|
|
978
|
+
- Report File: .takt/reports/{report_dir}/08-qa-review.md
|
|
822
979
|
|
|
823
980
|
## Original User Request
|
|
824
981
|
{task}
|
|
@@ -978,7 +1135,7 @@ steps:
|
|
|
978
1135
|
- Step: supervise (最終確認)
|
|
979
1136
|
- Report Directory: .takt/reports/{report_dir}/
|
|
980
1137
|
- Report Files:
|
|
981
|
-
- Validation: .takt/reports/{report_dir}/
|
|
1138
|
+
- Validation: .takt/reports/{report_dir}/09-supervisor-validation.md
|
|
982
1139
|
- Summary: .takt/reports/{report_dir}/summary.md
|
|
983
1140
|
|
|
984
1141
|
## Original User Request
|
|
@@ -991,6 +1148,7 @@ steps:
|
|
|
991
1148
|
|
|
992
1149
|
## Previous Reviews Summary
|
|
993
1150
|
このステップに到達したということは、以下のレビューがすべてAPPROVEされています:
|
|
1151
|
+
- Architecture Review: APPROVED
|
|
994
1152
|
- CQRS+ES Review: APPROVED
|
|
995
1153
|
- Frontend Review: APPROVED
|
|
996
1154
|
- AI Review: APPROVED
|
|
@@ -1054,6 +1212,7 @@ steps:
|
|
|
1054
1212
|
## レビュー結果
|
|
1055
1213
|
| レビュー | 結果 |
|
|
1056
1214
|
|---------|------|
|
|
1215
|
+
| Architecture | ✅ APPROVE |
|
|
1057
1216
|
| CQRS+ES | ✅ APPROVE |
|
|
1058
1217
|
| Frontend | ✅ APPROVE |
|
|
1059
1218
|
| AI Review | ✅ APPROVE |
|