agestra 4.3.4 → 4.4.0
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/.claude-plugin/marketplace.json +40 -27
- package/.claude-plugin/plugin.json +13 -1
- package/README.ja.md +328 -0
- package/README.ko.md +19 -18
- package/README.md +19 -18
- package/README.zh.md +328 -0
- package/agents/agestra-moderator.md +49 -32
- package/commands/design.md +33 -11
- package/commands/idea.md +33 -11
- package/commands/review.md +73 -19
- package/dist/bundle.js +185 -155
- package/hooks/user-prompt-submit.js +70 -0
- package/package.json +13 -10
- package/skills/design.md +76 -7
- package/skills/idea.md +77 -9
- package/skills/review.md +133 -0
- package/hooks/user-prompt-submit.md +0 -11
package/commands/review.md
CHANGED
|
@@ -7,55 +7,108 @@ You are executing the `/agestra review` command.
|
|
|
7
7
|
|
|
8
8
|
**Target:** $ARGUMENTS
|
|
9
9
|
|
|
10
|
-
## Step 1: Determine review
|
|
10
|
+
## Step 1: Determine review scope
|
|
11
11
|
|
|
12
|
-
If `$ARGUMENTS` is
|
|
13
|
-
- "What would you like to review? (file path, directory, or description)"
|
|
12
|
+
If `$ARGUMENTS` is provided, use it as the review target and skip the scope question.
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
If `$ARGUMENTS` is empty, ask the user using AskUserQuestion (in the user's language):
|
|
15
|
+
|
|
16
|
+
| Option | Description |
|
|
17
|
+
|--------|-------------|
|
|
18
|
+
| **전체 프로젝트** | 프로젝트 전체를 리뷰 |
|
|
19
|
+
| **일부 지정** | 특정 파일, 디렉토리, 또는 영역을 지정하여 리뷰 |
|
|
20
|
+
|
|
21
|
+
- If **"전체 프로젝트"**: set target to the project root.
|
|
22
|
+
- If **"일부 지정"**: ask a follow-up "What would you like to review? (file path, directory, or description)" and use the answer as the target.
|
|
23
|
+
|
|
24
|
+
## Step 2: Choose review focus areas
|
|
25
|
+
|
|
26
|
+
Ask the user what to focus on using AskUserQuestion with **multiSelect: true** (in the user's language):
|
|
27
|
+
|
|
28
|
+
| Option | Description |
|
|
29
|
+
|--------|-------------|
|
|
30
|
+
| **전체 점검** | 아래 모든 항목을 점검 |
|
|
31
|
+
| **보안 취약점** | OWASP top 10 (인젝션, 인증, XSS 등) |
|
|
32
|
+
| **하드코딩** | 매직넘버, 하드코딩된 URL, 임베디드 자격증명 |
|
|
33
|
+
| **중복 코드** | 반복되는 로직, 복사-붙여넣기 코드 |
|
|
34
|
+
| **레거시 코드** | 더 이상 사용되지 않는 코드, 고아 시스템, 데드 코드 |
|
|
35
|
+
| **스파게티 코드** | 과도한 복잡성, 긴 함수, 깊은 중첩, 얽힌 의존성 |
|
|
36
|
+
| **테스트 커버리지** | 테스트 없는 공개 함수, 엣지케이스 미커버 |
|
|
37
|
+
| **i18n** | 번역 함수 없이 하드코딩된 UI 문자열 (i18n 시스템이 있는 경우만) |
|
|
38
|
+
| **스펙 불일치** | 설계 문서와 실제 구현의 차이 |
|
|
39
|
+
|
|
40
|
+
- If **"전체 점검"** is selected: use all focus areas.
|
|
41
|
+
- If specific items are selected: use only those areas.
|
|
42
|
+
- If **"Other"**: use the user's custom focus description.
|
|
43
|
+
|
|
44
|
+
Pass the selected focus areas to all reviewers (agent and external AIs) as part of the review instructions.
|
|
45
|
+
|
|
46
|
+
## Step 3: Check environment and available providers
|
|
16
47
|
|
|
17
48
|
Call `environment_check` to determine which providers and modes are available.
|
|
18
49
|
|
|
19
50
|
If no providers are available, skip to running the `agestra-reviewer` agent directly (Claude only).
|
|
20
51
|
|
|
21
|
-
## Step
|
|
52
|
+
## Step 4: Select mode
|
|
22
53
|
|
|
23
54
|
Use AskUserQuestion to present these options (in the user's language):
|
|
24
55
|
|
|
25
56
|
| Option | Condition | Description |
|
|
26
57
|
|--------|-----------|-------------|
|
|
27
58
|
| **Claude only** | Always | 플러그인 전문 에이전트가 단독 리뷰 |
|
|
28
|
-
| **각자 독립** | 1+ provider available |
|
|
29
|
-
| **끝장토론** | 1+ provider available | 각자 독립
|
|
59
|
+
| **각자 독립** | 1+ provider available | 에이전트 팀(moderator + reviewer + 외부 AI)이 각자 독립 리뷰 후 취합 문서 작성 |
|
|
60
|
+
| **끝장토론** | 1+ provider available | 각자 독립 리뷰 후 취합 문서를 돌아가며 분석/피드백, 모두 동의할 때까지 |
|
|
30
61
|
|
|
31
62
|
Only show options whose conditions are met. If no providers are available, skip and run Claude only.
|
|
32
63
|
|
|
33
|
-
## Step
|
|
64
|
+
## Step 5: Execute based on selection
|
|
34
65
|
|
|
35
66
|
### If "Claude only":
|
|
36
|
-
Spawn the `agestra-reviewer` agent with the target
|
|
67
|
+
Spawn the `agestra-reviewer` agent with the target and selected focus areas as context.
|
|
37
68
|
|
|
38
69
|
### If "각자 독립":
|
|
70
|
+
|
|
71
|
+
**팀 구성:** `agestra-moderator` (리더) + `agestra-reviewer` (Claude) + 사용 가능한 외부 AI (gemini, codex, ollama 등)
|
|
72
|
+
|
|
39
73
|
1. In parallel:
|
|
40
74
|
- Spawn the `agestra-reviewer` agent for Claude's independent analysis.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
75
|
+
After the agent completes, save Claude's result as a document via `workspace_create_document`:
|
|
76
|
+
- **title:** `Code Review — claude/reviewer`
|
|
77
|
+
- **metadata:** `{ "Provider": "claude/reviewer", "Task": "{review target}", "Focus": "{selected focus areas}", "Mode": "Independent" }`
|
|
78
|
+
- **content:** The reviewer agent's full output.
|
|
79
|
+
- For each available provider, call `ai_chat` with `save_as_document` to let each AI produce its own document directly:
|
|
80
|
+
- **save_as_document.title:** `Code Review — {provider}`
|
|
81
|
+
- **save_as_document.metadata:** `{ "Task": "{review target}", "Focus": "{selected focus areas}", "Mode": "Independent" }`
|
|
82
|
+
- **prompt:**
|
|
83
|
+
|
|
84
|
+
> Review the following code. Focus on: [selected focus areas].
|
|
85
|
+
> For each finding, provide severity (CRITICAL/HIGH/MEDIUM/LOW), file:line location, and evidence.
|
|
86
|
+
>
|
|
87
|
+
> Target: [the review target]
|
|
88
|
+
|
|
89
|
+
2. Collect all document IDs from step 1.
|
|
46
90
|
|
|
47
|
-
2. Collect all results (Claude's reviewer output + each provider's response).
|
|
48
91
|
3. Spawn the `agestra-moderator` agent in **Independent Aggregation** mode:
|
|
49
|
-
- Pass
|
|
92
|
+
- Pass the **document ID list**.
|
|
93
|
+
- Moderator reads each document via `workspace_read`.
|
|
50
94
|
- Moderator classifies: consensus findings, unique findings, disputed points.
|
|
51
|
-
- Moderator
|
|
52
|
-
|
|
95
|
+
- Moderator creates an **aggregated document** via `workspace_create_document`.
|
|
96
|
+
|
|
97
|
+
4. Present a **summary report** to the user:
|
|
98
|
+
- Key consensus findings (1-3 lines).
|
|
99
|
+
- Notable unique findings (if any).
|
|
100
|
+
- Disputed points (if any).
|
|
101
|
+
- Individual document IDs for reference.
|
|
102
|
+
- Aggregated document ID for the full integrated analysis.
|
|
53
103
|
|
|
54
104
|
### If "끝장토론":
|
|
105
|
+
|
|
106
|
+
**팀 구성:** `agestra-moderator` (리더) + `agestra-reviewer` (Claude) + 사용 가능한 외부 AI (gemini, codex, ollama 등)
|
|
107
|
+
|
|
55
108
|
1. Execute "각자 독립" steps 1-3 above (independent work + initial aggregation).
|
|
56
109
|
- The moderator's integrated document becomes the starting document.
|
|
57
110
|
|
|
58
|
-
2. Document review rounds (max
|
|
111
|
+
2. Document review rounds (no max — until all agree):
|
|
59
112
|
a. Moderator sends the current document to each AI for review:
|
|
60
113
|
- Claude: spawn `agestra-reviewer` → analyze document → write section-by-section feedback
|
|
61
114
|
- Other providers: `agent_debate_turn` with the document as prompt, requesting agree/disagree per section
|
|
@@ -64,6 +117,7 @@ Spawn the `agestra-reviewer` agent with the target as context. The reviewer will
|
|
|
64
117
|
d. Revise document incorporating disagreement feedback.
|
|
65
118
|
e. If all providers agree on all sections → consensus reached.
|
|
66
119
|
f. If not → next round with revised document.
|
|
120
|
+
g. **Every 10 rounds:** Ask the user via AskUserQuestion whether to continue or stop with current state.
|
|
67
121
|
|
|
68
122
|
3. Present the final document:
|
|
69
123
|
- Consensus sections: marked as agreed
|