@walwal-harness/cli 7.1.9 → 7.1.10

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.
@@ -35,9 +35,12 @@ has_legacy_flat_worker_report() {
35
35
  find "$mission_dir/workers" -maxdepth 1 -type f -name '*.md' 2>/dev/null | grep -q .
36
36
  }
37
37
 
38
- for mission_dir in "$DOC_ROOT"/*; do
38
+ mission_dirs=$(find "$DOC_ROOT" -type f \( -name 'ceo.md' -o -name 'coo.md' -o -name 'cdo.md' -o -name 'cto.md' -o -name 'cqo.md' -o -name 'ops.md' \) -exec dirname {} \; 2>/dev/null | sort -u)
39
+
40
+ while IFS= read -r mission_dir; do
41
+ [ -n "$mission_dir" ] || continue
39
42
  [ -d "$mission_dir" ] || continue
40
- mission_name="$(basename "$mission_dir")"
43
+ mission_name="${mission_dir#$DOC_ROOT/}"
41
44
 
42
45
  ceo_path="$mission_dir/ceo.md"
43
46
  if [ -s "$ceo_path" ] && ! has_implementation_notes "$ceo_path"; then
@@ -71,7 +74,9 @@ for mission_dir in "$DOC_ROOT"/*; do
71
74
  if [ -s "$cqo_path" ] && grep -Eq '\b(ACCEPTED|REJECTED|PASS|FAIL)\b' "$cqo_path" && ! has_worker_report "$mission_dir" "cqo"; then
72
75
  violations+=("$mission_name:cqo-verdict-without-evaluator")
73
76
  fi
74
- done
77
+ done <<EOF
78
+ $mission_dirs
79
+ EOF
75
80
 
76
81
  if [ "${#violations[@]}" -eq 0 ]; then
77
82
  if [ "$mode" = "json" ]; then
@@ -73,7 +73,7 @@ function convertFile(file) {
73
73
  '- You are a hireable HR-Resource worker, not a CXX executive.',
74
74
  '- Work only after a CXX assigns a mission through `/hiring` and `/resource-manager` wiring.',
75
75
  '- Start each assignment from fresh context.',
76
- '- Record mission output in `.harness/documents/{mission_name}/workers/{name}.md` unless the requester specifies another mission document.',
76
+ '- Record mission output in `.harness/documents/{goal-or-child-mission}/{owning-cxx}/workers/{name}.md` unless the requester specifies another mission document.',
77
77
  '- Follow DDD boundaries for domain, application, infrastructure, and interface decisions.',
78
78
  ''
79
79
  ].join('\n');
@@ -239,6 +239,18 @@ cat > "$AGENTS_FILE" << AGENTSEOF
239
239
  - Monorepo: ${TECH_MONO}
240
240
  - OpenAPI: ${OPENAPI}
241
241
 
242
+ ## Harness Entry Points
243
+
244
+ Owner-facing commands are limited to:
245
+
246
+ | Command | Purpose | History path |
247
+ |------|------|------|
248
+ | \`/goal\` | Set or change the company goal | \`.harness/documents/goal-{index}-{name}/\` |
249
+ | \`/submission\` | Add a requirement under the active goal | \`.harness/documents/goal-{index}-{name}/submission-{index}-{name}/\` |
250
+ | \`/hot-fix\` | Fix an urgent issue under the active goal | \`.harness/documents/goal-{index}-{name}/hotfix-{index}-{name}/\` |
251
+
252
+ Owner speaks only to CEO. CEO speaks only to CXX. CXX agents coordinate and hire workers; they do not directly produce specialist deliverables. Worker reports must live under \`.harness/documents/{goal-or-child-mission}/{owning-cxx}/workers/\`.
253
+
242
254
  ## IA-MAP (Information Architecture)
243
255
 
244
256
  > 자동 스캔으로 생성됨. Planner가 검토 후 확정해야 합니다.
@@ -300,6 +312,9 @@ AGENTS.md 또는 api-contract.json 변경이 필요할 때:
300
312
 
301
313
  | 명령 | 설명 |
302
314
  |------|------|
315
+ | \`/goal\` | 회사 목표 설정 또는 변경 |
316
+ | \`/submission\` | 활성 goal 하위 추가 요구사항 |
317
+ | \`/hot-fix\` | 활성 goal 하위 긴급 수정 |
303
318
  | \`bash scripts/scan-project.sh\` | 프로젝트 구조 재스캔 |
304
319
  | \`.harness/progress.json\` | 현재 진행 상태 (기계 판독) |
305
320
  | \`.harness/actions/\` | 활성 스프린트 문서 |
@@ -332,6 +347,6 @@ echo ""
332
347
  echo "=== Initialization Complete ==="
333
348
  echo ""
334
349
  echo "Next steps:"
335
- echo " 1. AGENTS.md의 [?] 태그를 확인하고 Planner에게 분류를 요청하세요"
350
+ echo " 1. AGENTS.md의 [?] 태그를 확인하고 COO에게 분류를 요청하세요"
336
351
  echo " 2. 'Preserved Rules' 섹션에서 불필요한 규칙을 정리하세요"
337
- echo " 3. '하네스 엔지니어링 시작'으로 Dispatcher를 실행하세요"
352
+ echo " 3. /goal, /submission, 또는 /hot-fix로 CEO/CXX 흐름을 시작하세요"
@@ -1,114 +0,0 @@
1
- # AGENTS.md — {{PROJECT_NAME}}
2
- # walwal-harness v7.1 | Company Mode
3
- # 설치일: {{DATE}} | CLAUDE.md는 이 파일의 심볼릭 링크입니다.
4
-
5
- ---
6
-
7
- ## 1. 진입점
8
-
9
- Owner가 회사에 접근하는 명령은 두 개뿐이다. 그 외의 경로는 없다.
10
-
11
- | 명령 | 사용 시점 |
12
- |---|---|
13
- | `/goal` | 미션 설정, 수정, 추가 |
14
- | `/hot-fix` | 활성 goal과 독립된 긴급 수정 |
15
-
16
- `/ceo`, `/cto`, `/cqo`, `/coo`, `/cdo`, `/ops`, `/hiring`은 slash command가 아니다.
17
- 내부 라우팅은 agent/skill wiring으로만 처리한다.
18
-
19
- ---
20
-
21
- ## 2. 행동 전 확인
22
-
23
- 가정하지 않는다. 불명확한 것을 숨기지 않는다.
24
-
25
- - 구현 전 가정을 명시한다. 불확실하면 질문한다.
26
- - 여러 접근이 가능하면 모두 제시한다 — 조용히 선택하지 않는다.
27
- - 요청을 해결하는 최소한의 변경만 한다. 추측성 scope는 금지.
28
- - 불명확한 부분이 있으면 멈춘다. 무엇이 불명확한지 명시하고 질문한다.
29
-
30
- hot-fix: 가장 작은 올바른 패치만. 인접 코드를 "개선"하지 않는다.
31
- goal: CEO가 CXX에 라우팅하기 전에 검증 가능한 성공 기준을 정의한다.
32
-
33
- ---
34
-
35
- ## 3. Company 구조
36
-
37
- ```
38
- Owner
39
- └─ /goal 또는 /hot-fix
40
- └─ harness-ceo 오케스트레이터 — Owner의 유일한 접점
41
- ├─ harness-coo 리서치, 가설, 서비스 방향
42
- ├─ harness-cdo 브랜딩, UI/UX, 디자인 리뷰
43
- ├─ harness-cto 아키텍처, API, 플랫폼, 구현 총괄
44
- ├─ harness-cqo 품질 게이트, 회귀, archive, gotcha/convention 관리
45
- └─ harness-ops 빌드 모니터링, 로그 분석, 서비스 이벤트
46
- ```
47
-
48
- 각 CXX는:
49
- - **독립된 fresh session 컨텍스트**에서 실행된다 — CEO 세션과 메모리를 공유하지 않는다
50
- - 결정을 `.harness/documents/{mission_name}/{cxx}.md`에 기록한다
51
- - 모든 전문 작업을 hired worker에게 위임한다 — 직접 실행하지 않는다
52
- - 필요한 worker가 없으면 `harness-hiring`을 먼저 호출한다
53
-
54
- CEO는 worker 기록 없이 완료된 산출물을 포함한 CXX 보고서를 거부한다.
55
-
56
- ---
57
-
58
- ## 4. 미션 플로우
59
-
60
- ### Goal
61
-
62
- 1. CEO가 Owner 요청을 읽고 판단한다: 브레인스토밍 먼저, 또는 즉시 실행.
63
- 2. CEO가 관련 CXX에게만 범위를 한정한 질문을 전달한다.
64
- 3. 각 CXX가 worker를 고용하고, 위임하고, 결과를 수집하여 `{cxx}.md`에 기록한다.
65
- 4. CEO가 CXX 산출물을 종합하여 다음 CXX에 라우팅하거나 Owner에게 보고한다.
66
-
67
- **완료 기준:** `.harness/documents/{mission_name}/ceo.md`에 최종 Owner 보고가 존재한다.
68
-
69
- ### Hot Fix
70
-
71
- 1. CEO가 긴급 요청을 받고 즉시 CTO와 CQO를 소집한다.
72
- 2. CTO가 최소 패치 경로를 설계하고 구현 worker를 고용한다.
73
- 3. Worker가 구현한다. CTO가 worker 증거를 검증하고 `cto.md`를 작성한다.
74
- 4. CQO가 회귀 게이트를 실행한다. `.harness/gotchas/` 또는 `.harness/conventions/`에 교훈을 등록하고 `cqo.md`를 작성한다.
75
- 5. CQO 판정 **PASS** 이후에만 archive한다.
76
-
77
- **완료 기준:** `cto.md`, `cqo.md`, 그리고 최소 하나의 신규 gotcha 또는 convention 항목이 존재한다.
78
-
79
- 주의: harness 문서(ceo.md, cto.md, cqo.md, worker 보고서)에 대한 docmeta skip 판단은 미션 프로토콜 단계를 건너뛸 권한을 부여하지 않는다. 이 파일들은 분석 산출물이 아니라 미션 기록이다.
80
-
81
- ---
82
-
83
- ## 5. 하네스 런타임
84
-
85
- | 경로 | 역할 |
86
- |---|---|
87
- | `.harness/documents/{mission}/` | 미션별 CXX 결정 기록 및 worker 보고서 |
88
- | `.harness/conventions/` | 지속 규칙 (CQO가 작성, 미션을 넘어 유지) |
89
- | `.harness/gotchas/` | 재발 방지 기록 (CQO가 hot-fix마다 작성) |
90
- | `.harness/memories/` | 장기 공유 컨텍스트 |
91
- | `.harness/shared/HR-Resource/` | 채용 가능한 worker skill pool |
92
- | `.harness/archive/` | CQO 승인 완료 미션 (불변) |
93
- | `.harness/logs/YYYY-MM-DD/` | OPS 예외 로그 (비정상 케이스만) |
94
-
95
- `.harness/`는 미션 상태 저장소다. 빌드 산출물이 아니다. 삭제하지 않는다.
96
-
97
- ---
98
-
99
- ## 6. 금지 규칙
100
-
101
- 1. **`{mission}/cto.md` 없이 소스 코드 편집 금지** — CTO의 범위 승인이 있어야 소스 파일을 수정할 수 있다.
102
- 2. **CXX 사칭 금지** — 현재 모델이 CEO/CTO/CQO를 인라인으로 대행하지 않는다. 설치된 harness skill을 fresh session에서 사용한다.
103
- 3. **이름 없는 worker 금지** — 모든 전문 작업은 `harness-hiring` → `harness-resource-manager`를 거친다.
104
- 4. **CQO 판정 없이 archive 금지** — 명시적 PASS가 담긴 `{mission}/cqo.md`가 존재해야 한다.
105
- 5. **gotcha 등록 생략 금지** — 모든 hot-fix는 `.harness/gotchas/` 또는 `.harness/conventions/`에 최소 하나의 항목을 만든다.
106
- 6. **미션 중 이 파일 편집 금지** — AGENTS.md를 수정하려면 별도 `/goal`을 제출한다.
107
-
108
- ---
109
-
110
- ## 7. 프로젝트 컨텍스트
111
-
112
- - **기술 스택**: {{TECH_STACK}}
113
- - **프로젝트 구조**: {{PROJECT_STRUCTURE}}
114
- - **하네스 설치일**: {{DATE}}