@walwal-harness/cli 5.8.1 → 5.8.2
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/commands/harness-team.md
CHANGED
|
@@ -161,7 +161,35 @@ ORCHESTRATION LOOP:
|
|
|
161
161
|
|
|
162
162
|
#### Step 4a: Merge + Unblock (PASS 처리)
|
|
163
163
|
|
|
164
|
-
|
|
164
|
+
**⚠ HARD GATE — Runtime Bug 검출 시 PASS 처리 금지**
|
|
165
|
+
|
|
166
|
+
Worker 가 PASS 로 반환했더라도, 보고서에 다음 신호가 하나라도 포함되어 있으면 **PASS 처리하지 말고 즉시 FAIL 로 전환**한다. carry-over / 다음 sprint 미루기 절대 금지 — 견고한 기반 위에서만 다음 sprint 로 진행한다.
|
|
167
|
+
|
|
168
|
+
검출 시그널 (worker 반환 텍스트 검색):
|
|
169
|
+
- "runtime bug", "런타임 버그", "런타임 에러", "runtime error"
|
|
170
|
+
- "RSC", "Client Component" 경계 위반 (use client 누락 등)
|
|
171
|
+
- "not-found", "error.tsx", "loading.tsx" 누락/오류
|
|
172
|
+
- "typed-routes", "TypeScript route" 미스매치
|
|
173
|
+
- "console error", "uncaught", "Hydration error", "hydration mismatch"
|
|
174
|
+
- 그 외 worker 가 자신의 결과를 "carry-over", "다음 sprint 에서 처리", "추후 수정", "follow-up" 으로 표현하는 모든 케이스
|
|
175
|
+
|
|
176
|
+
위 신호 검출 시 처리:
|
|
177
|
+
```bash
|
|
178
|
+
# 1) PASS 가 아니라 FAIL 로 큐 업데이트
|
|
179
|
+
bash scripts/harness-queue-manager.sh fail {FEATURE_ID} .
|
|
180
|
+
|
|
181
|
+
# 2) 즉시 같은 feature 를 재투입 (worktree 재사용 또는 새 worker)
|
|
182
|
+
# Agent 프롬프트에 worker 가 보고한 버그 목록을 명시하고
|
|
183
|
+
# "이 sprint 안에서 fix 완료될 때까지 done 처리 금지" 강제
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
3) Sprint 전환 게이트: `next-sprint` 호출 전에 carry-over / known-bug 가 0 인지 반드시 확인. 1 건이라도 남아있으면 sprint advance 금지 — 같은 sprint 안에서 fix sprint 를 한 사이클 더 돈다.
|
|
187
|
+
|
|
188
|
+
이 룰을 위반한 사례: F-209 평가에서 "monitoring page RSC/CC, not-found.tsx, sidebar-nav typed-routes" 3 개 런타임 버그를 인지한 채 PASS 처리하고 Sprint 4 carry-over 로 미룬 적이 있다. 사용자 명시: "오류가 있는 것을 인지한 채로 스프린트를 넘어가는 행위는 절대 용납할 수 없다."
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
위 hard gate 를 통과한(=깨끗한 PASS) 경우에만:
|
|
165
193
|
|
|
166
194
|
1. **Worktree branch 확인**: Agent 반환 결과에서 worktree path와 branch 확인
|
|
167
195
|
2. **Main에 merge**:
|
|
@@ -19,3 +19,13 @@ docmeta:
|
|
|
19
19
|
> Dispatcher가 관리. Evaluator-Code-Quality는 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
20
20
|
|
|
21
21
|
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
22
|
+
|
|
23
|
+
## [G-001] 런타임 버그 인지 후 PASS 판정 금지 (verified · 2026-04-27)
|
|
24
|
+
|
|
25
|
+
**Status**: verified · **Severity**: HIGH
|
|
26
|
+
|
|
27
|
+
**규칙**: Code-quality eval 단계에서 SSR/RSC↔CC 경계 위반, 잘못된 라우트 타입, missing not-found/error.tsx 등 **런타임에 깨질 정적 결함**을 발견하면 즉시 FAIL. "스타일/구조 문제만 본다" 는 자기 합리화로 런타임 결함을 functional 단계로 넘기지 말 것.
|
|
28
|
+
|
|
29
|
+
**Why**: 사용자 명시 — "오류가 있는 것을 인지한 채로 스프린트를 넘어가는 행위는 절대 용납할 수 없다." Code-quality 가 정적 분석으로 잡을 수 있었던 결함을 통과시키면 evaluator chain 전체가 신뢰성을 잃는다.
|
|
30
|
+
|
|
31
|
+
**How to apply**: tsc/eslint 외에도 Next.js App Router 규칙 (use client 경계, typed routes), 라우트 세그먼트 필수 파일 (not-found/error/loading) 누락 여부를 정적으로 검사. 1 건이라도 발견 시 VERDICT=FAIL, retry_target=결함 위치 Generator.
|
|
@@ -1,5 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
docmeta:
|
|
3
|
+
id: evaluator-functional-gotchas
|
|
4
|
+
title: Gotchas — Evaluator-Functional
|
|
5
|
+
type: input
|
|
6
|
+
createdAt: 2026-04-08T00:00:00Z
|
|
7
|
+
updatedAt: 2026-04-27T00:00:00Z
|
|
8
|
+
source:
|
|
9
|
+
producer: user
|
|
10
|
+
skillId: harness-dispatcher
|
|
11
|
+
inputs: []
|
|
12
|
+
tags: [harness, gotcha, evaluator, evaluator-functional]
|
|
13
|
+
---
|
|
14
|
+
|
|
1
15
|
# Gotchas — Evaluator-Functional
|
|
2
16
|
|
|
3
17
|
> Dispatcher가 관리. Evaluator-Functional은 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
4
18
|
|
|
5
19
|
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
20
|
+
|
|
21
|
+
## [G-001] 런타임 버그 인지 후 PASS 판정 금지 (verified · 2026-04-27)
|
|
22
|
+
|
|
23
|
+
**Status**: verified
|
|
24
|
+
**Severity**: HIGH
|
|
25
|
+
**Occurrences**: 1+ (실제 사례: harness-clue Sprint 3 F-209)
|
|
26
|
+
|
|
27
|
+
**규칙**: Evaluator (functional / visual / code-quality 모두) 가 평가 중 런타임 버그를 발견했거나 worker 가 보고서에 런타임 버그를 명시한 경우, **PASS 판정 절대 금지**. carry-over / 다음 sprint 처리 / follow-up 으로 미루기도 금지. 같은 sprint 안에서 fix 완료 후에만 PASS.
|
|
28
|
+
|
|
29
|
+
**검출 시그널** (eval 자체 + worker report 둘 다 스캔):
|
|
30
|
+
- "runtime bug", "런타임 버그/에러", "runtime error"
|
|
31
|
+
- RSC ↔ Client Component 경계 위반 (`use client` 누락 등)
|
|
32
|
+
- `not-found.tsx`, `error.tsx`, `loading.tsx` 누락/오류
|
|
33
|
+
- typed-routes / TypeScript route 타입 미스매치
|
|
34
|
+
- Hydration error, Hydration mismatch
|
|
35
|
+
- 콘솔 uncaught error, unhandled promise rejection
|
|
36
|
+
- worker 가 자기 결과를 "carry-over", "다음 sprint", "추후", "follow-up" 으로 표현
|
|
37
|
+
|
|
38
|
+
**처리**: 위 시그널 1 건 이상 → VERDICT=FAIL, score 무관, retry_target = 결함 위치 Generator. 점수가 2.80+ 이어도 FAIL 강제 (Adversarial Rule).
|
|
39
|
+
|
|
40
|
+
**Why**: 사용자 명시 — "오류가 있는 것을 인지한 채로 스프린트를 넘어가는 행위는 절대 용납할 수 없다. 견고하게 기반을 다져나가야 한다."
|
|
41
|
+
|
|
42
|
+
**How to apply**: Eval 종료 직전 자기 보고서 + Generator 보고서를 위 키워드로 grep. 1 건이라도 매치하면 verdict 를 FAIL 로 강제 변환하고 evaluation-*.md 의 결론 섹션에 "Hard Gate G-001 위반: <검출 키워드> — 같은 sprint 내 fix 후 재평가 필요" 명시.
|
|
@@ -1,5 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
docmeta:
|
|
3
|
+
id: evaluator-visual-gotchas
|
|
4
|
+
title: Gotchas — Evaluator-Visual
|
|
5
|
+
type: input
|
|
6
|
+
createdAt: 2026-04-08T00:00:00Z
|
|
7
|
+
updatedAt: 2026-04-27T00:00:00Z
|
|
8
|
+
source:
|
|
9
|
+
producer: user
|
|
10
|
+
skillId: harness-dispatcher
|
|
11
|
+
inputs: []
|
|
12
|
+
tags: [harness, gotcha, evaluator, evaluator-visual]
|
|
13
|
+
---
|
|
14
|
+
|
|
1
15
|
# Gotchas — Evaluator-Visual
|
|
2
16
|
|
|
3
17
|
> Dispatcher가 관리. Evaluator-Visual은 세션 시작 시 이 파일을 읽고 같은 실수를 반복하지 않습니다.
|
|
4
18
|
|
|
5
19
|
<!-- 항목이 추가되면 아래에 기록됩니다 -->
|
|
20
|
+
|
|
21
|
+
## [G-001] 런타임 버그 인지 후 PASS 판정 금지 (verified · 2026-04-27)
|
|
22
|
+
|
|
23
|
+
**Status**: verified · **Severity**: HIGH
|
|
24
|
+
|
|
25
|
+
**규칙**: Visual eval 중 콘솔 에러/Hydration mismatch/RSC↔CC 경계 위반/렌더 실패가 한 번이라도 관찰되면 PASS 절대 금지. 스크린샷이 멀쩡해 보여도 console.error 가 1 건 이상이면 FAIL. carry-over/follow-up 으로 미루기 금지.
|
|
26
|
+
|
|
27
|
+
**검출 시그널**: console error/warning, Hydration error, "use client" 누락, not-found/error.tsx 미렌더, layout shift 비정상, 404/500 응답.
|
|
28
|
+
|
|
29
|
+
**처리**: VERDICT=FAIL, retry_target=generator-frontend, evaluation-visual.md 결론에 "Hard Gate G-001 위반" 명시. 같은 sprint 내 fix 완료 후에만 재평가.
|
|
30
|
+
|
|
31
|
+
**Why**: 사용자 명시 — "오류가 있는 것을 인지한 채로 스프린트를 넘어가는 행위는 절대 용납할 수 없다."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walwal-harness/cli",
|
|
3
|
-
"version": "5.8.
|
|
3
|
+
"version": "5.8.2",
|
|
4
4
|
"description": "Production harness for AI agent engineering — Solo/Team mode, Planner, Generator(BE/FE), Evaluator chain (Code-Quality → Functional → Visual), optional Brainstormer. Supports React, Next.js, and Flutter FE stacks.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"walwal-harness": "bin/init.js"
|