@walwal-harness/cli 7.1.2 → 7.1.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/HR-Resource/cdo/SKILL.md +2 -2
- package/HR-Resource/ceo/SKILL.md +22 -1
- package/HR-Resource/coo/SKILL.md +2 -2
- package/HR-Resource/cqo/SKILL.md +12 -7
- package/HR-Resource/cto/SKILL.md +9 -6
- package/HR-Resource/hiring/SKILL.md +11 -8
- package/HR-Resource/ops/SKILL.md +2 -2
- package/HR-Resource/resource-manager/SKILL.md +8 -5
- package/README.md +95 -343
- package/assets/templates/AGENTS-ko.md.template +160 -0
- package/assets/templates/AGENTS.md.template +107 -72
- package/bin/init.js +170 -3
- package/commands/goal.md +2 -0
- package/commands/hot-fix.md +10 -7
- package/package.json +1 -1
- package/scripts/harness-worker-evidence-validate.sh +22 -7
package/README.md
CHANGED
|
@@ -1,407 +1,159 @@
|
|
|
1
1
|
# @walwal-harness/cli
|
|
2
2
|
|
|
3
|
-
AI
|
|
3
|
+
**v7.1** — Company-mode AI agent harness for Claude Code and Codex.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
핵심 개념은 "하나의 프로젝트 = 하나의 회사" 입니다.
|
|
5
|
+
One project = one company. The Owner speaks only to the CEO. The CEO speaks only to CXX agents. CXX agents hire specialist workers. No one skips a level.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
- Dispatcher: CEO, 유일한 대화 창구
|
|
10
|
-
- Planner: COO, 기획·가설·HR
|
|
11
|
-
- CTO: 구현 총괄
|
|
12
|
-
- CQO: 품질 총괄
|
|
13
|
-
- Service-Ops: 운영·모니터링·회고
|
|
14
|
-
- Conductor: 자율 라우터
|
|
15
|
-
- Meeting-Manager: 회의 소집기
|
|
7
|
+
---
|
|
16
8
|
|
|
17
|
-
|
|
9
|
+
## Company Structure
|
|
18
10
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- 에이전트는 대화 기억보다 문서 팩트를 우선합니다.
|
|
22
|
-
- 작업 전환은 항상 `progress.json`, `handoff.json`, `task session` 을 기준으로 이뤄집니다.
|
|
23
|
-
- 회의는 동기화와 의사결정에 쓰고, 단순 런타임 복구는 값싼 상태 기반 로직으로 처리합니다.
|
|
24
|
-
- TokenLimit, retry, drift, handoff 같은 운영 문제를 코드가 아니라 하네스 레벨에서 다룹니다.
|
|
25
|
-
|
|
26
|
-
## 회사 구조
|
|
27
|
-
|
|
28
|
-
```text
|
|
11
|
+
```
|
|
29
12
|
Owner
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
│ ├─ coo-developer
|
|
38
|
-
│ └─ documentationer
|
|
39
|
-
├─ CTO
|
|
40
|
-
│ ├─ generator-backend
|
|
41
|
-
│ ├─ generator-frontend
|
|
42
|
-
│ ├─ generator-designer
|
|
43
|
-
│ └─ generator-devops
|
|
44
|
-
├─ CQO
|
|
45
|
-
│ ├─ evaluator-code-quality
|
|
46
|
-
│ ├─ evaluator-functional
|
|
47
|
-
│ ├─ evaluator-visual
|
|
48
|
-
│ ├─ evaluator-architecture
|
|
49
|
-
│ └─ evaluator-security
|
|
50
|
-
└─ Service-Ops
|
|
13
|
+
└─ /goal · /hot-fix
|
|
14
|
+
└─ harness-ceo orchestrator — Owner's only contact
|
|
15
|
+
├─ harness-coo research, hypothesis, service direction
|
|
16
|
+
├─ harness-cdo branding, UI/UX, design review
|
|
17
|
+
├─ harness-cto architecture, API, platform, implementation
|
|
18
|
+
├─ harness-cqo quality gates, regression, archive, gotcha/convention
|
|
19
|
+
└─ harness-ops build monitoring, log analysis, service events
|
|
51
20
|
```
|
|
52
21
|
|
|
53
|
-
###
|
|
22
|
+
### Hierarchy Rules (non-negotiable)
|
|
54
23
|
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
- `CQO`: 적대적 평가와 회귀 차단
|
|
61
|
-
- `Service-Ops`: cadence, 운영 drift, auto-retro
|
|
62
|
-
- `coo-developer`: 빠른 spike, backdata 검증
|
|
63
|
-
- `documentationer`: 웹 리서치, 실험 보고서, 가설 유효/무효 판정
|
|
24
|
+
- **CEO → CXX only.** CEO never dispatches or hires workers directly. All worker contact goes through the responsible CXX.
|
|
25
|
+
- **CTO → dev workers.** CTO hires and briefs implementation workers. `cto.md` must exist before any worker is dispatched.
|
|
26
|
+
- **CQO → evaluator/tester workers.** CQO hires evaluation workers and bases its verdict entirely on their evidence. Self-inspection by CQO is not valid evidence.
|
|
27
|
+
- **No CXX self-execution.** CXX agents coordinate and manage only. A CXX that produces specialist deliverables without matching worker records has violated its scope.
|
|
28
|
+
- **No verdict without worker evidence.** CQO cannot issue ACCEPTED/REJECTED without a Worker Evidence Manifest referencing at least one evaluator worker.
|
|
64
29
|
|
|
65
|
-
|
|
30
|
+
---
|
|
66
31
|
|
|
67
|
-
|
|
32
|
+
## Install
|
|
68
33
|
|
|
69
34
|
```bash
|
|
70
35
|
npm i @walwal-harness/cli
|
|
71
36
|
```
|
|
72
37
|
|
|
73
|
-
|
|
38
|
+
Restart Claude Code after install.
|
|
74
39
|
|
|
75
|
-
|
|
40
|
+
To initialize a project:
|
|
76
41
|
|
|
77
42
|
```bash
|
|
78
|
-
npx walwal-harness
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
기존 설치를 현재 패키지 버전에 맞게 다시 정리하려면:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
npx walwal-harness --force
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## 시작 방법
|
|
88
|
-
|
|
89
|
-
새 Claude Code 세션의 첫 메시지:
|
|
90
|
-
|
|
91
|
-
```text
|
|
92
|
-
하네스 엔지니어링 시작
|
|
43
|
+
npx walwal-harness init
|
|
93
44
|
```
|
|
94
45
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
1. `dispatcher` 가 요청을 분류하고 pipeline/runbook 을 정합니다.
|
|
98
|
-
2. 필요하면 `meeting-manager` 가 CEO intake 회의를 엽니다.
|
|
99
|
-
3. `planner` 가 `plan.md`, `feature-list.json`, `api-contract.json` 을 만듭니다.
|
|
100
|
-
4. `conductor` 가 회사 루프에 따라 CTO/CQO/Service-Ops/Meeting 으로 라우팅합니다.
|
|
101
|
-
5. generator / evaluator / cqo / ops 가 문서 기반으로 이어집니다.
|
|
102
|
-
|
|
103
|
-
## 상태 파일
|
|
46
|
+
What `init` installs:
|
|
104
47
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
| 파일 | 역할 |
|
|
48
|
+
| Path | Contents |
|
|
108
49
|
|---|---|
|
|
109
|
-
| `.
|
|
110
|
-
| `.
|
|
111
|
-
| `.harness
|
|
112
|
-
| `.harness/
|
|
113
|
-
|
|
|
114
|
-
|
|
115
|
-
### 중요한 progress 필드
|
|
116
|
-
|
|
117
|
-
- `current_agent`, `agent_status`, `next_agent`
|
|
118
|
-
- `workflow.stage`
|
|
119
|
-
- `meetings.*`
|
|
120
|
-
- `task_sessions.current`
|
|
121
|
-
- `task_stop.*`
|
|
122
|
-
- `goals.*`
|
|
123
|
-
- `conductor.*`, `planner.*`, `cto.*`, `cqo.*`, `service_ops.*`
|
|
124
|
-
|
|
125
|
-
## Task Session
|
|
126
|
-
|
|
127
|
-
각 agent 전환 시 `.harness/actions/task-sessions/<agent>/...md` 가 생성됩니다.
|
|
128
|
-
|
|
129
|
-
목적:
|
|
130
|
-
|
|
131
|
-
- 이전 채팅 문맥을 들고 가지 않기
|
|
132
|
-
- 자기편향적 사고를 줄이기
|
|
133
|
-
- 사실과 추론을 분리하기
|
|
134
|
-
- 재개 시에도 문서 기준으로만 이어가기
|
|
135
|
-
|
|
136
|
-
에이전트는 task session, handoff, progress 를 단일 사실원으로 사용해야 합니다.
|
|
50
|
+
| `.claude/commands/goal.md` | `/goal` Owner command |
|
|
51
|
+
| `.claude/commands/hot-fix.md` | `/hot-fix` Owner command |
|
|
52
|
+
| `.claude/skills/harness-{ceo,coo,cdo,cto,cqo,ops}/` | CXX agent skills |
|
|
53
|
+
| `.harness/shared/HR-Resource/` | Hireable worker skill pool |
|
|
54
|
+
| `AGENTS.md` ← `CLAUDE.md` symlink | Project harness config |
|
|
137
55
|
|
|
138
|
-
|
|
56
|
+
---
|
|
139
57
|
|
|
140
|
-
|
|
58
|
+
## Mission Flow
|
|
141
59
|
|
|
142
|
-
|
|
60
|
+
### Goal
|
|
143
61
|
|
|
144
|
-
- `Standup`
|
|
145
|
-
- `Sprint Review`
|
|
146
|
-
- `Spec Review`
|
|
147
|
-
- `Incident War Room`
|
|
148
|
-
- `All-Hands`
|
|
149
|
-
|
|
150
|
-
역할:
|
|
151
|
-
|
|
152
|
-
- 회의: owner 결정, drift 분류, evidence 집계, action item 생성
|
|
153
|
-
- Conductor: 회의 결과를 읽고 next agent 갱신
|
|
154
|
-
- Service-Ops: cadence 계산
|
|
155
|
-
|
|
156
|
-
기본 cadence:
|
|
157
|
-
|
|
158
|
-
- `light`: 30m
|
|
159
|
-
- `normal`: 1h
|
|
160
|
-
- `heavy`: 4h
|
|
161
|
-
|
|
162
|
-
## TokenLimit Hold / Resume
|
|
163
|
-
|
|
164
|
-
`TokenLimit` 은 회의가 아니라 런타임 중단 복구 문제로 취급합니다.
|
|
165
|
-
|
|
166
|
-
즉:
|
|
167
|
-
|
|
168
|
-
- 회의 시스템은 그대로 유지
|
|
169
|
-
- TokenLimit 은 별도 저비용 복구 레이어로 처리
|
|
170
|
-
|
|
171
|
-
### 동작 방식
|
|
172
|
-
|
|
173
|
-
토큰 한도로 작업이 중단되면:
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
|
-
bash scripts/harness-token-limit.sh . mark
|
|
177
62
|
```
|
|
178
|
-
|
|
179
|
-
기본 정책:
|
|
180
|
-
|
|
181
|
-
- `TaskStopReason = TokenLimit`
|
|
182
|
-
- 현재 작업은 `paused`
|
|
183
|
-
- `progress.json.task_stop` 에 아래가 기록됨
|
|
184
|
-
- `wake_target`
|
|
185
|
-
- `resume_after`
|
|
186
|
-
- `stopped_agent`
|
|
187
|
-
- `stopped_next_agent`
|
|
188
|
-
- `task_session_path`
|
|
189
|
-
|
|
190
|
-
그 다음:
|
|
191
|
-
|
|
192
|
-
- `SessionStart` 는 별도 모델 probe 없이 시간만 확인
|
|
193
|
-
- 아직 hold 중이면 `retry_after` 와 `wake target` 만 출력
|
|
194
|
-
- 시간이 지나면 `# Harness resume ready` 를 출력하고 원래 CXX/agent 로 복귀
|
|
195
|
-
|
|
196
|
-
테스트용:
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
bash scripts/harness-token-limit.sh . mark 300
|
|
63
|
+
Owner /goal → CEO → [COO] → [CDO] → CTO → [dev workers] → CQO → [evaluator workers]
|
|
200
64
|
```
|
|
201
65
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
- TokenLimit checker 는 회의를 대체하지 않습니다.
|
|
206
|
-
- 에이전트는 복귀 시 이전 대화가 아니라 `task_session_path` 와 문서를 보고 이어갑니다.
|
|
207
|
-
|
|
208
|
-
## COO Hypothesis Cell
|
|
209
|
-
|
|
210
|
-
정규 CTO/CQO 라인에 넣기 전, COO 직속으로 빠른 가설 검증 셀을 돌릴 수 있습니다.
|
|
66
|
+
1. CEO reads Owner request, writes `ceo.md`, routes to relevant CXX.
|
|
67
|
+
2. Each CXX writes its own `{cxx}.md`, hires workers, collects evidence.
|
|
68
|
+
3. CEO aggregates CXX outputs and reports to Owner.
|
|
211
69
|
|
|
212
|
-
|
|
70
|
+
### Hot Fix
|
|
213
71
|
|
|
214
|
-
- `coo-developer`
|
|
215
|
-
- `documentationer`
|
|
216
|
-
|
|
217
|
-
흐름:
|
|
218
|
-
|
|
219
|
-
1. `planner.requested_mode = "hypothesis"`
|
|
220
|
-
2. `documentationer` 가 리서치/질문 정리
|
|
221
|
-
3. `coo-developer` 가 spike / backdata 실험
|
|
222
|
-
4. `documentationer` 가 보고서와 verdict 작성
|
|
223
|
-
5. `planner` 가 결과를 정규 sprint artifact 로 승격하거나 폐기
|
|
224
|
-
|
|
225
|
-
핵심은 운영 품질이 아니라 빠른 사실 확인입니다.
|
|
226
|
-
|
|
227
|
-
## 런타임 (회사모드 always-on)
|
|
228
|
-
|
|
229
|
-
회사모드는 유일한 런타임이며 항상 켜져 있습니다. `progress.mode == "company"` 가 항상 참이고, 별도 모드 전환 명령은 없습니다.
|
|
230
|
-
|
|
231
|
-
자율 진행은 두 메커니즘으로 유지됩니다:
|
|
232
|
-
|
|
233
|
-
- **Stop 훅** — Claude 가 한 turn 을 끝내려는 시점에 발화. `conductor.state == "running"` 이고 다음 부서가 있으면 자동으로 turn 을 한 번 더 굴려 끊김 없이 연쇄.
|
|
234
|
-
- **launchd hourly wake (선택)** — 1시간마다 macOS 가 `scripts/harness-wake.sh` 를 호출. idle ≥ 55분이고 `paused/completed/escalated` 가 아닌 프로젝트만 깨움.
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
# 1시간 안전망 wake 등록
|
|
238
|
-
bash scripts/harness-wake-install.sh install .
|
|
239
|
-
|
|
240
|
-
# 상태 확인
|
|
241
|
-
bash scripts/harness-wake-install.sh status
|
|
242
|
-
|
|
243
|
-
# 즉시 한 번 발화 (테스트)
|
|
244
|
-
bash scripts/harness-wake-install.sh run-now
|
|
245
72
|
```
|
|
246
|
-
|
|
247
|
-
회의 결정의 `tracks[]` 는 진행 흐름의 fork-join 단위이며 런타임 모드와는 별개입니다 (`tracks.length ≥ 2` 일 때 parallel).
|
|
248
|
-
- Archive prompt
|
|
249
|
-
|
|
250
|
-
Queue 관련 유용한 명령:
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
bash scripts/harness-queue-manager.sh status .
|
|
254
|
-
bash scripts/harness-queue-manager.sh auto-dispatch .
|
|
255
|
-
bash scripts/harness-queue-manager.sh idle-slots .
|
|
73
|
+
Owner /hot-fix → CEO → CTO → [dev workers] → CQO → [evaluator workers]
|
|
256
74
|
```
|
|
257
75
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
일반적인 흐름:
|
|
76
|
+
1. CEO summons CTO and CQO immediately.
|
|
77
|
+
2. CTO designs minimum patch, hires implementation workers, writes `cto.md`.
|
|
78
|
+
3. CQO runs regression gate with evaluator workers, registers gotcha/convention, writes `cqo.md`.
|
|
263
79
|
|
|
264
|
-
|
|
265
|
-
2. `generator-frontend`
|
|
266
|
-
3. `evaluator-code-quality`
|
|
267
|
-
4. `evaluator-functional`
|
|
268
|
-
5. `evaluator-visual`
|
|
269
|
-
6. `cqo`
|
|
270
|
-
7. `service-ops`
|
|
80
|
+
**Complete when:** `cto.md` + `cqo.md` + at least one `.harness/gotchas/` or `.harness/conventions/` entry exist.
|
|
271
81
|
|
|
272
|
-
|
|
82
|
+
---
|
|
273
83
|
|
|
274
|
-
|
|
275
|
-
- Evidence 없는 점수는 0
|
|
276
|
-
- regression 1건 이상이면 전체 FAIL
|
|
277
|
-
- evaluator 는 읽기 전용
|
|
84
|
+
## Hard Rules
|
|
278
85
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
하네스는 피드백을 세 저장소로 나눠 누적합니다.
|
|
282
|
-
|
|
283
|
-
| 종류 | 용도 |
|
|
86
|
+
| # | Rule |
|
|
284
87
|
|---|---|
|
|
285
|
-
|
|
|
286
|
-
|
|
|
287
|
-
|
|
|
288
|
-
|
|
289
|
-
|
|
88
|
+
| 1 | No source edit without `{mission}/cto.md` — CTO scope sign-off required |
|
|
89
|
+
| 2 | No CXX impersonation — use installed harness skills in fresh sessions |
|
|
90
|
+
| 3 | No unnamed workers — all work routes through `harness-hiring` → `harness-resource-manager` |
|
|
91
|
+
| 4 | No archive without CQO verdict — `{mission}/cqo.md` with explicit PASS must exist |
|
|
92
|
+
| 5 | No gotcha skip — every hot-fix produces at least one gotcha or convention entry |
|
|
93
|
+
| 6 | CEO routes only to CXX — never directly to workers |
|
|
94
|
+
| 7 | No CXX self-execution — deliverables without matching worker records are rejected |
|
|
95
|
+
| 8 | No verdict without worker evidence — CQO self-inspection is not valid |
|
|
290
96
|
|
|
291
|
-
|
|
292
|
-
2. `.harness/conventions/shared.md`
|
|
293
|
-
3. `.harness/conventions/<self>.md`
|
|
294
|
-
4. `.harness/gotchas/<self>.md`
|
|
295
|
-
5. `.harness/memory.md`
|
|
97
|
+
---
|
|
296
98
|
|
|
297
|
-
##
|
|
99
|
+
## Harness Dashboard
|
|
298
100
|
|
|
299
|
-
|
|
300
|
-
|---|---|
|
|
301
|
-
| `scripts/conductor-tick.sh` | 회사 루프 라우터 — 다음 부서 결정 |
|
|
302
|
-
| `scripts/harness-next.sh` | turn 종료 후 handoff 생성 + gotcha/convention 자동 등록 + audit gate |
|
|
303
|
-
| `scripts/harness-progress-set.sh` | progress.json partial update 헬퍼 |
|
|
304
|
-
| `scripts/harness-session-start.sh` | SessionStart 훅 (+ future-dated 라인 자동 격리) |
|
|
305
|
-
| `scripts/harness-user-prompt-submit.sh` | UserPromptSubmit 훅 |
|
|
306
|
-
| `scripts/harness-stop.sh` | Stop 훅 — turn 종료 시 자동 연쇄 |
|
|
307
|
-
| `scripts/harness-wake.sh` | 1시간 안전망 wake (launchd 가 호출) |
|
|
308
|
-
| `scripts/harness-wake-install.sh` | launchd 등록/관리 CLI |
|
|
309
|
-
| `scripts/harness-statusline.sh` | 1줄 statusLine 렌더 |
|
|
310
|
-
| `scripts/harness-queue-manager.sh` | feature queue 관리 |
|
|
311
|
-
| `scripts/harness-meeting-doc.sh` | 회의 문서 skeleton / decision 처리 |
|
|
312
|
-
| `scripts/harness-task-session.sh` | agent 별 task session (TokenLimit) |
|
|
313
|
-
| `scripts/harness-token-limit.sh` | TokenLimit hold/resume 마킹 |
|
|
314
|
-
| `scripts/harness-archive.sh` | sprint 종료 archive |
|
|
315
|
-
| `scripts/harness-gotcha-register.sh` | evaluator output 의 gotcha_candidates 자동 등록 |
|
|
316
|
-
| `scripts/harness-dashboard-up.sh` | Brick Office (브라우저 3D 대시보드) 기동 |
|
|
317
|
-
|
|
318
|
-
## 디렉토리 구조
|
|
319
|
-
|
|
320
|
-
```text
|
|
321
|
-
.harness/
|
|
322
|
-
├── actions/
|
|
323
|
-
│ ├── plan.md
|
|
324
|
-
│ ├── feature-list.json
|
|
325
|
-
│ ├── api-contract.json
|
|
326
|
-
│ ├── sprint-contract.md
|
|
327
|
-
│ ├── meetings/
|
|
328
|
-
│ ├── incidents/
|
|
329
|
-
│ └── task-sessions/
|
|
330
|
-
├── archive/
|
|
331
|
-
├── progress.json
|
|
332
|
-
├── handoff.json
|
|
333
|
-
├── progress.log
|
|
334
|
-
├── config.json
|
|
335
|
-
└── doctrine/
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
상세 조직 규칙은 다음 문서를 봅니다.
|
|
339
|
-
|
|
340
|
-
- `AGENTS.md`
|
|
341
|
-
- `.harness/doctrine/nexus.md`
|
|
342
|
-
- `.harness/agency-mapping.md`
|
|
343
|
-
- `.harness/HARNESS.md`
|
|
344
|
-
|
|
345
|
-
## Troubleshooting
|
|
346
|
-
|
|
347
|
-
### 다음 agent 가 안 뜸
|
|
101
|
+
The harness ships with a real-time dashboard that reads `.harness/documents/` directly.
|
|
348
102
|
|
|
349
103
|
```bash
|
|
350
|
-
|
|
104
|
+
bash scripts/harness-dashboard-up.sh
|
|
351
105
|
```
|
|
352
106
|
|
|
353
|
-
|
|
107
|
+
Features:
|
|
354
108
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
109
|
+
- **Org Tree** — live status of Owner → CEO → CXX → Workers hierarchy
|
|
110
|
+
- **Mission Timeline** — clickable history of goal/hot-fix missions showing the full dispatch chain
|
|
111
|
+
- **Mission Flow tab** — per-mission flow: Owner prompt → CEO routing → CXX → worker files changed → CQO verdict
|
|
112
|
+
- **History tab** — mission-specific Owner request (from CEO summary + closest progress.log match)
|
|
113
|
+
- **Gotchas tab** — searchable `.harness/gotchas/*.md` knowledge base, click to read full markdown
|
|
114
|
+
- **Document tab** — per-CXX markdown doc viewer
|
|
358
115
|
|
|
359
|
-
|
|
116
|
+
---
|
|
360
117
|
|
|
361
|
-
|
|
362
|
-
bash scripts/harness-session-start.sh
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
### TokenLimit hold 상태 확인
|
|
118
|
+
## Harness Runtime Paths
|
|
366
119
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
120
|
+
| Path | Role |
|
|
121
|
+
|---|---|
|
|
122
|
+
| `.harness/documents/{mission}/` | CXX decisions and worker reports per mission |
|
|
123
|
+
| `.harness/documents/{mission}/{cxx}/workers/` | Worker reports owned by that CXX |
|
|
124
|
+
| `.harness/conventions/` | Durable rules (CQO writes, survives missions) |
|
|
125
|
+
| `.harness/gotchas/` | Recurrence-prevention records (CQO registers per hot-fix) |
|
|
126
|
+
| `.harness/shared/HR-Resource/` | Hireable worker skill pool |
|
|
127
|
+
| `.harness/archive/` | CQO-approved completed missions (immutable) |
|
|
128
|
+
| `.harness/logs/YYYY-MM-DD/` | OPS exception logs |
|
|
370
129
|
|
|
371
|
-
|
|
130
|
+
---
|
|
372
131
|
|
|
373
|
-
|
|
374
|
-
bash scripts/harness-queue-manager.sh status .
|
|
375
|
-
```
|
|
132
|
+
## Hiring
|
|
376
133
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
```bash
|
|
380
|
-
# config 확인 — auto_chain_on_stop 이 true 여야 함
|
|
381
|
-
jq '.behavior.auto_chain_on_stop // true' .harness/config.json
|
|
134
|
+
Any CXX uses `harness-hiring` before assigning work to a specialist not yet on roster.
|
|
382
135
|
|
|
383
|
-
# stop_chain_count 와 sprint 상한 확인
|
|
384
|
-
jq '{count: .conductor.stop_chain_count, max: 200}' .harness/progress.json
|
|
385
136
|
```
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
```bash
|
|
390
|
-
bash scripts/harness-wake-install.sh status
|
|
391
|
-
tail -30 ~/.walwal-harness/logs/wake.log
|
|
137
|
+
harness-resource-manager → find available worker
|
|
138
|
+
harness-hiring → register and onboard worker
|
|
139
|
+
{cxx} → hired worker → deliverable → {cxx} evidence manifest
|
|
392
140
|
```
|
|
393
141
|
|
|
394
|
-
|
|
142
|
+
---
|
|
395
143
|
|
|
396
|
-
|
|
144
|
+
## Version History
|
|
397
145
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
-
|
|
404
|
-
|
|
146
|
+
| Version | Summary |
|
|
147
|
+
|---|---|
|
|
148
|
+
| 7.1.6 | CXX hierarchy enforcement: CEO→CXX-only gate, CTO prerequisite gate, CQO worker-evidence mandate; dashboard gotchas tab, mission-specific history tab, worker file list in flow |
|
|
149
|
+
| 7.1.5 | Dashboard: mission flow timeline, markdown viewer, 50vw drawer |
|
|
150
|
+
| 7.1.4 | Dashboard: org-tree redesign with real `.harness/documents/` data |
|
|
151
|
+
| 7.1.3 | Karpathy-style AGENTS.md rewrite, ko templates, hot-fix harness gate rules |
|
|
152
|
+
| 7.1.2 | v7 CEO routing migration, legacy command removal |
|
|
153
|
+
| 7.1.1 | CEO no-git hiring fix, gotcha/convention migration |
|
|
154
|
+
| 7.1.0 | v7.1 merge: OPS monitoring, CXX hiring enforcement |
|
|
155
|
+
|
|
156
|
+
---
|
|
405
157
|
|
|
406
158
|
## License
|
|
407
159
|
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# AGENTS.md — {{PROJECT_NAME}}
|
|
2
|
+
# walwal-harness v7.1 | Company Mode
|
|
3
|
+
# 설치일: {{DATE}} | CLAUDE.md는 이 파일의 심볼릭 링크입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 코딩 전 생각하기
|
|
8
|
+
|
|
9
|
+
**가정하지 않는다. 혼란을 숨기지 않는다. 트레이드오프를 드러낸다.**
|
|
10
|
+
|
|
11
|
+
구현 전:
|
|
12
|
+
- 가정을 명시적으로 밝힌다. 불확실하면 질문한다.
|
|
13
|
+
- 여러 해석이 가능하면 모두 제시한다 — 조용히 선택하지 않는다.
|
|
14
|
+
- 더 단순한 접근이 있으면 말한다. 필요할 때 반론을 제기한다.
|
|
15
|
+
- 불명확한 것이 있으면 멈춘다. 무엇이 혼란스러운지 명시하고 질문한다.
|
|
16
|
+
|
|
17
|
+
## 2. 단순함 우선
|
|
18
|
+
|
|
19
|
+
**문제를 해결하는 최소한의 코드. 추측성 구현은 없다.**
|
|
20
|
+
|
|
21
|
+
- 요청받은 것 이상의 기능을 추가하지 않는다.
|
|
22
|
+
- 단일 용도 코드에 추상화를 도입하지 않는다.
|
|
23
|
+
- 요청하지 않은 "유연성"이나 "설정 가능성"을 추가하지 않는다.
|
|
24
|
+
- 불가능한 시나리오에 대한 에러 처리를 추가하지 않는다.
|
|
25
|
+
- 200줄로 작성했는데 50줄로 될 수 있다면, 다시 작성한다.
|
|
26
|
+
|
|
27
|
+
스스로에게 물어본다: "시니어 엔지니어가 이것을 과도하게 복잡하다고 할까?" 그렇다면 단순화한다.
|
|
28
|
+
|
|
29
|
+
## 3. 외과적 변경
|
|
30
|
+
|
|
31
|
+
**반드시 필요한 것만 건드린다. 자신이 만든 혼란만 정리한다.**
|
|
32
|
+
|
|
33
|
+
기존 코드를 편집할 때:
|
|
34
|
+
- 인접한 코드, 주석, 포맷을 "개선"하지 않는다.
|
|
35
|
+
- 망가지지 않은 것을 리팩터링하지 않는다.
|
|
36
|
+
- 자신이 다르게 작성할 것이라도 기존 스타일을 따른다.
|
|
37
|
+
- 관련 없는 죽은 코드를 발견하면 언급한다 — 삭제하지 않는다.
|
|
38
|
+
|
|
39
|
+
변경으로 인해 고아가 생길 때:
|
|
40
|
+
- 자신의 변경이 만든 미사용 import/변수/함수를 제거한다.
|
|
41
|
+
- 기존에 있던 죽은 코드는 요청받지 않는 한 제거하지 않는다.
|
|
42
|
+
|
|
43
|
+
판단 기준: 변경된 모든 줄이 사용자의 요청으로 직접 추적 가능해야 한다.
|
|
44
|
+
|
|
45
|
+
## 4. 목표 주도 실행
|
|
46
|
+
|
|
47
|
+
**성공 기준을 정의한다. 검증될 때까지 반복한다.**
|
|
48
|
+
|
|
49
|
+
작업을 검증 가능한 목표로 변환한다:
|
|
50
|
+
- "유효성 검사 추가" → "잘못된 입력에 대한 테스트 작성 후 통과시키기"
|
|
51
|
+
- "버그 수정" → "버그를 재현하는 테스트 작성 후 통과시키기"
|
|
52
|
+
- "X 리팩터링" → "리팩터링 전후로 테스트가 통과함을 확인"
|
|
53
|
+
|
|
54
|
+
다단계 작업의 경우 간략한 계획을 제시한다:
|
|
55
|
+
```
|
|
56
|
+
1. [단계] → 검증: [확인 방법]
|
|
57
|
+
2. [단계] → 검증: [확인 방법]
|
|
58
|
+
3. [단계] → 검증: [확인 방법]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
명확한 성공 기준은 독립적인 반복을 가능하게 한다. 모호한 기준("잘 동작하게 해줘")은 지속적인 확인을 요구한다.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
**이 가이드라인이 작동하고 있다면:** diff에서 불필요한 변경이 줄고, 과도한 복잡성으로 인한 재작성이 줄고, 실수 후가 아닌 구현 전에 명확화 질문이 나온다.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
# walwal-harness v7.1 — Company Mode
|
|
71
|
+
|
|
72
|
+
이 프로젝트는 walwal-harness company mode로 운영된다.
|
|
73
|
+
위 행동 가이드라인에 더해 아래 규칙이 추가로 적용된다.
|
|
74
|
+
|
|
75
|
+
## 5. 진입점
|
|
76
|
+
|
|
77
|
+
Owner가 회사에 접근하는 명령은 두 개뿐이다. 그 외의 경로는 없다.
|
|
78
|
+
|
|
79
|
+
| 명령 | 사용 시점 |
|
|
80
|
+
|---|---|
|
|
81
|
+
| `/goal` | 미션 설정, 수정, 추가 |
|
|
82
|
+
| `/hot-fix` | 활성 goal과 독립된 긴급 수정 |
|
|
83
|
+
|
|
84
|
+
`/ceo`, `/cto`, `/cqo`, `/coo`, `/cdo`, `/ops`, `/hiring`은 slash command가 아니다.
|
|
85
|
+
내부 라우팅은 agent/skill wiring으로만 처리한다.
|
|
86
|
+
|
|
87
|
+
## 6. Company 구조
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
Owner
|
|
91
|
+
└─ /goal 또는 /hot-fix
|
|
92
|
+
└─ harness-ceo 오케스트레이터 — Owner의 유일한 접점
|
|
93
|
+
├─ harness-coo 리서치, 가설, 서비스 방향
|
|
94
|
+
├─ harness-cdo 브랜딩, UI/UX, 디자인 리뷰
|
|
95
|
+
├─ harness-cto 아키텍처, API, 플랫폼, 구현 총괄
|
|
96
|
+
├─ harness-cqo 품질 게이트, 회귀, archive, gotcha/convention 관리
|
|
97
|
+
└─ harness-ops 빌드 모니터링, 로그 분석, 서비스 이벤트
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
각 CXX는:
|
|
101
|
+
- **독립된 fresh session 컨텍스트**에서 실행된다 — CEO 세션과 메모리를 공유하지 않는다
|
|
102
|
+
- 결정을 `.harness/documents/{mission_name}/{cxx}.md`에 기록한다
|
|
103
|
+
- 모든 전문 작업을 hired worker에게 위임한다 — 직접 실행하지 않는다
|
|
104
|
+
- 필요한 worker가 없으면 `harness-hiring`을 먼저 호출한다
|
|
105
|
+
|
|
106
|
+
CEO는 worker 기록 없이 완료된 산출물을 포함한 CXX 보고서를 거부한다.
|
|
107
|
+
|
|
108
|
+
## 7. 미션 플로우
|
|
109
|
+
|
|
110
|
+
### Goal
|
|
111
|
+
|
|
112
|
+
1. CEO가 Owner 요청을 읽고 판단한다: 브레인스토밍 먼저, 또는 즉시 실행.
|
|
113
|
+
2. CEO가 관련 CXX에게만 범위를 한정한 질문을 전달한다.
|
|
114
|
+
3. 각 CXX가 worker를 고용하고, 위임하고, 결과를 수집하여 `{cxx}.md`에 기록한다.
|
|
115
|
+
4. CEO가 CXX 산출물을 종합하여 다음 CXX에 라우팅하거나 Owner에게 보고한다.
|
|
116
|
+
|
|
117
|
+
**완료 기준:** `.harness/documents/{mission_name}/ceo.md`에 최종 Owner 보고가 존재한다.
|
|
118
|
+
|
|
119
|
+
### Hot Fix
|
|
120
|
+
|
|
121
|
+
1. CEO가 긴급 요청을 받고 즉시 CTO와 CQO를 소집한다.
|
|
122
|
+
2. CTO가 최소 패치 경로를 설계하고 구현 worker를 고용한다.
|
|
123
|
+
3. Worker가 구현한다. CTO가 worker 증거를 검증하고 `cto.md`를 작성한다.
|
|
124
|
+
4. CQO가 회귀 게이트를 실행한다. `.harness/gotchas/` 또는 `.harness/conventions/`에 교훈을 등록하고 `cqo.md`를 작성한다.
|
|
125
|
+
5. CQO 판정 **PASS** 이후에만 archive한다.
|
|
126
|
+
|
|
127
|
+
**완료 기준:** `cto.md`, `cqo.md`, 그리고 최소 하나의 신규 gotcha 또는 convention 항목이 존재한다.
|
|
128
|
+
|
|
129
|
+
주의: harness 문서(ceo.md, cto.md, cqo.md, worker 보고서)에 대한 docmeta skip 판단은 미션 프로토콜 단계를 건너뛸 권한을 부여하지 않는다. 이 파일들은 분석 산출물이 아니라 미션 기록이다.
|
|
130
|
+
|
|
131
|
+
## 8. 하네스 런타임
|
|
132
|
+
|
|
133
|
+
| 경로 | 역할 |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `.harness/documents/{mission}/` | 미션별 CXX 결정 기록 및 worker 보고서 |
|
|
136
|
+
| `.harness/conventions/` | 지속 규칙 (CQO가 작성, 미션을 넘어 유지) |
|
|
137
|
+
| `.harness/gotchas/` | 재발 방지 기록 (CQO가 hot-fix마다 작성) |
|
|
138
|
+
| `.harness/memories/` | 장기 공유 컨텍스트 |
|
|
139
|
+
| `.harness/shared/HR-Resource/` | 채용 가능한 worker skill pool |
|
|
140
|
+
| `.harness/archive/` | CQO 승인 완료 미션 (불변) |
|
|
141
|
+
| `.harness/logs/YYYY-MM-DD/` | OPS 예외 로그 (비정상 케이스만) |
|
|
142
|
+
|
|
143
|
+
`.harness/`는 미션 상태 저장소다. 빌드 산출물이 아니다. 삭제하지 않는다.
|
|
144
|
+
|
|
145
|
+
## 9. 금지 규칙
|
|
146
|
+
|
|
147
|
+
1. **`{mission}/cto.md` 없이 소스 코드 편집 금지** — CTO의 범위 승인이 있어야 소스 파일을 수정할 수 있다.
|
|
148
|
+
2. **CXX 사칭 금지** — 현재 모델이 CEO/CTO/CQO를 인라인으로 대행하지 않는다. 설치된 harness skill을 fresh session에서 사용한다.
|
|
149
|
+
3. **이름 없는 worker 금지** — 모든 전문 작업은 `harness-hiring` → `harness-resource-manager`를 거친다.
|
|
150
|
+
4. **CQO 판정 없이 archive 금지** — 명시적 PASS가 담긴 `{mission}/cqo.md`가 존재해야 한다.
|
|
151
|
+
5. **gotcha 등록 생략 금지** — 모든 hot-fix는 `.harness/gotchas/` 또는 `.harness/conventions/`에 최소 하나의 항목을 만든다.
|
|
152
|
+
6. **미션 중 이 파일 편집 금지** — AGENTS.md를 수정하려면 별도 `/goal`을 제출한다.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 10. 프로젝트 컨텍스트
|
|
157
|
+
|
|
158
|
+
- **기술 스택**: {{TECH_STACK}}
|
|
159
|
+
- **프로젝트 구조**: {{PROJECT_STRUCTURE}}
|
|
160
|
+
- **하네스 설치일**: {{DATE}}
|