@walwal-harness/cli 4.0.0 → 5.0.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/README.md CHANGED
@@ -13,8 +13,10 @@
13
13
 
14
14
  | 모드 | 설명 | 실행 방법 |
15
15
  |------|------|----------|
16
- | **Classic (v3)** | 순차 실행 — Planner → Generator → Evaluator 1세션씩 | `하네스 엔지니어링 시작` |
17
- | **Agent Teams (v4)** | 병렬 실행 — 3 Team이 Feature 단위 Gen→Eval 루프 동시 실행 | `/harness-team` 또는 `npx walwal-harness v4` |
16
+ | **Solo** | 순차 실행 — 프롬프트 기반으로 Planner → Generator → Evaluator 순서대로 진행 | `/harness-solo` 또는 프롬프트로 진행 |
17
+ | **Team** | 병렬 실행 — 3 Team이 Feature 단위 Gen→Eval 루프를 자동 핸즈오프로 동시 실행 | `/harness-team` 또는 `npx walwal-harness team` |
18
+
19
+ 두 모드는 언제든 전환 가능합니다. Team 모드 중단 후 Solo로 이어가거나, Solo에서 Team으로 전환해도 진행 상태가 보존됩니다.
18
20
 
19
21
  ---
20
22
 
@@ -29,373 +31,195 @@ npm install @walwal-harness/cli
29
31
 
30
32
  `postinstall`이 자동으로:
31
33
  1. `.harness/` 디렉토리 스캐폴딩
32
- 2. `.claude/skills/` 에 에이전트 스킬 설치 (8개)
33
- 3. `scripts/` 에 오케스트레이션 스크립트 설치
34
- 4. SessionStart / UserPromptSubmit 훅 등록
35
- 5. `AGENTS.md` + `CLAUDE.md` 심볼릭 링크 생성
34
+ 2. `.claude/skills/` 에 에이전트 스킬 설치 (7개)
35
+ 3. `.claude/commands/` 에 모드 제어 커맨드 설치 (3개)
36
+ 4. `scripts/` 에 오케스트레이션 스크립트 설치
37
+ 5. SessionStart / UserPromptSubmit 훅 등록
38
+ 6. `AGENTS.md` + `CLAUDE.md` 심볼릭 링크 생성
36
39
 
37
- > **중요:** 설치 후 Claude Code 세션을 **재시작**해야 skills가 인식됩니다.
40
+ > **중요:** 설치 후 Claude Code 세션을 **재시작**해야 skills/commands가 인식됩니다.
38
41
 
39
- ### 기존 설치자 업데이트
42
+ ### 업데이트
40
43
 
41
44
  ```bash
42
- # latest (v3 안정판)
43
45
  npm update @walwal-harness/cli
44
-
45
- # v4 alpha (Agent Teams)
46
- npm install @walwal-harness/cli@next
47
-
48
- # 스크립트 동기화 (코어 스크립트 자동 덮어쓰기)
49
- npx walwal-harness
50
46
  ```
51
47
 
48
+ npm update 시 모든 시스템 파일(scripts, skills, commands)이 **자동으로 교체**됩니다.
49
+ 사용자 데이터(progress.json, progress.log, gotchas 커스텀 항목, archive)는 보존됩니다.
50
+
52
51
  ### CLI 명령어
53
52
 
54
53
  ```bash
55
- npx walwal-harness # 초기화 / 스크립트 업데이트
56
- npx walwal-harness --force # 강제 재초기화
57
- npx walwal-harness studio # Harness Studio v3 (tmux 5-pane)
58
- npx walwal-harness v4 # Harness Studio v4 (Agent Teams, tmux 6-pane)
59
- npx walwal-harness --help # 도움말
54
+ npx walwal-harness # 초기화 / 스크립트 업데이트
55
+ npx walwal-harness --force # 강제 재초기화
56
+ npx walwal-harness team # Team Mode tmux 레이아웃 실행
57
+ npx walwal-harness team --kill # Team Mode tmux 세션 종료
58
+ npx walwal-harness --help # 도움말
60
59
  ```
61
60
 
62
61
  ---
63
62
 
64
- ## Quick Start — Classic Mode (v3)
65
-
66
- ### 1. 설치 + 재시작
63
+ ## Quick Start — Solo Mode
67
64
 
68
65
  ```bash
69
- cd your-project
66
+ # 1. 설치
70
67
  npm install @walwal-harness/cli
71
- # Claude Code 재시작 (/exit → 재진입)
72
- ```
73
68
 
74
- ### 2. 하네스 시작
69
+ # 2. Claude Code 재시작
70
+ claude # (또는 codex)
75
71
 
76
- ```
77
- ❯ 하네스 엔지니어링 시작
78
- ```
79
-
80
- 또는 Claude Code에서 아무 요청 → UserPromptSubmit 훅이 자동으로 Dispatcher를 호출합니다.
72
+ # 3. 하네스 시작
73
+ > 하네스 엔지니어링 시작
81
74
 
82
- ### 3. 파이프라인 자동 선택
83
-
84
- Dispatcher가 요청을 분석하여 파이프라인을 결정합니다:
85
-
86
- ```
87
- FULLSTACK : Planner → Gen-BE → Gen-FE → Eval-Func → Eval-Visual
88
- FE-ONLY : Planner(light) → Gen-FE → Eval-Func → Eval-Visual
89
- BE-ONLY : Planner → Gen-BE → Eval-Func(API-only)
75
+ # 4. Dispatcher → Planner 순서로 자동 진행
76
+ # 5. Generator, Evaluator를 프롬프트로 순차 호출
90
77
  ```
91
78
 
92
- ### 4. 순차 실행
93
-
94
- 각 에이전트가 독립 Claude Code 세션에서 실행됩니다:
79
+ ### Solo 파이프라인
95
80
 
96
81
  ```
97
- ❯ /harness-planner # Plan 작성
98
- ❯ /harness-generator-frontend # 코드 생성
99
- ❯ /harness-evaluator-functional # E2E 테스트
82
+ 사용자 요청 → Dispatcher → (Brainstormer) → Planner
83
+ → Generator-Backend → Generator-Frontend
84
+ → Evaluator-Functional → Evaluator-Visual
85
+ → PASS: 다음 Sprint | FAIL: Generator로 재시도 (최대 5회)
100
86
  ```
101
87
 
102
- 에이전트가 완료되면 **새 세션**을 시작하면 자동으로 다음 에이전트를 안내합니다.
103
-
104
- ### 5. Eval FAIL → 자동 재작업
105
-
106
- Evaluator FAIL 시 → 실패 원인 + 피드백과 함께 Generator로 자동 리라우팅 (최대 10회).
107
-
108
88
  ---
109
89
 
110
- ## Quick Start — Agent Teams (v4)
111
-
112
- Claude Code의 **네이티브 Agent Teams 기능**을 사용하여 3개 Teammate가 Feature 단위로 Gen→Eval을 병렬 실행합니다.
113
-
114
- ```
115
- 기존 (v3): Planner → Gen(F-001~028 전부) → Eval(전부)
116
- v4: Planner → 3 Teammates 병렬, 각 Feature 단위 Gen→Eval
117
- ```
118
-
119
- ### 1. Agent Teams 활성화
90
+ ## Quick Start — Team Mode
120
91
 
121
92
  ```bash
122
- npm install @walwal-harness/cli@next
123
- npx walwal-harness v4 # settings.json에 env var 설정 + queue 초기화
124
- ```
93
+ # Planner 완료 후:
94
+ > /harness-team
125
95
 
126
- 또는 수동으로:
127
-
128
- ```json
129
- // .claude/settings.json
130
- {
131
- "env": {
132
- "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
133
- }
134
- }
96
+ # 자동으로:
97
+ # 1. feature-queue.json 초기화 (의존성 topological sort)
98
+ # 2. tmux Studio 레이아웃 구축
99
+ # 3. 3개 팀이 병렬로 Gen→Eval 루프 자동 실행
100
+ # 4. 팀 완료 시 자동으로 다음 feature dequeue
101
+ # 5. 5회 초과 실패 시 사용자 개입 요청
135
102
  ```
136
103
 
137
- ### 2. Claude Code 시작
104
+ ### Team 모드 레이아웃
138
105
 
139
- ```bash
140
- claude # 기본 모드
141
- claude --teammate-mode tmux # tmux split pane 모드 (권장)
142
106
  ```
143
-
144
- ### 3. Planner 실행
145
-
146
- ```
147
- ❯ 하네스 엔지니어링 시작
148
- # Dispatcher → Planner → feature-list.json 생성
149
- ```
150
-
151
- ### 4. Teams 가동
152
-
153
- ```
154
- ❯ /harness-team-action
107
+ ┌──────────────┬──────────────┬──────────────┐
108
+ │ Prompt │ Dashboard │ TEAM 1 │
109
+ │ History │ (queue + │ Gen | Eval │
110
+ │ │ status) ├──────────────┤
111
+ ├──────────────┤ │ TEAM 2 │
112
+ │ Controller │ │ Gen | Eval │
113
+ │ (Claude / │ ├──────────────┤
114
+ │ Codex) │ │ TEAM 3 │
115
+ └──────────────┴──────────────┴──────────────┘
155
116
  ```
156
117
 
157
- 이 명령은:
158
- 1. `feature-list.json` → `feature-queue.json` 초기화 (dependency-aware topological sort)
159
- 2. 3개 Teammate 생성 (Claude의 네이티브 Agent Teams)
160
- 3. 각 Teammate가 Queue에서 Feature를 가져와 Gen→Eval 자율 실행
118
+ ---
161
119
 
162
- ### 5. 모니터링 & 제어
120
+ ## 모드 전환
163
121
 
164
- | 명령 | 동작 |
122
+ | 명령 | 설명 |
165
123
  |------|------|
166
- | `/harness-team-action` | Queue 초기화 + 3 Teammates 생성 |
167
- | `/harness-team-stop` | 모든 Teammates 해산 |
168
- | `bash scripts/harness-queue-manager.sh status .` | Queue 상태 확인 |
169
- | `bash scripts/harness-queue-manager.sh requeue F-XXX .` | 실패 Feature 재큐 |
170
-
171
- **tmux 모드에서 Teammate 간 전환:**
172
- - `Shift+Down` — Teammate 순회
173
- - `Ctrl+T` — 태스크 리스트 보기
174
-
175
- ### 6. 작동 원리
124
+ | `/harness-team` | Team 모드 시작/재개 |
125
+ | `/harness-solo` | Solo 모드로 전환 (진행 상태 보존) |
126
+ | `/harness-stop` | Team 모드 중단 (queue 보존, 나중에 재개 가능) |
176
127
 
177
128
  ```
178
- Feature Queue (dependency-aware topological sort)
179
- Ready: [F-002, F-003, F-007] ← depends_on 충족된 것만
180
- Blocked: [F-004, F-005, ...] ← 선행 Feature 미완료
181
-
182
- Teammate 1: F-002 → 코드 생성 → tsc/eslint 검증 → AC 평가
183
- PASS → queue에서 pass 처리 → dependents unblock → 다음 Feature
184
- FAIL → 최대 3회 재시도 → 실패 시 fail 처리
185
-
186
- Teammate 2: F-003 → (동일 루프)
187
- Teammate 3: F-007 → (동일 루프)
129
+ Team 실행 중 → /harness-stop → /harness-solo → 프롬프트로 계속
130
+ ↓
131
+ /harness-team → 나머지 feature 팀 재개
188
132
  ```
189
133
 
190
- - 각 Teammate는 Claude Code의 **독립 컨텍스트** (1M token)
191
- - `SendMessage`로 Teammate 간 직접 소통 (API 변경, 실패 알림 등)
192
- - Lead(사용자 세션)는 오케스트레이터 — 개입, 리뷰, gotcha 등록
193
-
194
- ### 7. Lead에서 할 수 있는 것
195
-
196
- | 할 수 있는 것 | 예시 |
197
- |--------------|------|
198
- | Teams 가동/중지 | `/harness-team-action`, `/harness-team-stop` |
199
- | Queue 상태 확인 | `bash scripts/harness-queue-manager.sh status .` |
200
- | 실패 Feature 분석 | "F-003이 왜 실패했는지 분석해줘" |
201
- | Feature 재큐 | `bash scripts/harness-queue-manager.sh requeue F-003 .` |
202
- | 코드 리뷰 | "F-002의 Sidebar 컴포넌트 리뷰해줘" |
203
- | Gotcha 등록 | "API 응답에 created_at은 ISO 8601이어야 해" |
204
- | Teammate에 메시지 | "team-1에게 API 스키마 변경 알려줘" |
205
-
206
- **하지 말 것:** `/harness-generator-*`, `/harness-evaluator-*` 직접 호출 — Teammate가 처리합니다.
207
-
208
134
  ---
209
135
 
210
- ## 에이전트
136
+ ## 에이전트 구성
211
137
 
212
138
  | 에이전트 | 역할 | 모델 |
213
139
  |----------|------|------|
214
- | **Dispatcher** | 파이프라인 선택 + Gotcha 관리 | opus |
215
- | **Brainstormer** | 러프한 요구사항 대화형 구체화 | opus |
216
- | **Planner** | 제품 사양 + API 계약 + Feature 설계 | opus/ultraplan |
217
- | **Generator-Backend** | NestJS MSA 구현 | sonnet |
140
+ | **Dispatcher** | 요청 분석 → 파이프라인 결정 | opus |
141
+ | **Brainstormer** | 러프한 요구사항 → 구조화된 spec | opus |
142
+ | **Planner** | 제품 사양 + API 계약서 + 서비스 분할 | opus |
143
+ | **Generator-Backend** | NestJS MSA 서비스 구현 | sonnet |
218
144
  | **Generator-Frontend** | React/Next.js UI 구현 | sonnet |
219
- | **Evaluator-Functional** | Playwright E2E 기능 검증 | opus/ultrathink |
220
- | **Evaluator-Visual** | 디자인, 반응형, 접근성 검증 | opus/ultrathink |
221
-
222
- ### Brainstormer (조건부)
145
+ | **Evaluator-Functional** | Playwright E2E 기능 검증 | opus |
146
+ | **Evaluator-Visual** | 디자인/접근성/AI슬롭 검증 | opus |
223
147
 
224
- [obra/superpowers](https://github.com/obra/superpowers) (MIT License) 기반. 바이브코딩 수준의 러프한 요구사항을 대화형 Q&A로 구체화합니다.
148
+ ### Evaluation 기준
149
+ - PASS: Weighted Score ≥ 2.80/3.00
150
+ - AC 100% 충족 필수 (부분 통과 = FAIL)
151
+ - Regression 실패 1건+ = FAIL
152
+ - Evidence 없는 Score = 0점
153
+ - Team Mode: 최대 5회 재시도 후 사용자 개입 요청
225
154
 
226
155
  ---
227
156
 
228
- ## 핵심 메커니즘
229
-
230
- ### Auto-Routing
231
-
232
- 모든 사용자 프롬프트가 Dispatcher를 자동 경유합니다.
233
-
234
- ```
235
- # per-message opt-out
236
- ❯ harness skip 그냥 답해줘
237
-
238
- # 전역 비활성
239
- .harness/config.json → behavior.auto_route_dispatcher = false
240
- ```
241
-
242
- ### API Contract — 진실의 원천
243
-
244
- `api-contract.json`이 FE ↔ Gateway ↔ Services 간 유일한 계약서입니다.
245
-
246
- ### Gotcha 시스템
247
-
248
- 사용자가 실수를 지적하면 Dispatcher가 자동 기록 → 이후 세션에서 반복 방지.
249
-
250
- ### Pre-Eval Gate
251
-
252
- Generator → Evaluator 전환 전 결정론적 검증 (tsc, eslint, test). 실패 시 Evaluator 세션을 열지 않고 Generator로 자동 리라우팅.
253
-
254
- ```json
255
- // .harness/config.json
256
- "pre_eval_gate": {
257
- "frontend_checks": ["npx tsc --noEmit", "npx eslint src/", "npx vitest run --bail 1"],
258
- "frontend_cwd": "path/to/frontend" // 프로젝트 루트와 다른 경우
259
- }
260
- ```
261
-
262
- ### Evaluation System
263
-
264
- | 설정 | 값 |
265
- |------|------|
266
- | PASS 기준 | 2.80 / 3.00 이상 |
267
- | FAIL 기준 | 2.79 이하 (예외 없음) |
268
- | Evidence 없는 Score | 0점 강제 |
269
- | Regression 실패 | 1건이라도 → 전체 FAIL |
270
-
271
- ---
272
-
273
- ## Harness Studio (tmux)
274
-
275
- ### Studio v3 (Classic)
276
-
277
- ```bash
278
- npx walwal-harness studio
279
- ```
280
-
281
- ```
282
- ┌──────────────┬──────────────┐
283
- │ Dashboard │ Monitor │
284
- │ (Progress) ├──────────────┤
285
- ├──────────────┤ Agent Session │
286
- │ Control ├──────────────┤
287
- │ (harness>) │ Eval Review │
288
- └──────────────┴──────────────┘
289
- ```
290
-
291
- ### Studio v4 (Agent Teams)
292
-
293
- ```bash
294
- npx walwal-harness v4
295
- ```
296
-
297
- ```
298
- ┌──────────────┬──────────────┬──────────────┐
299
- │ │ Progress │ Team 1 │
300
- │ Main ├──────────────┤ Team 2 │
301
- │ (Claude) │ Prompts │ Team 3 │
302
- └──────────────┴──────────────┴──────────────┘
303
- ```
304
-
305
- ---
306
-
307
- ## 프로젝트 구조
157
+ ## 디렉토리 구조
308
158
 
309
159
  ```
310
160
  your-project/
311
- ├── AGENTS.md # 에이전트 공통 컨텍스트
312
- ├── CLAUDE.md → AGENTS.md # 심볼릭 링크
313
- ├── scripts/
314
- │ ├── harness-next.sh # 세션 오케스트레이터
315
- │ ├── harness-session-start.sh # SessionStart 훅
316
- │ ├── harness-user-prompt-submit.sh # UserPromptSubmit 훅
317
- │ ├── harness-queue-manager.sh # v4: Feature Queue 관리
318
- │ ├── harness-team-worker.sh # v4: Team Worker (Gen→Eval 루프)
319
- │ ├── harness-studio-v4.sh # v4: tmux 레이아웃
320
- │ ├── harness-dashboard-v4.sh # v4: Progress 패널
321
- │ ├── harness-prompts-v4.sh # v4: Prompts 패널
322
- │ └── lib/
323
161
  ├── .harness/
324
- │ ├── config.json # 하네스 설정
325
- │ ├── HARNESS.md # 상세 가이드
326
- │ ├── progress.json # 세션 간 상태
327
- │ ├── progress.log # append-only 히스토리
328
- │ ├── gotchas/ # 에이전트별 실수 기록
329
- │ ├── actions/
330
- │ │ ├── feature-list.json # 기능 목록 + AC
331
- │ │ ├── feature-queue.json # v4: Feature Queue 상태
332
- │ │ ├── api-contract.json # API 계약서
333
- │ │ └── plan.md # 제품 사양
334
- │ └── archive/ # 완료 스프린트 보관
335
- └── .claude/
336
- ├── settings.json # 훅 등록
337
- └── skills/ # Claude Code 스킬 (8개)
338
- ```
339
-
340
- ---
341
-
342
- ## Playwright MCP 설정
343
-
344
- Evaluator가 브라우저 테스트를 수행하려면 Playwright MCP가 필요합니다:
345
-
346
- ```json
347
- // ~/.mcp.json
348
- {
349
- "mcpServers": {
350
- "playwright": {
351
- "command": "npx",
352
- "args": ["-y", "@playwright/mcp@latest", "--headless", "--caps", "vision"]
353
- }
354
- }
355
- }
162
+ │ ├── config.json # 하네스 설정
163
+ │ ├── progress.json # 런타임 상태 (mode, sprint, agent)
164
+ │ ├── progress.log # 실시간 이벤트 로그
165
+ │ ├── HARNESS.md # 하네스 상세 가이드
166
+ │ ├── actions/ # 활성 스프린트 문서
167
+ │ │ ├── feature-list.json # Feature 목록 + AC
168
+ │ │ ├── api-contract.json # API 계약서
169
+ │ │ ├── feature-queue.json # Feature Queue 상태 (Team Mode)
170
+ │ │ └── ...
171
+ │ ├── archive/ # 완료 스프린트 보관 (불변)
172
+ │ └── gotchas/ # 에이전트 실수 기록
173
+ ├── .claude/
174
+ │ ├── skills/harness-*/ # 에이전트 스킬 (7개)
175
+ │ ├── commands/harness-*.md # 모드 제어 커맨드 (3개)
176
+ │ └── settings.json # 훅, statusline
177
+ ├── scripts/
178
+ │ ├── harness-tmux.sh # 통합 tmux 레이아웃 (Solo/Team)
179
+ │ ├── harness-dashboard.sh # 통합 대시보드
180
+ │ ├── harness-monitor.sh # 에이전트 모니터
181
+ │ ├── harness-queue-manager.sh # Feature Queue 관리
182
+ │ ├── harness-next.sh # 에이전트 전환 라우터
183
+ │ ├── harness-session-start.sh # SessionStart 훅
184
+ │ ├── harness-user-prompt-submit.sh # UserPromptSubmit 훅
185
+ │ ├── harness-statusline.sh # 상태바
186
+ │ ├── harness-prompt-history.sh # 프롬프트 히스토리
187
+ │ └── lib/ # 공유 라이브러리
188
+ ├── AGENTS.md # 프로젝트 컨텍스트 (IA-MAP)
189
+ └── CLAUDE.md → AGENTS.md # 심볼릭 링크
356
190
  ```
357
191
 
358
192
  ---
359
193
 
360
- ## 트러블슈팅
361
-
362
- ### Skills가 로드되지 않아요
194
+ ## Troubleshooting
363
195
 
196
+ ### Skills/Commands가 인식되지 않음
364
197
  ```bash
365
- /exit # Claude Code 세션 종료
366
- # 프로젝트 디렉토리에서 재진입
198
+ # Claude Code 세션 재시작
199
+ /exit
200
+ claude
367
201
  ```
368
202
 
369
- ### 스크립트가 구버전이에요
370
-
203
+ ### Team 모드에서 "No features ready"
371
204
  ```bash
372
- npx walwal-harness # 코어 스크립트 자동 덮어쓰기
373
- ```
374
-
375
- ### v4 Team이 "No features ready" 반복
205
+ # Queue 상태 확인
206
+ bash scripts/harness-queue-manager.sh status .
376
207
 
377
- ```bash
378
- # Studio를 재시작하면 자동으로 stale in_progress 복구
379
- npx walwal-harness v4
208
+ # 실패한 feature requeue
209
+ bash scripts/harness-queue-manager.sh requeue F-001 .
380
210
  ```
381
211
 
382
- ### Auto-routing 끄기
212
+ ### 모드 전환 후 상태 꼬임
213
+ ```bash
214
+ # progress.json 직접 확인
215
+ cat .harness/progress.json | jq '{mode, sprint, current_agent, next_agent}'
383
216
 
384
- ```
385
- ❯ harness skip 답만 해줘
217
+ # 강제 Solo 복귀
218
+ jq '.mode = "solo"' .harness/progress.json > /tmp/p.json && mv /tmp/p.json .harness/progress.json
386
219
  ```
387
220
 
388
- 또는 `.harness/config.json`에서 `behavior.auto_route_dispatcher = false`
389
-
390
221
  ---
391
222
 
392
- ## 참고
393
-
394
- - [Anthropic: Effective Harnesses for Long-Running Agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents)
395
- - [Anthropic: Harness Design for Long-Running Application Development](https://www.anthropic.com/engineering/harness-design-long-running-apps)
396
- - [Claude Code Skills Documentation](https://code.claude.com/docs/en/skills)
397
- - [obra/superpowers](https://github.com/obra/superpowers) — Brainstorming skill (MIT License)
398
-
399
223
  ## License
400
224
 
401
225
  MIT
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "harness": {
3
3
  "name": "6-Agent Production Harness",
4
- "version": "3.3.0",
5
- "description": "Dispatcher + NestJS MSA + React/Next.js + Playwright 기반 실무 하네스",
4
+ "version": "5.0.0",
5
+ "description": "Solo/Team 통합 하네스 — Dispatcher + NestJS MSA + React/Next.js + Playwright",
6
6
  "source": "https://www.anthropic.com/engineering/harness-design-long-running-apps"
7
7
  },
8
8
  "agents": {
@@ -132,7 +132,7 @@
132
132
  "스크린샷 없이 '확인했다'고 주장하는 행위"
133
133
  ]
134
134
  }
135
- },
135
+ }
136
136
  },
137
137
  "flow": {
138
138
  "sequence": ["dispatcher", "planner", "generator-backend", "generator-frontend", "evaluator-functional", "evaluator-visual"],
@@ -163,11 +163,12 @@
163
163
  "timeout_seconds": 120,
164
164
  "on_fail": "reroute_to_generator"
165
165
  },
166
- "parallel": {
167
- "comment": "v4 Parallel Agent Teams 설정. npx walwal-harness v4 로 실행.",
168
- "enabled": false,
166
+ "team": {
167
+ "comment": "Team Mode 설정. /harness-team 커맨드로 실행.",
169
168
  "concurrency": 3,
170
- "max_attempts_per_feature": 3,
169
+ "max_retries_per_feature": 5,
170
+ "escalate_after": 3,
171
+ "auto_dequeue": true,
171
172
  "gen_model": "sonnet",
172
173
  "eval_model": "opus",
173
174
  "branch_strategy": "feature-branch",
@@ -1,5 +1,6 @@
1
1
  {
2
- "version": 1,
2
+ "version": 2,
3
+ "mode": "solo",
3
4
  "project_name": "",
4
5
  "pipeline": null,
5
6
  "sprint": {
@@ -23,6 +24,11 @@
23
24
  "api-contract.json": { "status": "pending", "updated_by": null, "updated_at": null },
24
25
  "sprint-contract.md": { "status": "pending", "updated_by": null, "updated_at": null }
25
26
  },
27
+ "team_state": {
28
+ "active_teams": 0,
29
+ "paused_at": null,
30
+ "resume_from": null
31
+ },
26
32
  "updated_at": "{{DATE}}",
27
33
  "history": []
28
34
  }