triflux 8.6.0 → 8.9.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.
@@ -15,13 +15,22 @@ argument-hint: "<토론 주제>"
15
15
  > SuperClaude spec-panel + business-panel 오마주. 실제 전문가 5-10명의 관점을 시뮬레이션하여 다각적 분석.
16
16
  > "한 사람의 시야는 좁다. 패널의 시야는 넓다."
17
17
 
18
- ## 용도
18
+ ## HARD RULES
19
19
 
20
- - 아키텍처 설계에서 다관점 검토가 필요할
21
- - 기술 전략 결정 (마이그레이션, 프레임워크 선택, 인프라 전환)
22
- - 요구사항이 모호하여 여러 전문 분야의 시각이 필요할
23
- - 리팩터링 범위와 방향에 대한 전문가 합의 도출
24
- - 비즈니스 + 기술 관점을 동시에 고려해야 할 때
20
+ > headless-guard가 규칙 위반을 **자동 차단**한다. 우회 불가.
21
+
22
+ 1. **`codex exec` / `gemini -p` 직접 호출 절대 금지**
23
+ 2. Codex·Gemini → `Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'cli:프롬프트:역할' --timeout 600")` **만** 사용
24
+ 3. Claude `Agent(run_in_background=true)`
25
+ 4. Bash + Agent를 같은 메시지에서 동시 호출하여 병렬 실행
26
+
27
+ ## MODEL ROLES
28
+
29
+ | CLI | 역할 | 담당 전문가 유형 |
30
+ |-----|------|----------------|
31
+ | Claude (Opus) | 패널 모더레이터 + 인문/전략 전문가 | 리팩터링, 점진적 설계, 요구사항 |
32
+ | Codex | 기술 구현 전문가 | 아키텍처, 마이크로서비스, 클라우드 |
33
+ | Gemini | 통합/비즈니스 전문가 | 통합 패턴, 경쟁 전략, 프로덕트 |
25
34
 
26
35
  ## 전문가 풀
27
36
 
@@ -46,94 +55,78 @@ argument-hint: "<토론 주제>"
46
55
  | Eric Ries | 린 스타트업 | MVP, 검증된 학습 |
47
56
  | Marty Cagan | 프로덕트 | 가치, 실현 가능성, 비즈니스 |
48
57
 
49
- ## 워크플로우
58
+ ## EXECUTION STEPS
50
59
 
51
60
  ### Step 0: 패널 도메인 선택
52
61
 
53
- AskUserQuestion으로 전문가 패널의 도메인을 선택받는다:
62
+ 주제 인자가 없으면 사용자에게 도메인을 선택받는다:
54
63
 
55
64
  ```
56
- AskUserQuestion:
57
- "패널 도메인을 선택하세요:"
58
- 1. 소프트웨어 아키텍처 (Fowler, Newman, Vernon, Evans)
59
- 2. 보안 (OWASP, Trail of Bits, Schneier)
60
- 3. 비즈니스 전략 (Porter, Christensen, Drucker)
61
- 4. DevOps/SRE (Humble, Kim, Forsgren)
62
- 5. 프론트엔드/UX (Nielsen, Cooper, Krug)
63
- 6. 직접 구성
65
+ 1. 소프트웨어 아키텍처 (Fowler, Newman, Vernon, Evans)
66
+ 2. 보안 (OWASP, Trail of Bits, Schneier)
67
+ 3. 비즈니스 전략 (Porter, Christensen, Drucker)
68
+ 4. DevOps/SRE (Humble, Kim, Forsgren)
69
+ 5. 프론트엔드/UX (Nielsen, Cooper, Krug)
70
+ 6. 직접 구성
64
71
  ```
65
72
 
66
- 선택된 도메인에 따라 Step 1에서 해당 분야의 전문가를 우선 선정한다.
67
- "직접 구성"을 선택하면 사용자가 전문가 이름/역할을 직접 지정할 수 있다.
73
+ "직접 구성" 선택 사용자가 전문가 이름/역할을 직접 지정한다.
68
74
 
69
75
  ### Step 1: 주제 분석 및 전문가 선정
70
76
 
71
- 사용자 입력에서 주제를 파싱하고, 관련 전문 분야를 식별하여 5-10명의 전문가를 선정한다.
77
+ 사용자 입력에서 주제를 파싱하고 관련 도메인을 식별한다. 5-10명의 전문가를 선정하여 3개 CLI에 분배한다.
72
78
 
73
- ```
74
- 입력: "우리 모놀리스를 마이크로서비스로 전환해야 할까?"
75
- 분석: {
76
- topic: "모놀리스 마이크로서비스 전환",
77
- domains: ["아키텍처", "운영", "조직", "비즈니스"],
78
- selected_experts: [
79
- { name: "Sam Newman", role: "마이크로서비스 아키텍트", cli: "codex" },
80
- { name: "Martin Fowler", role: "리팩터링 전문가", cli: "claude" },
81
- { name: "Gregor Hohpe", role: "통합 패턴 전문가", cli: "gemini" },
82
- { name: "Michael Porter", role: "전략 분석가", cli: "codex" },
83
- { name: "Kent Beck", role: "점진적 설계 옹호자", cli: "claude" },
84
- { name: "Karl Wiegers", role: "요구사항 검증자", cli: "gemini" }
85
- ]
86
- }
87
- ```
79
+ 분배 예시 (`"우리 모놀리스를 마이크로서비스로 전환해야 할까?"`):
80
+ - Claude 담당: Martin Fowler (리팩터링), Kent Beck (점진적 설계)
81
+ - Codex 담당: Sam Newman (마이크로서비스), Michael Porter (전략)
82
+ - Gemini 담당: Gregor Hohpe (통합 패턴), Karl Wiegers (요구사항)
88
83
 
89
- 모호하면 AskUserQuestion으로 주제 명확화.
84
+ 주제가 모호하면 AskUserQuestion으로 명확화한다.
90
85
 
91
- ### Step 2: 독립 분석 (CLI 분담, Anti-Herding)
86
+ ### Step 2: 독립 분석 (Anti-Herding)
92
87
 
93
- 전문가를 3CLI에 분배하고, CLI가 담당 전문가 관점으로 독립 분석한다. **상호 결과 비공개.**
88
+ **아래 2도구를 반드시 같은 응답에서 동시에 호출하라.**
94
89
 
95
- ```
96
90
  Claude (Agent, background):
97
- "당신은 {expert_1.name}({expert_1.role})과 {expert_2.name}({expert_2.role})입니다.
98
- 주제: {topic}
99
- 각 전문가의 고유 관점에서 분석하세요.
100
- JSON: { experts: [{ name, position, reasoning, concerns, recommendation, confidence }] }"
101
-
102
- > **MANDATORY: Codex/Gemini 전문가 분석은 headless dispatch로 실행**
103
-
104
- CLI 워커 headless dispatch (Bash, background):
105
- Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
106
- --assign 'codex:당신은 {expert_3.name}과 {expert_4.name}입니다. {topic}에 대해 전문가 관점으로...:analyst' \
107
- --assign 'gemini:당신은 {expert_5.name}과 {expert_6.name}입니다. {topic}에 대해 각 전문가 관점으로...:analyst' \
108
- --timeout 600")
91
+ ```
92
+ Agent(
93
+ subagent_type="claude-sonnet-4-5",
94
+ model="opus",
95
+ run_in_background=true,
96
+ prompt="당신은 {claude_expert_1}({role_1})과 {claude_expert_2}({role_2})입니다.
97
+ 주제: {topic}
98
+ 전문가의 고유 관점에서 독립적으로 분석하세요. 상대 전문가의 입장을 참조하지 마세요.
99
+ JSON 형식으로 응답:
100
+ { 'experts': [{ 'name': string, 'position': string, 'reasoning': string, 'concerns': string[], 'recommendation': string, 'confidence': number }] }"
101
+ )
109
102
  ```
110
103
 
111
- ### Step 3: 패널 토론 시뮬레이션
104
+ Codex + Gemini (Bash, background):
105
+ ```
106
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
107
+ --assign 'codex:당신은 {codex_expert_1}({role_3})과 {codex_expert_2}({role_4})입니다. 주제: {topic}. 각 전문가의 고유 관점에서 독립 분석. 상호 참조 금지. JSON: {experts:[{name,position,reasoning,concerns,recommendation,confidence}]}:analyst' \
108
+ --assign 'gemini:당신은 {gemini_expert_1}({role_5})과 {gemini_expert_2}({role_6})입니다. 주제: {topic}. 각 전문가의 고유 관점에서 독립 분석. 상호 참조 금지. JSON: {experts:[{name,position,reasoning,concerns,recommendation,confidence}]}:analyst' \
109
+ --timeout 600")
110
+ ```
112
111
 
113
- 3개 CLI 결과를 수집한 후, 전문가 간 교차 토론을 시뮬레이션한다:
112
+ ### Step 3: 패널 토론 시뮬레이션
114
113
 
115
- ```
116
- Claude Opus가 패널 모더레이터 역할:
114
+ 3개 CLI 결과 수집 후 Claude Opus가 패널 모더레이터로 교차 토론을 시뮬레이션한다:
117
115
 
118
- 1. 각 전문가 의견 정리 (합의점 / 분쟁점 식별)
116
+ 1. 각 전문가 의견 정리 합의점 / 분쟁점 식별
119
117
  2. 분쟁점에 대해 가상 반론 생성:
120
- "Newman서비스 분리를 주장하지만, Fowler'모놀리스 우선'을 권고합니다.
121
- Newman의 반론은? Fowler의 재반론은?"
118
+ - "{expert_A}{position_A}를 주장하지만, {expert_B}{position_B}를 권고합니다. {expert_A}의 반론은? {expert_B}의 재반론은?"
122
119
  3. 2차 라운드: 반론을 반영한 수정 의견 도출
123
- ```
124
120
 
125
121
  ### Step 4: 합의 종합
126
122
 
127
- ```
128
123
  tfx-consensus 프로토콜 적용:
129
124
 
130
- 전문가별 최종 입장 교차검증:
131
- - 과반(50%+) 합의 → "패널 합의"
132
- - 소수 의견 → "소수 견해" (근거 포함)
133
- - 대립 → "미해결 쟁점" (양측 근거 병기)
134
- ```
125
+ - 과반(50%+) 합의 → "패널 합의" (근거 포함)
126
+ - 소수 의견 → "소수 견해" (근거 포함)
127
+ - 대립 → "미해결 쟁점" (양측 근거 병기)
135
128
 
136
- ### Step 5: 최종 패널 보고서
129
+ ### Step 5: 최종 패널 보고서 출력
137
130
 
138
131
  ```markdown
139
132
  ## 전문가 패널 보고서: {topic}
@@ -141,9 +134,7 @@ tfx-consensus 프로토콜 적용:
141
134
  ### 패널 구성
142
135
  | # | 전문가 | 역할 | 핵심 입장 |
143
136
  |---|--------|------|----------|
144
- | 1 | Sam Newman | 마이크로서비스 아키텍트 | 점진적 분리 찬성 |
145
- | 2 | Martin Fowler | 리팩터링 전문가 | 모놀리스 우선 정리 |
146
- | ... | ... | ... | ... |
137
+ | 1 | {name} | {role} | {position} |
147
138
 
148
139
  ### 패널 합의 (Consensus Score: {score}%)
149
140
  - [합의 1] — {N}/{total} 합의
@@ -166,7 +157,13 @@ tfx-consensus 프로토콜 적용:
166
157
  2. {action_2}
167
158
  ```
168
159
 
169
- ## 토큰 예산
160
+ ## ERROR RECOVERY
161
+
162
+ - Codex/Gemini 타임아웃(600s 초과) → Claude Agent로 해당 전문가 재분석
163
+ - 결과 파싱 실패 → 원문 그대로 Step 3에 투입하여 모더레이터가 정리
164
+ - 전문가 선정 불확실 → AskUserQuestion으로 사용자 확인 후 진행
165
+
166
+ ## TOKEN BUDGET
170
167
 
171
168
  | 단계 | 토큰 |
172
169
  |------|------|
@@ -15,122 +15,195 @@ argument-hint: "<완료할 작업 설명>"
15
15
  > OMC ralph 오마주. 핵심 차별점: 검증자가 단일 agent가 아니라 **3-CLI consensus**.
16
16
  > The boulder never stops — but it stops being wrong.
17
17
 
18
- ## 핵심 원리
18
+ ## HARD RULES
19
19
 
20
- OMC ralph는 단일 verifier(code-reviewer 또는 critic)가 검증한다.
21
- tfx-persist는 Claude/Codex/Gemini **3자 독립 검증**으로 편향 없는 완료 판단을 보장한다.
20
+ > headless-guard가 규칙 위반을 **자동 차단**한다. 우회 불가.
22
21
 
23
- ## 워크플로우
22
+ 1. **`codex exec` / `gemini -p` 직접 호출 절대 금지**
23
+ 2. Codex·Gemini 검증자 → `Bash("tfx multi --teammate-mode headless --auto-attach --dashboard --assign 'cli:프롬프트:역할' --timeout 600")` **만** 사용
24
+ 3. Claude 검증자 → `Agent(run_in_background=true)`
25
+ 4. Bash + Agent를 같은 메시지에서 동시 호출하여 병렬 실행
26
+ 5. 루프 종료 조건: 모든 criteria 3자 검증 통과 + 통합 검증 Consensus >= 70
27
+
28
+ ## MODEL ROLES
29
+
30
+ | 단계 | 역할 | 담당 |
31
+ |------|------|------|
32
+ | Goal Definition | 완료 기준 추출 및 사용자 확인 | Claude (직접 실행) |
33
+ | 구현 (단순) | 코드 작성, 파일 수정, 테스트 | Codex (tfx headless) |
34
+ | 구현 (복잡) | 태스크 분해 후 병렬 실행 | Codex + Gemini (tfx headless) |
35
+ | 기준별 검증 — Claude | 코드 읽기 + 논리 검증 | Claude (Agent, background) |
36
+ | 기준별 검증 — Codex | 코드 실행 + 테스트 검증 | Codex (tfx headless) |
37
+ | 기준별 검증 — Gemini | 코드 리뷰 + 품질 검증 | Gemini (tfx headless) |
38
+ | 통합 검증 | 전체 criteria 최종 합의 | Claude + Codex + Gemini (동시) |
39
+ | Deslop Pass | 슬롭 감지 및 제거 | Codex + Gemini (tfx headless) |
40
+
41
+ ## EXECUTION STEPS
24
42
 
25
43
  ### Step 1: Goal Definition
26
44
 
45
+ Claude가 직접 실행한다.
46
+
47
+ 1. 사용자 요청에서 완료 기준(acceptance criteria)을 추출한다.
48
+ 2. AskUserQuestion으로 추출된 기준을 사용자에게 확인받는다:
49
+ - "맞습니다 — 진행" → Step 2로 이동
50
+ - "수정 필요" → 해당 기준 번호와 내용 입력 받아 반영 후 재확인
51
+ - "추가 필요" → 추가 기준 입력 받아 반영 후 재확인
52
+ 3. 확정된 `{criteria_list}`를 루프 전체에서 사용한다.
53
+
54
+ ### Step 2: Execution Loop
55
+
56
+ **모든 criteria가 검증 통과할 때까지 반복한다.**
57
+
58
+ #### 2a. 현재 상태 평가
59
+
60
+ 미완료 criteria를 식별하고 다음 구현 작업을 결정한다.
61
+
62
+ #### 2b. 구현 실행
63
+
64
+ 단순 작업 (파일 수정, 단일 모듈):
27
65
  ```
28
- 사용자 요청에서 완료 기준(acceptance criteria)을 추출:
29
- {
30
- "goal": "JWT 인증 미들웨어 구현",
31
- "criteria": [
32
- "로그인 엔드포인트 /api/auth/login 작동",
33
- "JWT 토큰 발급/검증 로직",
34
- "보호된 라우트에 미들웨어 적용",
35
- "refresh 토큰 지원",
36
- "테스트 커버리지 80%+"
37
- ]
38
- }
66
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
67
+ --assign 'codex:{미완료_criterion}을 충족하도록 구현하라. 구체적 작업: {task_description}. TDD 필요 시 테스트 먼저 작성(RED) → 구현(GREEN) 순서로 진행하라.:implementer' \
68
+ --timeout 600")
39
69
  ```
40
70
 
41
- 자동 추출된 기준을 AskUserQuestion으로 사용자에게 확인받는다:
42
-
71
+ 복잡 작업 (여러 파일, 연동 모듈):
43
72
  ```
44
- AskUserQuestion:
45
- "다음 완료 기준이 맞나요?"
46
- {추출된 criteria 목록 표시}
47
- 1. 맞습니다 진행
48
- 2. 수정 필요 — 기준 편집
49
- 3. 추가 필요 — 기준 추가
73
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
74
+ --assign 'codex:{서브태스크_A} 구현하라. 세부사항: {spec_A}:implementer' \
75
+ --assign 'codex:{서브태스크_B} 구현하라. 세부사항: {spec_B}:implementer' \
76
+ --assign 'gemini:{문서/UI_항목} 작성하라. 세부사항: {spec_C}:writer' \
77
+ --timeout 600")
50
78
  ```
51
79
 
52
- - 1번 선택 Step 2로 진행
53
- - 2번 선택 → 사용자가 수정할 기준 번호와 내용을 입력, 반영 후 재확인
54
- - 3번 선택 → 사용자가 추가 기준을 입력, 반영 후 재확인
80
+ #### 2c. 3자 독립 검증
55
81
 
56
- ### Step 2: Execution Loop
82
+ **구현 완료 후, 아래 2 도구를 반드시 같은 응답에서 동시에 호출하라.**
57
83
 
84
+ **Claude 검증 (Agent):**
85
+ ```
86
+ Agent(
87
+ subagent_type="oh-my-claudecode:verifier",
88
+ model="sonnet",
89
+ run_in_background=true,
90
+ prompt="다음 기준이 충족되었는지 코드를 직접 읽고 판단하라.
91
+ 기준: {current_criterion}
92
+ 코드를 읽고 논리적으로 충족 여부를 판단하라.
93
+ 결과: PASS 또는 FAIL + 근거 1문장"
94
+ )
58
95
  ```
59
- WHILE (NOT all criteria verified):
60
-
61
- 2a. 현재 상태 평가
62
- - 어떤 기준이 미완료인지 확인
63
- - 다음 작업 결정
64
-
65
- 2b. 구현 실행
66
- - 단순 작업 → Codex exec 직접 실행
67
- - 복잡 작업 → tfx-auto로 분해 후 실행
68
- - 파일 수정, 테스트 작성, 빌드 등
69
96
 
70
- 2c. 3자 독립 검증 ( 기준 완료 )
71
- Claude: "다음 기준이 충족되었는가? 코드를 직접 읽고 판단하라: {criterion}"
72
- Codex: "다음 기준 충족 여부를 코드 실행/테스트로 검증하라: {criterion}"
73
- Gemini: "다음 기준 충족 여부를 코드 리뷰로 판단하라: {criterion}"
97
+ **Codex + Gemini 검증 (Bash 동시에 위 Agent와 같은 응답에서 호출):**
98
+ ```
99
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
100
+ --assign 'codex:다음 기준 충족 여부를 코드 실행/테스트로 검증하라. 기준: {current_criterion}. 실제 테스트를 실행하여 결과를 확인하라. 결과: PASS 또는 FAIL + 근거 1문장:verifier' \
101
+ --assign 'gemini:다음 기준 충족 여부를 코드 리뷰로 판단하라. 기준: {current_criterion}. 코드 품질, 엣지 케이스, 완전성을 확인하라. 결과: PASS 또는 FAIL + 근거 1문장:verifier' \
102
+ --timeout 600")
103
+ ```
74
104
 
75
- 결과: 2/3 이상 "통과" → 기준 확정
76
- 1/3 "통과"재작업 필요
77
- 0/3 "통과"즉시 재작업
105
+ **검증 판정:**
106
+ - 2/3 이상 PASS 해당 기준 확정, 다음 기준으로 이동
107
+ - 1/3 PASS재작업 필요, 실패 근거를 구현 프롬프트에 포함하여 2b 재실행
108
+ - 0/3 PASS → 즉시 재작업, 실패 근거 전달
78
109
 
79
- 2d. 진행 보고
80
- "🪨 Ralph: {완료}/{전체} 기준 충족. 현재: {작업 중인 것}. 다음: {예정}"
110
+ #### 2d. 진행 보고
81
111
 
82
- END WHILE
112
+ 기준 검증 후 보고한다:
113
+ ```
114
+ [tfx-persist] {완료수}/{전체수} 기준 충족.
115
+ 완료: {완료된_criteria_목록}
116
+ 현재: {작업_중인_criterion}
117
+ 다음: {예정_criterion}
83
118
  ```
84
119
 
85
120
  ### Step 3: Final Verification
86
121
 
87
- 모든 기준이 개별 검증을 통과한 후, 전체 통합 검증:
122
+ 모든 기준이 개별 검증을 통과한 후, 전체 통합 검증을 실행한다.
123
+
124
+ **아래 2개 도구를 반드시 같은 응답에서 동시에 호출하라.**
88
125
 
126
+ **Claude 통합 검증 (Agent):**
127
+ ```
128
+ Agent(
129
+ subagent_type="oh-my-claudecode:verifier",
130
+ model="opus",
131
+ run_in_background=true,
132
+ prompt="모든 acceptance criteria가 충족되었는지 전체적으로 검증하라.
133
+ 기준 목록: {criteria_list}
134
+ 코드를 직접 읽고, 회귀 여부를 확인하고, 기준 간 상호 의존성을 검증하라.
135
+ JSON 형식: { criteria_results: [{criterion, pass, reason}], regression_check, overall_pass }"
136
+ )
89
137
  ```
90
- 3자 독립 통합 검증:
91
- "모든 acceptance criteria가 충족되었는지 전체적으로 검증하라.
92
- 기준 목록: {criteria}
93
- 코드를 직접 읽고, 테스트를 실행하고, 회귀 여부를 확인하라."
94
138
 
95
- Consensus Score >= 70 완료 선언
96
- Consensus Score < 70 → 미달 항목 재작업 후 재검증
139
+ **Codex + Gemini 통합 검증 (Bash — 동시에 위 Agent와 같은 응답에서 호출):**
140
+ ```
141
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
142
+ --assign 'codex:모든 acceptance criteria 충족 여부를 테스트 실행으로 통합 검증하라. 기준 목록: {criteria_list}. 전체 테스트 스위트를 실행하고 회귀 여부를 확인하라. JSON 형식: { criteria_results, test_results, overall_pass }:verifier' \
143
+ --assign 'gemini:모든 acceptance criteria 충족 여부를 코드 리뷰로 통합 검증하라. 기준 목록: {criteria_list}. 전체 변경사항을 검토하고 누락, 불완전한 구현, 엣지 케이스를 확인하라. JSON 형식: { criteria_results, edge_cases, overall_pass }:verifier' \
144
+ --timeout 600")
97
145
  ```
98
146
 
147
+ **통합 판정:**
148
+ - Consensus Score >= 70 → Step 4(Deslop) 또는 Step 5(완료) 진행
149
+ - Consensus Score < 70 → 미달 항목을 추출하여 Step 2 루프 재진입
150
+
99
151
  ### Step 4: Deslop Pass (선택적)
100
152
 
101
- 검증 통과 후, 변경된 파일에 대해 슬롭 제거:
153
+ 검증 통과 변경된 파일에 슬롭이 있으면 제거한다.
154
+
102
155
  ```
103
- 변경된 파일 목록 3자 독립 슬롭 감지 → 합의된 슬롭만 제거 → 회귀 검증
156
+ Bash("tfx multi --teammate-mode headless --auto-attach --dashboard \
157
+ --assign 'codex:다음 파일에서 AI가 생성한 불필요 코드(슬롭)를 감지하라. 파일: {changed_files}. 중복 코드, 불필요 추상화, 과잉 에러 핸들링, 사용되지 않는 임포트를 보고하라. 수정하지 말고 목록만 반환하라.:critic' \
158
+ --assign 'gemini:다음 파일에서 AI가 생성한 불필요 코드(슬롭)를 감지하라. 파일: {changed_files}. 중복 코드, 불필요 추상화, 과잉 에러 핸들링, 사용되지 않는 임포트를 보고하라. 수정하지 말고 목록만 반환하라.:critic' \
159
+ --timeout 600")
104
160
  ```
105
161
 
162
+ 2/3 이상 동의한 슬롭만 Codex로 제거하고, 제거 후 회귀 검증을 실행한다.
163
+
106
164
  ### Step 5: 완료
107
165
 
108
- ```
109
- 모든 기준 3자 검증 통과 + 통합 검증 통과 → 완료 보고:
166
+ 모든 기준 3자 검증 통과 + 통합 검증 통과 시 완료를 보고한다.
110
167
 
111
- "🪨 Ralph 완료: {전체}/{전체} 기준 충족 (Consensus Score: {score}%)
112
- 변경 파일: {count}개
113
- 테스트: {pass}/{total} 통과
114
- 검증: Claude ✓ Codex ✓ Gemini ✓"
115
168
  ```
116
-
117
- ## Anti-Stuck 메커니즘
118
-
169
+ [tfx-persist 완료] {전체}/{전체} 기준 충족
170
+ Consensus Score: {score}%
171
+ 변경 파일: {count}개
172
+ 테스트: {pass}/{total} 통과
173
+ 검증: Claude PASS | Codex PASS | Gemini PASS
119
174
  ```
120
- 같은 기준에서 3회 연속 검증 실패 시:
121
- 1. 접근법 변경 시도
122
- 2. 변경 후에도 실패 → AskUserQuestion으로 사용자 도움 요청
123
- 3. 사용자 지시 받은 후 재시도
124
175
 
125
- 같은 전체 루프가 5회 반복 시:
126
- → 강제 진행 상황 보고 + 사용자 판단 요청
127
- ```
176
+ ## ANTI-STUCK 메커니즘
128
177
 
129
- ## 토큰 예산
178
+ 같은 기준에서 3회 연속 검증 실패 시 즉시 실행한다:
130
179
 
131
- 기준당: ~8K (구현 ~3K + 3자검증 ~5K)
132
- 전체: 기준 × 8K + 통합검증 15K
133
- 예: 5개 기준 ~55K tokens
180
+ 1. 접근법을 변경하여 재시도한다 (다른 구현 전략 선택).
181
+ 2. 변경 후에도 실패하면 AskUserQuestion으로 사용자 도움을 요청한다:
182
+ - 실패한 기준, 3회 시도 내역, 각 실패 이유를 제시한다.
183
+ 3. 사용자 지시를 받은 후 재시도한다.
184
+
185
+ 같은 전체 루프가 5회 반복 시:
186
+ - 강제로 진행 상황을 보고하고 AskUserQuestion으로 사용자 판단을 요청한다.
187
+
188
+ ## ERROR RECOVERY
189
+
190
+ | 상황 | 대응 |
191
+ |------|------|
192
+ | tfx headless 타임아웃 | `--timeout` 900으로 올려 재시도 |
193
+ | 검증 결과 불일치 (2자 PASS, 1자 FAIL) | FAIL 근거를 구현 프롬프트에 포함하여 재작업 |
194
+ | 빌드 실패 | Codex에 빌드 로그 전달하여 수정 지시 |
195
+ | 무한 루프 감지 (5회 이상) | 강제 보고 + AskUserQuestion |
196
+
197
+ ## TOKEN BUDGET
198
+
199
+ | 항목 | 토큰 |
200
+ |------|------|
201
+ | 기준당 구현 | ~3K |
202
+ | 기준당 3자 검증 | ~5K |
203
+ | 기준당 합계 | ~8K |
204
+ | 통합 검증 (Step 3) | ~15K |
205
+ | Deslop Pass (선택) | ~5K |
206
+ | **예시: 5개 기준** | **~55K** |
134
207
 
135
208
  ## 사용 예
136
209