@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 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.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kood/claude-code",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "Claude Code documentation installer for projects",
5
5
  "type": "module",
6
6
  "bin": "./dist/index.js",
@@ -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 - 반복 {{ITERATION}}/{{MAX}}]**
16
+ **[RALPH MODE ON - ITERATION {{ITERATION}}]**
17
17
 
18
- 작업 미완료 시 자동으로 재실행되는 반복 루프. 이전 시도에서 완료 약속(`<promise>`)을 출력하지 않았으므로 작업을 계속 진행하세요.
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
- <completion_protocol>
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` 스킬 실행 | typecheck/lint/build 모두 통과 |
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
- **모든 4단계 통과 후에만 `<promise>` 출력. 하나라도 실패 시 작업 계속.**
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
- | ❌ **부분 검증** | `/pre-deploy` 스킵 | 4단계 모두 실행 |
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
- **STOP 조건:** 다음 표현 사용 시 즉시 중단하고 검증 실행
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
- ✅ "Planner 검증 요청"
87
- ✅ "Task(subagent_type='executor', ...) 실행"
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
- ## 상태 관리 (Context Compaction 대비)
724
+ ## 상태 관리 (루프 지속성 보장)
537
725
 
538
726
  ### 문서화 폴더 구조
539
727
 
540
- 세션 시작 시 `.claude/ralph/00.[작업명]/` 폴더 생성:
728
+ **필수:** 세션 시작 시 `.claude/ralph/{{YYMMDD}}-{{N}}-{{작업명}}/` 폴더 생성
541
729
 
542
730
  ```
543
- .claude/ralph/00.사용자_인증_구현/
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
- **폴더명 형식:** `00.[작업명]` (넘버링 + 한글 설명, 언더스코어로 구분)
551
- **넘버링:** 기존 ralph 폴더 목록 조회 → 다음 번호 자동 부여 (00, 01, 02...)
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. 넘버링 결정 (ls .claude/ralph/ → 다음 번호 자동 부여)
1051
- 3. `.claude/ralph/00.[작업명]/` 폴더 생성 (한글 설명)
1052
- 4. TASKS.md, PROCESS.md, VERIFICATION.md 초기화
1053
- 5. 요구사항 분석 후 TASKS.md에 체크리스트 작성
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. TASKS.md 읽기 요구사항 완료 상태
1062
- 4. PROCESS.md 읽기 현재 Phase 및 다음 단계
1063
- 5. VERIFICATION.md 읽기 검증 결과
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
- 1. 요구사항 완료 TASKS.md 체크박스 업데이트
1080
- 2. Phase 전환 시 → PROCESS.md 업데이트
1081
- 3. 검증 실행 시 → VERIFICATION.md 업데이트
1082
- 4. 주요 의사결정 시 → PROCESS.md 또는 NOTES.md 기록
1083
- 5. 블로커 발견 NOTES.md에 상황 해결책 기록
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
- 1. **Phase 1:** 모든 요구사항 완료 확인 + TASKS.md/PROCESS.md 업데이트
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
- **4단계 순차 진행. 건너뛰기 절대 금지.**
1388
+ ## 핵심 루프 원칙 (절대 규칙)
1389
+
1390
+ ### 1. 무한 반복 = 완료 보장
1391
+
1392
+ Ralph는 **무한 루프 기반 스킬**. 작업이 진정으로 완료될 때까지 자동 반복.
1097
1393
 
1098
- **완료 시 메시지:**
1099
1394
  ```
1100
- [RALPH MODE - 작업 완료]
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
- **반복 루프 진입 자동으로 "[RALPH MODE ON - 반복 {{ITERATION}}/{{MAX}}]" 메시지 출력**
1423
+ ### 4. ITERATION.md = 루프 추적
1115
1424
 
1116
- </instructions>
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>` 출력까지 계속 진행합니다.