@tienne/gestalt 0.31.2 → 0.32.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/dist/package.json +1 -1
- package/dist/skills/solve/SKILL.md +180 -0
- package/package.json +1 -1
- package/skills/solve/SKILL.md +180 -0
package/dist/package.json
CHANGED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: solve
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
description: "제품 문제를 던지면 인터뷰 → 스펙 → 실행 루프를 자율로 드라이빙한다"
|
|
5
|
+
triggers:
|
|
6
|
+
- "solve"
|
|
7
|
+
- "문제 해결"
|
|
8
|
+
- "해결해줘"
|
|
9
|
+
- "루프 돌려줘"
|
|
10
|
+
inputs:
|
|
11
|
+
problem:
|
|
12
|
+
type: string
|
|
13
|
+
required: true
|
|
14
|
+
description: "해결할 제품 문제 또는 목표"
|
|
15
|
+
outputs:
|
|
16
|
+
- spec
|
|
17
|
+
- executionResult
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Solve Skill
|
|
21
|
+
|
|
22
|
+
제품 문제를 입력받아 **인터뷰 → 스펙 → 실행 루프**를 하나의 흐름으로 자율 드라이빙한다.
|
|
23
|
+
|
|
24
|
+
- **인터뷰**: 사람이 직접 답변 (큰 관점 정리 포함, 자동화하지 않음)
|
|
25
|
+
- **스펙 생성 이후**: AI가 자율로 드라이빙 — 사람 개입 없이 루프를 돌린다
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Phase 1 — Interview (사람 참여)
|
|
30
|
+
|
|
31
|
+
`ges_interview`로 인터뷰를 진행한다. interview 스킬과 동일한 규칙을 따른다.
|
|
32
|
+
|
|
33
|
+
### ⚠️ Never Self-Answer
|
|
34
|
+
|
|
35
|
+
질문을 받으면 **반드시 사람에게 물어보고 답변을 기다린다.** 절대 스스로 답하지 않는다.
|
|
36
|
+
|
|
37
|
+
### 실행
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{ "action": "start", "topic": "{problem}", "cwd": "{현재 작업 디렉토리}" }
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
→ gestaltContext의 questionPrompt로 질문을 생성해 사람에게 제시한다.
|
|
44
|
+
|
|
45
|
+
사람의 답변을 받으면:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{ "action": "respond", "sessionId": "...", "response": "{사람의 답변}", "generatedQuestion": "{생성한 질문}" }
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
→ resolutionScore.isReady === true 또는 overallScore ≥ 0.8이 될 때까지 반복한다.
|
|
52
|
+
|
|
53
|
+
완료:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{ "action": "complete", "sessionId": "..." }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 진행 패널
|
|
60
|
+
|
|
61
|
+
인터뷰 시작 시 `TaskCreate`로 패널 생성:
|
|
62
|
+
```
|
|
63
|
+
subject: "Solve: {problem 앞 40자}"
|
|
64
|
+
description: "Phase 1/3 — 인터뷰 중 | 라운드 1"
|
|
65
|
+
activeForm: "인터뷰 진행 중"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
각 라운드 후 `TaskUpdate`:
|
|
69
|
+
```
|
|
70
|
+
description: "Phase 1/3 — 인터뷰 중 | 라운드 {N} | 해상도: {score}"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
완료 시:
|
|
74
|
+
```
|
|
75
|
+
description: "Phase 1/3 — 인터뷰 완료 | 해상도: {finalScore}"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Phase 2 — Spec 생성 (자율)
|
|
81
|
+
|
|
82
|
+
인터뷰 완료 직후 자동으로 스펙을 생성한다. 사람에게 묻지 않는다.
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{ "sessionId": "..." }
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
(`ges_generate_spec` MCP 도구 호출)
|
|
89
|
+
|
|
90
|
+
→ spec 객체를 받아 다음 단계로 전달한다.
|
|
91
|
+
|
|
92
|
+
### 진행 패널 업데이트
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
description: "Phase 2/3 — 스펙 생성 중"
|
|
96
|
+
activeForm: "스펙 생성 중..."
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
완료 시:
|
|
100
|
+
```
|
|
101
|
+
description: "Phase 2/3 — 스펙 완료 | AC {N}개"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Phase 3 — Execute 루프 (자율)
|
|
107
|
+
|
|
108
|
+
스펙을 받아 실행 → 평가 → 개선 루프를 자율로 드라이빙한다. **사람 개입 없이 루프를 돈다.**
|
|
109
|
+
|
|
110
|
+
execute 스킬의 전체 파이프라인(Planning → Execution → Evaluate → Evolve)을 그대로 따른다. 단, 각 단계 사이에서 사람에게 확인을 구하지 않는다.
|
|
111
|
+
|
|
112
|
+
### 진행 패널 업데이트
|
|
113
|
+
|
|
114
|
+
Execute 시작 시:
|
|
115
|
+
```
|
|
116
|
+
description: "Phase 3/3 — 실행 루프 시작"
|
|
117
|
+
activeForm: "계획 수립 중..."
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
루프를 돌 때마다:
|
|
121
|
+
```
|
|
122
|
+
description: "Phase 3/3 — Generation {N} | 점수: {score}"
|
|
123
|
+
activeForm: "{현재 단계: 실행 중 / 평가 중 / 개선 중}"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 종료 조건
|
|
127
|
+
|
|
128
|
+
| 조건 | 대응 |
|
|
129
|
+
|------|------|
|
|
130
|
+
| `success` (score ≥ 0.85, goalAlignment ≥ 0.80) | 루프 종료 → 완료 보고 |
|
|
131
|
+
| `human_escalation` (lateral 4개 소진) | 루프 종료 → 막힌 지점과 시도한 접근법 보고 |
|
|
132
|
+
| `caller` (사용자가 명시적으로 중단) | 즉시 종료 |
|
|
133
|
+
|
|
134
|
+
### 완료 보고
|
|
135
|
+
|
|
136
|
+
루프 종료 시 사람에게 결과를 보고한다:
|
|
137
|
+
|
|
138
|
+
**성공 시:**
|
|
139
|
+
- 달성한 AC 목록
|
|
140
|
+
- 최종 점수 (overallScore, goalAlignment)
|
|
141
|
+
- 생성된 아티팩트 목록
|
|
142
|
+
|
|
143
|
+
**에스컬레이션 시:**
|
|
144
|
+
- 막힌 지점
|
|
145
|
+
- 시도한 Lateral Persona 목록
|
|
146
|
+
- 현재까지의 최고 점수
|
|
147
|
+
- 사람이 힌트를 줄 수 있는 포인트 제시
|
|
148
|
+
|
|
149
|
+
### 진행 패널 최종 업데이트
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
status: "completed"
|
|
153
|
+
description: "완료 | score: {overallScore} | alignment: {goalAlignment} | generation: {N}"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
에스컬레이션 시:
|
|
157
|
+
```
|
|
158
|
+
status: "completed"
|
|
159
|
+
description: "에스컬레이션 | 최고 점수: {bestScore} | {시도한 persona 목록}"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 전체 흐름 요약
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
/solve "제품 문제"
|
|
168
|
+
↓
|
|
169
|
+
[Phase 1] 인터뷰 — 사람이 답변, 해상도 ≥ 0.8까지
|
|
170
|
+
↓ 자동
|
|
171
|
+
[Phase 2] 스펙 생성 — AI 자율
|
|
172
|
+
↓ 자동
|
|
173
|
+
[Phase 3] 실행 루프 — AI 자율
|
|
174
|
+
execute → evaluate → evolve → re-execute → evaluate → ...
|
|
175
|
+
↓
|
|
176
|
+
success → 완료 보고
|
|
177
|
+
human_escalation → 막힌 지점 보고
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
인터뷰에서 사람과 큰 관점을 충분히 정리한 뒤, 그 이후는 AI가 목표를 향해 스스로 루프를 돈다.
|
package/package.json
CHANGED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: solve
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
description: "제품 문제를 던지면 인터뷰 → 스펙 → 실행 루프를 자율로 드라이빙한다"
|
|
5
|
+
triggers:
|
|
6
|
+
- "solve"
|
|
7
|
+
- "문제 해결"
|
|
8
|
+
- "해결해줘"
|
|
9
|
+
- "루프 돌려줘"
|
|
10
|
+
inputs:
|
|
11
|
+
problem:
|
|
12
|
+
type: string
|
|
13
|
+
required: true
|
|
14
|
+
description: "해결할 제품 문제 또는 목표"
|
|
15
|
+
outputs:
|
|
16
|
+
- spec
|
|
17
|
+
- executionResult
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Solve Skill
|
|
21
|
+
|
|
22
|
+
제품 문제를 입력받아 **인터뷰 → 스펙 → 실행 루프**를 하나의 흐름으로 자율 드라이빙한다.
|
|
23
|
+
|
|
24
|
+
- **인터뷰**: 사람이 직접 답변 (큰 관점 정리 포함, 자동화하지 않음)
|
|
25
|
+
- **스펙 생성 이후**: AI가 자율로 드라이빙 — 사람 개입 없이 루프를 돌린다
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Phase 1 — Interview (사람 참여)
|
|
30
|
+
|
|
31
|
+
`ges_interview`로 인터뷰를 진행한다. interview 스킬과 동일한 규칙을 따른다.
|
|
32
|
+
|
|
33
|
+
### ⚠️ Never Self-Answer
|
|
34
|
+
|
|
35
|
+
질문을 받으면 **반드시 사람에게 물어보고 답변을 기다린다.** 절대 스스로 답하지 않는다.
|
|
36
|
+
|
|
37
|
+
### 실행
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{ "action": "start", "topic": "{problem}", "cwd": "{현재 작업 디렉토리}" }
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
→ gestaltContext의 questionPrompt로 질문을 생성해 사람에게 제시한다.
|
|
44
|
+
|
|
45
|
+
사람의 답변을 받으면:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{ "action": "respond", "sessionId": "...", "response": "{사람의 답변}", "generatedQuestion": "{생성한 질문}" }
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
→ resolutionScore.isReady === true 또는 overallScore ≥ 0.8이 될 때까지 반복한다.
|
|
52
|
+
|
|
53
|
+
완료:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{ "action": "complete", "sessionId": "..." }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 진행 패널
|
|
60
|
+
|
|
61
|
+
인터뷰 시작 시 `TaskCreate`로 패널 생성:
|
|
62
|
+
```
|
|
63
|
+
subject: "Solve: {problem 앞 40자}"
|
|
64
|
+
description: "Phase 1/3 — 인터뷰 중 | 라운드 1"
|
|
65
|
+
activeForm: "인터뷰 진행 중"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
각 라운드 후 `TaskUpdate`:
|
|
69
|
+
```
|
|
70
|
+
description: "Phase 1/3 — 인터뷰 중 | 라운드 {N} | 해상도: {score}"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
완료 시:
|
|
74
|
+
```
|
|
75
|
+
description: "Phase 1/3 — 인터뷰 완료 | 해상도: {finalScore}"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Phase 2 — Spec 생성 (자율)
|
|
81
|
+
|
|
82
|
+
인터뷰 완료 직후 자동으로 스펙을 생성한다. 사람에게 묻지 않는다.
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{ "sessionId": "..." }
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
(`ges_generate_spec` MCP 도구 호출)
|
|
89
|
+
|
|
90
|
+
→ spec 객체를 받아 다음 단계로 전달한다.
|
|
91
|
+
|
|
92
|
+
### 진행 패널 업데이트
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
description: "Phase 2/3 — 스펙 생성 중"
|
|
96
|
+
activeForm: "스펙 생성 중..."
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
완료 시:
|
|
100
|
+
```
|
|
101
|
+
description: "Phase 2/3 — 스펙 완료 | AC {N}개"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Phase 3 — Execute 루프 (자율)
|
|
107
|
+
|
|
108
|
+
스펙을 받아 실행 → 평가 → 개선 루프를 자율로 드라이빙한다. **사람 개입 없이 루프를 돈다.**
|
|
109
|
+
|
|
110
|
+
execute 스킬의 전체 파이프라인(Planning → Execution → Evaluate → Evolve)을 그대로 따른다. 단, 각 단계 사이에서 사람에게 확인을 구하지 않는다.
|
|
111
|
+
|
|
112
|
+
### 진행 패널 업데이트
|
|
113
|
+
|
|
114
|
+
Execute 시작 시:
|
|
115
|
+
```
|
|
116
|
+
description: "Phase 3/3 — 실행 루프 시작"
|
|
117
|
+
activeForm: "계획 수립 중..."
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
루프를 돌 때마다:
|
|
121
|
+
```
|
|
122
|
+
description: "Phase 3/3 — Generation {N} | 점수: {score}"
|
|
123
|
+
activeForm: "{현재 단계: 실행 중 / 평가 중 / 개선 중}"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 종료 조건
|
|
127
|
+
|
|
128
|
+
| 조건 | 대응 |
|
|
129
|
+
|------|------|
|
|
130
|
+
| `success` (score ≥ 0.85, goalAlignment ≥ 0.80) | 루프 종료 → 완료 보고 |
|
|
131
|
+
| `human_escalation` (lateral 4개 소진) | 루프 종료 → 막힌 지점과 시도한 접근법 보고 |
|
|
132
|
+
| `caller` (사용자가 명시적으로 중단) | 즉시 종료 |
|
|
133
|
+
|
|
134
|
+
### 완료 보고
|
|
135
|
+
|
|
136
|
+
루프 종료 시 사람에게 결과를 보고한다:
|
|
137
|
+
|
|
138
|
+
**성공 시:**
|
|
139
|
+
- 달성한 AC 목록
|
|
140
|
+
- 최종 점수 (overallScore, goalAlignment)
|
|
141
|
+
- 생성된 아티팩트 목록
|
|
142
|
+
|
|
143
|
+
**에스컬레이션 시:**
|
|
144
|
+
- 막힌 지점
|
|
145
|
+
- 시도한 Lateral Persona 목록
|
|
146
|
+
- 현재까지의 최고 점수
|
|
147
|
+
- 사람이 힌트를 줄 수 있는 포인트 제시
|
|
148
|
+
|
|
149
|
+
### 진행 패널 최종 업데이트
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
status: "completed"
|
|
153
|
+
description: "완료 | score: {overallScore} | alignment: {goalAlignment} | generation: {N}"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
에스컬레이션 시:
|
|
157
|
+
```
|
|
158
|
+
status: "completed"
|
|
159
|
+
description: "에스컬레이션 | 최고 점수: {bestScore} | {시도한 persona 목록}"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 전체 흐름 요약
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
/solve "제품 문제"
|
|
168
|
+
↓
|
|
169
|
+
[Phase 1] 인터뷰 — 사람이 답변, 해상도 ≥ 0.8까지
|
|
170
|
+
↓ 자동
|
|
171
|
+
[Phase 2] 스펙 생성 — AI 자율
|
|
172
|
+
↓ 자동
|
|
173
|
+
[Phase 3] 실행 루프 — AI 자율
|
|
174
|
+
execute → evaluate → evolve → re-execute → evaluate → ...
|
|
175
|
+
↓
|
|
176
|
+
success → 완료 보고
|
|
177
|
+
human_escalation → 막힌 지점 보고
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
인터뷰에서 사람과 큰 관점을 충분히 정리한 뒤, 그 이후는 AI가 목표를 향해 스스로 루프를 돈다.
|