@kood/claude-code 0.5.5 → 0.5.6
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/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/skills/ralph/SKILL.md +425 -72
package/dist/index.js
CHANGED
|
@@ -839,7 +839,7 @@ var init = async (options) => {
|
|
|
839
839
|
|
|
840
840
|
// src/index.ts
|
|
841
841
|
var program = new Command();
|
|
842
|
-
program.name("claude-code").description("Claude Code documentation installer for projects").version("0.5.
|
|
842
|
+
program.name("claude-code").description("Claude Code documentation installer for projects").version("0.5.6");
|
|
843
843
|
program.option(
|
|
844
844
|
"-t, --template <names>",
|
|
845
845
|
"template names (comma-separated: tanstack-start,hono)"
|
package/package.json
CHANGED
|
@@ -11,13 +11,73 @@ user-invocable: true
|
|
|
11
11
|
@../../instructions/validation/forbidden-patterns.md
|
|
12
12
|
@../../instructions/validation/required-behaviors.md
|
|
13
13
|
|
|
14
|
-
# Ralph Skill
|
|
14
|
+
# Ralph Skill - Self-Referential Infinite Loop
|
|
15
15
|
|
|
16
|
-
**[RALPH MODE ON -
|
|
16
|
+
**[RALPH MODE ON - ITERATION {{ITERATION}}]**
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
<quick_reference>
|
|
21
|
+
|
|
22
|
+
## 빠른 참조 (Ralph 핵심)
|
|
23
|
+
|
|
24
|
+
### Ralph = 무한 루프 스킬
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
while (true) {
|
|
28
|
+
// Phase 1: 작업 실행
|
|
29
|
+
구현()
|
|
30
|
+
|
|
31
|
+
// Phase 2: 자동 검증
|
|
32
|
+
if (!검증통과()) {
|
|
33
|
+
ITERATION++
|
|
34
|
+
continue // ← 즉시 다음 반복
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Phase 3: Planner 검증
|
|
38
|
+
if (!플래너승인()) {
|
|
39
|
+
ITERATION++
|
|
40
|
+
continue // ← 즉시 다음 반복
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Phase 4: 완료
|
|
44
|
+
<promise>출력()
|
|
45
|
+
break // ← 유일한 탈출구
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3가지 핵심 규칙
|
|
50
|
+
|
|
51
|
+
| # | 규칙 | 설명 |
|
|
52
|
+
|---|------|------|
|
|
53
|
+
| 1 | **무한 반복** | Phase 4 도달까지 자동 재시도. 수동 중단 불가. |
|
|
54
|
+
| 2 | **증거 기반** | 매 반복마다 **새로운** 검증 실행. 이전 결과 재사용 금지. |
|
|
55
|
+
| 3 | **Planner 필수** | Phase 3 우회 불가. 승인 없이 `<promise>` 출력 시 즉시 실패. |
|
|
56
|
+
|
|
57
|
+
### 루프 종료 유일 조건
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
✅ Phase 1: 모든 요구사항 100% 완료
|
|
61
|
+
✅ Phase 2: /pre-deploy (새로 실행) + TaskList (새로 조회) 통과
|
|
62
|
+
✅ Phase 3: Planner (새로 생성) 승인
|
|
63
|
+
✅ Phase 4: <promise> 출력
|
|
64
|
+
→ 루프 종료
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**하나라도 실패 → ITERATION++ → Phase 1로 복귀**
|
|
19
68
|
|
|
20
|
-
|
|
69
|
+
### 상태 문서 (`.claude/ralph/{{SESSION}}/`)
|
|
70
|
+
|
|
71
|
+
| 파일 | 역할 | 업데이트 시점 |
|
|
72
|
+
|------|------|--------------|
|
|
73
|
+
| **ITERATION.md** | 반복 히스토리 추적 | 매 반복 끝 |
|
|
74
|
+
| **VERIFICATION.md** | 검증 결과 기록 | 매 검증 실행 시 |
|
|
75
|
+
| **TASKS.md** | 요구사항 체크리스트 | 요구사항 완료 시 |
|
|
76
|
+
| **PROCESS.md** | Phase 진행 상황 | Phase 전환 시 |
|
|
77
|
+
|
|
78
|
+
**문서 없이는 루프 지속 불가.**
|
|
79
|
+
|
|
80
|
+
</quick_reference>
|
|
21
81
|
|
|
22
82
|
---
|
|
23
83
|
|
|
@@ -37,57 +97,185 @@ user-invocable: true
|
|
|
37
97
|
|
|
38
98
|
---
|
|
39
99
|
|
|
40
|
-
<
|
|
100
|
+
<loop_mechanism>
|
|
41
101
|
|
|
42
|
-
##
|
|
102
|
+
## 무한 루프 메커니즘 (Iron Law)
|
|
103
|
+
|
|
104
|
+
### 루프 진입 조건
|
|
105
|
+
`/ralph` 스킬 호출 시 즉시 진입. 세션 종료 또는 `<promise>` 출력까지 계속.
|
|
106
|
+
|
|
107
|
+
### 루프 종료 조건 (AND 조건)
|
|
43
108
|
|
|
44
109
|
**`<promise>{{PROMISE}}</promise>`를 출력하는 유일한 조건:**
|
|
45
110
|
|
|
46
111
|
| # | 단계 | 검증 방법 | 통과 기준 |
|
|
47
112
|
|---|------|----------|----------|
|
|
48
113
|
| 1 | 작업 완료 확인 | 원본 요구사항 체크리스트 | 100% 충족 |
|
|
49
|
-
| 2 | 코드 검증 | `/pre-deploy`
|
|
50
|
-
| 3 | TODO 확인 | TaskList 조회 | pending/in_progress = 0 |
|
|
51
|
-
| 4 | 플래너 검증 | Planner 에이전트 호출
|
|
114
|
+
| 2 | 코드 검증 | **새로 실행한** `/pre-deploy` 결과 | typecheck/lint/build 모두 통과 |
|
|
115
|
+
| 3 | TODO 확인 | **새로 실행한** TaskList 조회 | pending/in_progress = 0 |
|
|
116
|
+
| 4 | 플래너 검증 | **새로 생성한** Planner 에이전트 호출 | "승인" 응답 |
|
|
117
|
+
| 5 | 상태 정리 | `.claude/ralph/` 상태 문서 최종 업데이트 | 완료 시각 기록 |
|
|
118
|
+
|
|
119
|
+
**모든 5단계 통과 후에만 `<promise>` 출력. 하나라도 실패 시 루프 재개.**
|
|
120
|
+
|
|
121
|
+
### 루프 재개 트리거
|
|
122
|
+
|
|
123
|
+
다음 상황에서 **즉시** 루프 재개:
|
|
124
|
+
- 검증 실패 (typecheck/lint/build 중 하나라도 실패)
|
|
125
|
+
- TODO 존재 (pending/in_progress > 0)
|
|
126
|
+
- Planner 거절 (추가 작업 요청)
|
|
127
|
+
- 추측성 표현 발견 ("아마도", "probably", "should")
|
|
128
|
+
|
|
129
|
+
**재개 시 메시지:**
|
|
130
|
+
```
|
|
131
|
+
[RALPH MODE ON - 검증 실패, 재시도 {{ITERATION}}]
|
|
132
|
+
```
|
|
52
133
|
|
|
53
|
-
|
|
134
|
+
</loop_mechanism>
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
<completion_protocol>
|
|
139
|
+
|
|
140
|
+
## 완료 프로토콜 (절대 규칙)
|
|
141
|
+
|
|
142
|
+
### 증거 기반 검증 (Fresh Evidence Only)
|
|
143
|
+
|
|
144
|
+
**금지:** 이전 검증 결과 재사용, 추측, 가정
|
|
145
|
+
**필수:** 매 반복마다 새로운 검증 실행
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
// ❌ 잘못된 완료 판단
|
|
149
|
+
"이전에 /pre-deploy 통과했으니 완료"
|
|
150
|
+
"아마 작동할 것 같다"
|
|
151
|
+
|
|
152
|
+
// ✅ 올바른 완료 판단
|
|
153
|
+
Skill("pre-deploy") // 새로 실행
|
|
154
|
+
TaskList() // 새로 조회
|
|
155
|
+
Task(subagent_type="planner", model="opus", ...) // 새로 검증
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 상태 문서 정리
|
|
159
|
+
|
|
160
|
+
완료 직전 `.claude/ralph/{{SESSION}}/` 최종 업데이트:
|
|
161
|
+
- TASKS.md: 모든 체크박스 완료
|
|
162
|
+
- PROCESS.md: 완료 시각, 총 소요 시간
|
|
163
|
+
- VERIFICATION.md: 최종 검증 결과
|
|
164
|
+
|
|
165
|
+
**상태 파일은 유지 (삭제 금지). 세션 히스토리로 활용.**
|
|
54
166
|
|
|
55
167
|
</completion_protocol>
|
|
56
168
|
|
|
57
169
|
---
|
|
58
170
|
|
|
171
|
+
<loop_flow>
|
|
172
|
+
|
|
173
|
+
## 루프 플로우 (무한 반복 구조)
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
[시작] → Iteration 1
|
|
177
|
+
↓
|
|
178
|
+
┌───────────────────────────────────┐
|
|
179
|
+
│ Phase 1: 작업 실행 │
|
|
180
|
+
│ - 요구사항 구현 │
|
|
181
|
+
│ - 에이전트 위임 (병렬) │
|
|
182
|
+
│ - TASKS.md 업데이트 │
|
|
183
|
+
└───────────────┬───────────────────┘
|
|
184
|
+
↓
|
|
185
|
+
┌───────────────────────────────────┐
|
|
186
|
+
│ Phase 2: 자동 검증 │
|
|
187
|
+
│ - /pre-deploy (새로 실행) │
|
|
188
|
+
│ - TaskList (새로 조회) │
|
|
189
|
+
│ - VERIFICATION.md 업데이트 │
|
|
190
|
+
└───────┬───────────────────────────┘
|
|
191
|
+
↓
|
|
192
|
+
┌─[실패]─→ ITERATION.md 기록 → Iteration N+1 (Phase 1로 복귀) ─┐
|
|
193
|
+
│ │
|
|
194
|
+
↓[통과] │
|
|
195
|
+
┌───────────────────────────────────┐ │
|
|
196
|
+
│ Phase 3: Planner 검증 │ │
|
|
197
|
+
│ - Planner 에이전트 (새로 생성) │ │
|
|
198
|
+
│ - 승인/거절 판단 │ │
|
|
199
|
+
│ - VERIFICATION.md 업데이트 │ │
|
|
200
|
+
└───────┬───────────────────────────┘ │
|
|
201
|
+
↓ │
|
|
202
|
+
┌─[거절]─→ ITERATION.md 기록 → Iteration N+1 (Phase 1로 복귀) ─┤
|
|
203
|
+
│ │
|
|
204
|
+
↓[승인] │
|
|
205
|
+
┌───────────────────────────────────┐ │
|
|
206
|
+
│ Phase 4: 완료 출력 │ │
|
|
207
|
+
│ - ITERATION.md 최종 업데이트 │ │
|
|
208
|
+
│ - <promise> 출력 │ │
|
|
209
|
+
└───────────────┬───────────────────┘ │
|
|
210
|
+
↓ │
|
|
211
|
+
[종료] │
|
|
212
|
+
│
|
|
213
|
+
루프 재개 트리거 (즉시 다음 반복): ←───────────────────────────────┘
|
|
214
|
+
- Phase 2 실패 (typecheck/lint/build)
|
|
215
|
+
- TODO 존재 (pending/in_progress > 0)
|
|
216
|
+
- Phase 3 거절 (Planner 추가 작업 요청)
|
|
217
|
+
- 추측성 표현 발견
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**핵심 원리:**
|
|
221
|
+
- 루프는 **자동으로** 재개 (수동 개입 불필요)
|
|
222
|
+
- Phase 4 도달 전까지 **무한 반복**
|
|
223
|
+
- 각 반복은 **독립적인 검증** 실행 (이전 결과 재사용 금지)
|
|
224
|
+
|
|
225
|
+
</loop_flow>
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
59
229
|
<forbidden>
|
|
60
230
|
|
|
61
|
-
## 금지 사항 (
|
|
231
|
+
## 금지 사항 (루프 탈출 방지)
|
|
62
232
|
|
|
63
|
-
|
|
233
|
+
### 조기 탈출 패턴 (절대 금지)
|
|
234
|
+
|
|
235
|
+
| 조기 탈출 패턴 | 설명 | 올바른 행동 |
|
|
64
236
|
|---------------|------|-----------|
|
|
65
|
-
| ❌ **추측 기반 완료** | "아마 완료된 것 같다" | `/pre-deploy` 실행 |
|
|
66
|
-
| ❌
|
|
237
|
+
| ❌ **추측 기반 완료** | "아마 완료된 것 같다" | 새로 `/pre-deploy` 실행 |
|
|
238
|
+
| ❌ **이전 검증 재사용** | "전에 통과했으니 완료" | 매 반복마다 새로 검증 |
|
|
239
|
+
| ❌ **부분 검증** | `/pre-deploy` 스킵 | 5단계 모두 실행 |
|
|
67
240
|
| ❌ **플래너 스킵** | 검증 없이 `<promise>` 출력 | Planner 호출 필수 |
|
|
68
241
|
| ❌ **만족감 표현** | "잘 작동하네요" | 증거 기반 검증 |
|
|
69
242
|
| ❌ **범위 축소** | "이 정도면 충분" | 원본 요구사항 100% |
|
|
70
243
|
| ❌ **테스트 삭제/수정** | 실패 테스트 제거 | 코드 수정으로 통과 |
|
|
71
244
|
| ❌ **에이전트 미활용** | 모든 작업 혼자 수행 | 적극적으로 에이전트 위임 |
|
|
245
|
+
| ❌ **루프 강제 종료** | "여기서 멈춘다" | Phase 4 도달까지 계속 |
|
|
246
|
+
|
|
247
|
+
### STOP 신호 (즉시 검증 실행)
|
|
72
248
|
|
|
73
|
-
|
|
249
|
+
다음 표현 사용 시 **즉시 중단하고 새로운 검증 실행:**
|
|
74
250
|
|
|
75
251
|
```text
|
|
76
252
|
❌ "~해야 한다" "probably" "should" "seems to"
|
|
77
253
|
❌ "아마도" "~것 같다" "대부분" "거의"
|
|
78
254
|
❌ "이 정도면" "충분히" "~만 하면 됨"
|
|
255
|
+
❌ "전에 통과했으니" "이전 검증 결과"
|
|
256
|
+
❌ "루프 종료" "여기서 멈춘다"
|
|
79
257
|
```
|
|
80
258
|
|
|
81
|
-
|
|
259
|
+
### 대신 사용해야 할 표현
|
|
82
260
|
|
|
83
261
|
```text
|
|
84
|
-
✅ "Skill('pre-deploy') 실행"
|
|
85
|
-
✅ "/pre-deploy 결과
|
|
86
|
-
✅ "
|
|
87
|
-
✅ "Task(subagent_type='
|
|
88
|
-
✅ "
|
|
262
|
+
✅ "Skill('pre-deploy') 새로 실행"
|
|
263
|
+
✅ "/pre-deploy 결과 읽기: cat .claude/ralph/.../VERIFICATION.md"
|
|
264
|
+
✅ "TaskList() 새로 조회"
|
|
265
|
+
✅ "Task(subagent_type='planner', model='opus', ...) 새로 생성"
|
|
266
|
+
✅ "ITERATION.md 업데이트 후 다음 반복 시작"
|
|
89
267
|
```
|
|
90
268
|
|
|
269
|
+
### 루프 계속 조건
|
|
270
|
+
|
|
271
|
+
**루프는 다음 상황에서 자동 계속:**
|
|
272
|
+
- Phase 2 실패 → Iteration N+1 (Phase 1로)
|
|
273
|
+
- TODO 남음 → Iteration N+1 (Phase 1로)
|
|
274
|
+
- Planner 거절 → Iteration N+1 (Phase 1로)
|
|
275
|
+
- 추측 발견 → 즉시 검증 실행
|
|
276
|
+
|
|
277
|
+
**루프 종료 유일 조건:** Phase 4에서 `<promise>` 출력
|
|
278
|
+
|
|
91
279
|
</forbidden>
|
|
92
280
|
|
|
93
281
|
---
|
|
@@ -533,22 +721,61 @@ Task(subagent_type="ko-to-en-translator", model="haiku",
|
|
|
533
721
|
|
|
534
722
|
<state_management>
|
|
535
723
|
|
|
536
|
-
## 상태 관리 (
|
|
724
|
+
## 상태 관리 (루프 지속성 보장)
|
|
537
725
|
|
|
538
726
|
### 문서화 폴더 구조
|
|
539
727
|
|
|
540
|
-
세션 시작 시 `.claude/ralph/
|
|
728
|
+
**필수:** 세션 시작 시 `.claude/ralph/{{YYMMDD}}-{{N}}-{{작업명}}/` 폴더 생성
|
|
541
729
|
|
|
542
730
|
```
|
|
543
|
-
.claude/ralph/
|
|
731
|
+
.claude/ralph/260129-01-사용자_인증_구현/
|
|
544
732
|
├── TASKS.md # 작업 체크리스트
|
|
545
733
|
├── PROCESS.md # 진행 단계 및 의사결정
|
|
546
|
-
├── VERIFICATION.md # 검증 결과 기록
|
|
734
|
+
├── VERIFICATION.md # 검증 결과 기록 (매 반복마다 업데이트)
|
|
735
|
+
├── ITERATION.md # 반복 히스토리 (매 루프마다 추가)
|
|
547
736
|
└── NOTES.md # 추가 메모
|
|
548
737
|
```
|
|
549
738
|
|
|
550
|
-
**폴더명 형식:** `
|
|
551
|
-
|
|
739
|
+
**폴더명 형식:** `YYMMDD-N-작업명` (날짜 + 시퀀스 + 한글 설명)
|
|
740
|
+
- 날짜: 오늘 날짜 (YYMMDD)
|
|
741
|
+
- 시퀀스: 같은 날 여러 세션 시 증가 (01, 02, 03...)
|
|
742
|
+
- 작업명: 한글 설명 (언더스코어로 구분)
|
|
743
|
+
|
|
744
|
+
**생성 시점:** Ralph 루프 진입 즉시 (첫 반복 시작 전)
|
|
745
|
+
|
|
746
|
+
### 루프 추적 파일: ITERATION.md
|
|
747
|
+
|
|
748
|
+
**목적:** 매 반복의 결과를 기록하여 무한 루프 진행 상황 추적
|
|
749
|
+
|
|
750
|
+
```markdown
|
|
751
|
+
# Iteration History
|
|
752
|
+
|
|
753
|
+
## Iteration 1 - 2026-01-29 14:30:15
|
|
754
|
+
**Phase:** Phase 1 (작업 실행)
|
|
755
|
+
**완료:** 요구사항 1, 2
|
|
756
|
+
**미완료:** 요구사항 3
|
|
757
|
+
**다음 액션:** 요구사항 3 구현
|
|
758
|
+
|
|
759
|
+
## Iteration 2 - 2026-01-29 14:45:22
|
|
760
|
+
**Phase:** Phase 2 (검증)
|
|
761
|
+
**완료:** /pre-deploy 통과
|
|
762
|
+
**미완료:** TODO 1개 남음
|
|
763
|
+
**다음 액션:** TODO 완료
|
|
764
|
+
|
|
765
|
+
## Iteration 3 - 2026-01-29 15:00:10
|
|
766
|
+
**Phase:** Phase 3 (Planner 검증)
|
|
767
|
+
**완료:** /pre-deploy, TODO 0개
|
|
768
|
+
**미완료:** Planner 거절 (성능 개선 필요)
|
|
769
|
+
**다음 액션:** N+1 쿼리 수정 후 재검증
|
|
770
|
+
|
|
771
|
+
## Iteration 4 - 2026-01-29 15:20:33
|
|
772
|
+
**Phase:** Phase 4 (완료)
|
|
773
|
+
**완료:** 모든 검증 통과
|
|
774
|
+
**Planner 응답:** "승인, 완료"
|
|
775
|
+
**다음 액션:** <promise> 출력
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
**업데이트 시점:** 매 반복의 끝 (다음 반복 시작 전)
|
|
552
779
|
|
|
553
780
|
### 문서 역할
|
|
554
781
|
|
|
@@ -1038,35 +1265,65 @@ Task(subagent_type="code-reviewer", model="opus", ...)
|
|
|
1038
1265
|
|
|
1039
1266
|
<instructions>
|
|
1040
1267
|
|
|
1041
|
-
## 작업 지침
|
|
1268
|
+
## 작업 지침 (Loop-First Approach)
|
|
1042
1269
|
|
|
1043
|
-
###
|
|
1270
|
+
### 루프 진입 (첫 실행)
|
|
1044
1271
|
|
|
1045
|
-
**첫 실행:**
|
|
1046
1272
|
```
|
|
1047
|
-
[RALPH MODE ON -
|
|
1273
|
+
[RALPH MODE ON - ITERATION 1]
|
|
1048
1274
|
```
|
|
1275
|
+
|
|
1276
|
+
**즉시 실행 (순차):**
|
|
1049
1277
|
1. 원본 작업(`{{PROMPT}}`) 읽기
|
|
1050
|
-
2.
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1278
|
+
2. 세션 폴더 생성: `.claude/ralph/{{YYMMDD}}-{{N}}-{{작업명}}/`
|
|
1279
|
+
- `ls .claude/ralph/` → 오늘 날짜 폴더 찾기 → 다음 시퀀스 결정
|
|
1280
|
+
3. 상태 문서 초기화 (병렬):
|
|
1281
|
+
```typescript
|
|
1282
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
1283
|
+
prompt="TASKS.md 생성: 요구사항 체크리스트")
|
|
1284
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
1285
|
+
prompt="PROCESS.md 생성: Phase 1 시작 기록")
|
|
1286
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
1287
|
+
prompt="VERIFICATION.md 생성: 초기 상태")
|
|
1288
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
1289
|
+
prompt="ITERATION.md 생성: Iteration 1 시작")
|
|
1290
|
+
```
|
|
1291
|
+
4. Phase 1 시작 (작업 실행)
|
|
1292
|
+
|
|
1293
|
+
### 루프 재개 (다음 반복)
|
|
1054
1294
|
|
|
1055
|
-
**Context Compaction 후 재개:**
|
|
1056
1295
|
```
|
|
1057
|
-
[RALPH MODE ON -
|
|
1296
|
+
[RALPH MODE ON - ITERATION {{N}}]
|
|
1058
1297
|
```
|
|
1298
|
+
|
|
1299
|
+
**즉시 실행 (순차):**
|
|
1300
|
+
1. ITERATION.md 읽기 → 이전 반복 결과 확인
|
|
1301
|
+
2. VERIFICATION.md 읽기 → 마지막 검증 결과
|
|
1302
|
+
3. TASKS.md 읽기 → 미완료 항목 확인
|
|
1303
|
+
4. 실패 원인 파악 후 다음 액션 결정
|
|
1304
|
+
5. ITERATION.md 업데이트 (새 반복 시작 기록)
|
|
1305
|
+
6. 작업 계속
|
|
1306
|
+
|
|
1307
|
+
### Context Compaction 후 복구
|
|
1308
|
+
|
|
1309
|
+
```
|
|
1310
|
+
[RALPH MODE ON - ITERATION {{N}} (재개)]
|
|
1311
|
+
```
|
|
1312
|
+
|
|
1313
|
+
**복구 프로토콜 (순차):**
|
|
1059
1314
|
1. `pwd` → 작업 디렉토리 확인
|
|
1060
|
-
2. `ls .claude/ralph/` → 최신 세션 폴더 찾기 (
|
|
1061
|
-
3.
|
|
1062
|
-
4.
|
|
1063
|
-
5.
|
|
1064
|
-
6. `git log --oneline -10` → 최근
|
|
1065
|
-
7.
|
|
1315
|
+
2. `ls -lt .claude/ralph/` → 최신 세션 폴더 찾기 (날짜순 정렬)
|
|
1316
|
+
3. `cat .claude/ralph/{{SESSION}}/ITERATION.md` → 반복 히스토리 확인
|
|
1317
|
+
4. `cat .claude/ralph/{{SESSION}}/VERIFICATION.md` → 마지막 검증 결과
|
|
1318
|
+
5. `cat .claude/ralph/{{SESSION}}/TASKS.md` → 미완료 항목
|
|
1319
|
+
6. `git log --oneline -10` → 최근 커밋
|
|
1320
|
+
7. 현재 Iteration 번호 식별 후 루프 재개
|
|
1066
1321
|
|
|
1067
|
-
### 실행
|
|
1322
|
+
### 루프 실행 (각 반복마다)
|
|
1068
1323
|
|
|
1069
|
-
|
|
1324
|
+
**Phase 진행 (순차):**
|
|
1325
|
+
|
|
1326
|
+
**Phase 1: 작업 실행**
|
|
1070
1327
|
1. 병렬 실행 최대 활용 (독립 작업 동시 처리)
|
|
1071
1328
|
2. 백그라운드 실행 적극 사용 (빌드/테스트)
|
|
1072
1329
|
3. **에이전트 적극 위임 (혼자 하지 말 것)**
|
|
@@ -1074,48 +1331,144 @@ Task(subagent_type="code-reviewer", model="opus", ...)
|
|
|
1074
1331
|
- 전문 지식 필요 → 도메인 에이전트 활용
|
|
1075
1332
|
- 여러 작업 동시 → 병렬 에이전트 실행
|
|
1076
1333
|
- 복잡도에 맞는 모델 선택 (haiku/sonnet/opus)
|
|
1334
|
+
4. 요구사항 완료 시 → TASKS.md 체크박스 업데이트
|
|
1335
|
+
5. Phase 완료 → PROCESS.md 업데이트
|
|
1336
|
+
|
|
1337
|
+
**Phase 2: 자동 검증**
|
|
1338
|
+
1. **새로 실행:** `Skill("pre-deploy")` (이전 결과 재사용 금지)
|
|
1339
|
+
2. **새로 조회:** `TaskList()` (pending/in_progress 확인)
|
|
1340
|
+
3. VERIFICATION.md 업데이트 (검증 결과 + 시각 기록)
|
|
1341
|
+
4. 실패 시 → ITERATION.md 업데이트 후 **즉시 다음 반복** (Phase 1로 복귀)
|
|
1342
|
+
|
|
1343
|
+
**Phase 3: Planner 검증**
|
|
1344
|
+
1. Phase 2 통과 확인 (typecheck/lint/build + TODO 0개)
|
|
1345
|
+
2. **새로 생성:** Planner 에이전트 (model="opus")
|
|
1346
|
+
3. 검증 요청 (원본 작업 + 수행 내용 + 검증 결과 포함)
|
|
1347
|
+
4. Planner 응답 대기
|
|
1348
|
+
5. VERIFICATION.md 업데이트 (Planner 응답 기록)
|
|
1349
|
+
6. 거절 시 → ITERATION.md 업데이트 후 **즉시 다음 반복** (Phase 1로 복귀)
|
|
1350
|
+
|
|
1351
|
+
**Phase 4: 완료 출력**
|
|
1352
|
+
1. Phase 1, 2, 3 모두 통과 확인
|
|
1353
|
+
2. ITERATION.md 최종 업데이트 (완료 시각, 총 반복 횟수)
|
|
1354
|
+
3. PROCESS.md 최종 업데이트 (완료 시각, 총 소요 시간)
|
|
1355
|
+
4. **완료 메시지 출력:**
|
|
1356
|
+
```
|
|
1357
|
+
[RALPH MODE - 작업 완료 (총 {{N}}회 반복)]
|
|
1358
|
+
<promise>{{PROMISE}}</promise>
|
|
1359
|
+
```
|
|
1360
|
+
|
|
1361
|
+
**문서 작성 에이전트 활용:**
|
|
1362
|
+
- 새 문서 작성: `Task(subagent_type="document-writer", model="haiku", ...)`
|
|
1363
|
+
- 기존 문서 업데이트: `Task(subagent_type="document-writer", model="haiku", ...)`
|
|
1364
|
+
- 병렬 실행: 여러 문서 동시 업데이트 가능
|
|
1365
|
+
|
|
1366
|
+
### 루프 재개 (검증 실패 시)
|
|
1077
1367
|
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1368
|
+
```
|
|
1369
|
+
[RALPH MODE ON - ITERATION {{N+1}} (이전 검증 실패)]
|
|
1370
|
+
```
|
|
1371
|
+
|
|
1372
|
+
**즉시 실행:**
|
|
1373
|
+
1. ITERATION.md 읽기 → 이전 실패 원인 확인
|
|
1374
|
+
2. VERIFICATION.md 읽기 → 구체적 에러 확인
|
|
1375
|
+
3. NOTES.md 업데이트 → 실패 원인 및 해결 방향 기록
|
|
1376
|
+
4. Phase 1부터 재시작 (수정 작업)
|
|
1377
|
+
|
|
1378
|
+
**루프 종료 조건:** Phase 4에서 `<promise>` 출력할 때만
|
|
1084
1379
|
|
|
1085
|
-
|
|
1086
|
-
- 새 문서 작성: `Skill("docs-creator")`
|
|
1087
|
-
- 기존 문서 개선: `Skill("docs-refactor")`
|
|
1380
|
+
**절대 원칙:** 작업이 진정으로 완료될 때까지 루프 중단 불가
|
|
1088
1381
|
|
|
1089
|
-
|
|
1382
|
+
</instructions>
|
|
1383
|
+
|
|
1384
|
+
---
|
|
1090
1385
|
|
|
1091
|
-
|
|
1092
|
-
2. **Phase 2:** `/pre-deploy` 검증 + TODO 확인 + VERIFICATION.md 업데이트
|
|
1093
|
-
3. **Phase 3:** Planner 검증 + VERIFICATION.md 업데이트
|
|
1094
|
-
4. **Phase 4:** 최종 문서 업데이트 + **"[RALPH MODE - 작업 완료]"** 출력 + `<promise>{{PROMISE}}</promise>` 출력
|
|
1386
|
+
<core_loop_principle>
|
|
1095
1387
|
|
|
1096
|
-
|
|
1388
|
+
## 핵심 루프 원칙 (절대 규칙)
|
|
1389
|
+
|
|
1390
|
+
### 1. 무한 반복 = 완료 보장
|
|
1391
|
+
|
|
1392
|
+
Ralph는 **무한 루프 기반 스킬**. 작업이 진정으로 완료될 때까지 자동 반복.
|
|
1097
1393
|
|
|
1098
|
-
**완료 시 메시지:**
|
|
1099
1394
|
```
|
|
1100
|
-
|
|
1101
|
-
<promise>{{PROMISE}}</promise>
|
|
1395
|
+
Ralph = while (!완료) { 작업 실행 → 검증 → 실패 시 재시도 }
|
|
1102
1396
|
```
|
|
1103
1397
|
|
|
1104
|
-
###
|
|
1398
|
+
### 2. `<promise>` 출력 = 유일한 탈출구
|
|
1105
1399
|
|
|
1400
|
+
루프 종료 조건:
|
|
1401
|
+
- Phase 1: 모든 요구사항 100% 완료 ✅
|
|
1402
|
+
- Phase 2: `/pre-deploy` + `TaskList` 통과 ✅
|
|
1403
|
+
- Phase 3: Planner 승인 ✅
|
|
1404
|
+
- Phase 4: `<promise>` 출력 → **루프 종료**
|
|
1405
|
+
|
|
1406
|
+
**하나라도 실패 → 즉시 다음 반복**
|
|
1407
|
+
|
|
1408
|
+
### 3. 매 반복 = 새로운 증거
|
|
1409
|
+
|
|
1410
|
+
**금지:** 이전 검증 결과 재사용
|
|
1411
|
+
**필수:** 매 반복마다 새로운 검증 실행
|
|
1412
|
+
|
|
1413
|
+
```typescript
|
|
1414
|
+
// ❌ 잘못된 패턴
|
|
1415
|
+
"전에 /pre-deploy 통과했으니 완료"
|
|
1416
|
+
|
|
1417
|
+
// ✅ 올바른 패턴
|
|
1418
|
+
Skill("pre-deploy") // Iteration N에서 새로 실행
|
|
1419
|
+
TaskList() // Iteration N에서 새로 조회
|
|
1420
|
+
Task(subagent_type="planner", ...) // Iteration N에서 새로 생성
|
|
1106
1421
|
```
|
|
1107
|
-
[RALPH MODE ON - 검증 실패, 재시도]
|
|
1108
|
-
```
|
|
1109
|
-
1. 검증 실패 → NOTES.md에 원인 기록
|
|
1110
|
-
2. 수정 작업 → PROCESS.md에 수정 내용 기록
|
|
1111
|
-
3. 재검증 → VERIFICATION.md 업데이트
|
|
1112
|
-
4. 작업이 진정으로 완료될 때까지 중단하지 말 것
|
|
1113
1422
|
|
|
1114
|
-
|
|
1423
|
+
### 4. ITERATION.md = 루프 추적
|
|
1115
1424
|
|
|
1116
|
-
|
|
1425
|
+
매 반복마다 ITERATION.md 업데이트:
|
|
1426
|
+
- 반복 번호 (1, 2, 3, ...)
|
|
1427
|
+
- 실패 원인 (typecheck 실패, TODO 남음, Planner 거절)
|
|
1428
|
+
- 다음 액션 (무엇을 수정할 것인가)
|
|
1429
|
+
|
|
1430
|
+
**Context compaction 후에도 복구 가능.**
|
|
1431
|
+
|
|
1432
|
+
### 5. 루프 재개 = 자동
|
|
1433
|
+
|
|
1434
|
+
검증 실패 시 **자동으로** 다음 반복 시작:
|
|
1435
|
+
- Phase 2 실패 → Iteration N+1
|
|
1436
|
+
- Planner 거절 → Iteration N+1
|
|
1437
|
+
- 추측 표현 발견 → 즉시 검증
|
|
1438
|
+
|
|
1439
|
+
**수동 중단 불가. Phase 4 도달까지 계속.**
|
|
1440
|
+
|
|
1441
|
+
### 6. 문서 = 루프 지속성
|
|
1442
|
+
|
|
1443
|
+
`.claude/ralph/{{SESSION}}/` 상태 문서:
|
|
1444
|
+
- TASKS.md: 요구사항 체크리스트
|
|
1445
|
+
- PROCESS.md: Phase 진행 상황
|
|
1446
|
+
- VERIFICATION.md: 매 반복 검증 결과
|
|
1447
|
+
- ITERATION.md: 반복 히스토리
|
|
1448
|
+
|
|
1449
|
+
**문서 없이는 루프 지속 불가.**
|
|
1450
|
+
|
|
1451
|
+
### 요약
|
|
1452
|
+
|
|
1453
|
+
| 원칙 | 설명 |
|
|
1454
|
+
|------|------|
|
|
1455
|
+
| **무한 반복** | 완료까지 자동 재시도 |
|
|
1456
|
+
| **증거 기반** | 매 반복 새 검증 |
|
|
1457
|
+
| **Planner 필수** | Phase 3 우회 불가 |
|
|
1458
|
+
| **문서 추적** | ITERATION.md로 진행 기록 |
|
|
1459
|
+
| **자동 재개** | 실패 시 즉시 다음 반복 |
|
|
1460
|
+
|
|
1461
|
+
</core_loop_principle>
|
|
1117
1462
|
|
|
1118
1463
|
---
|
|
1119
1464
|
|
|
1120
1465
|
**원본 작업:**
|
|
1121
1466
|
{{PROMPT}}
|
|
1467
|
+
|
|
1468
|
+
---
|
|
1469
|
+
|
|
1470
|
+
**루프 시작:**
|
|
1471
|
+
|
|
1472
|
+
[RALPH MODE ON - ITERATION 1]
|
|
1473
|
+
|
|
1474
|
+
작업을 시작합니다. Phase 4에서 `<promise>` 출력까지 계속 진행합니다.
|