@walwal-harness/cli 3.3.2 → 3.4.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.
@@ -0,0 +1,61 @@
1
+ # CONVENTIONS.md — Project Conventions
2
+
3
+ > 이 파일은 프로젝트의 코딩 컨벤션, 선호 패턴, 금지 패턴을 자유 형식으로 정의합니다.
4
+ > 모든 에이전트는 세션 시작 시 이 파일을 읽고 규칙을 적용합니다.
5
+ >
6
+ > **진실의 원천**: 이 파일이 유일한 컨벤션 정의 소스입니다.
7
+ > Gotcha나 AGENTS.md에 복사하지 마세요 — 에이전트가 직접 이 파일을 참조합니다.
8
+
9
+ ## Architecture
10
+
11
+ <!-- 아키텍처 수준의 규칙을 여기에 작성하세요 -->
12
+ <!-- 예시:
13
+ - 서비스 간 직접 DB 접근 금지 — 반드시 API 또는 메시지 패턴 사용
14
+ - 모노리스보다 모듈러 아키텍처 선호
15
+ -->
16
+
17
+ ## Code Style
18
+
19
+ <!-- 코드 스타일 규칙을 여기에 작성하세요 -->
20
+ <!-- 예시:
21
+ - any 타입 사용 금지
22
+ - console.log 대신 structured logger 사용
23
+ - 함수는 30줄 이내, 파일은 300줄 이내
24
+ -->
25
+
26
+ ## Preferred Patterns
27
+
28
+ <!-- 선호하는 라이브러리, 패턴, 접근 방식 -->
29
+ <!-- 예시:
30
+ - 상태관리: Zustand
31
+ - API 호출: TanStack Query
32
+ - 폼 처리: React Hook Form + Zod
33
+ -->
34
+
35
+ ## Avoid
36
+
37
+ <!-- 사용을 피해야 하는 패턴, 라이브러리, 접근 방식 -->
38
+ <!-- 예시:
39
+ - CSS-in-JS (styled-components, emotion)
40
+ - Class components
41
+ - Redux (Zustand으로 대체)
42
+ -->
43
+
44
+ ## Testing
45
+
46
+ <!-- 테스트 관련 규칙 -->
47
+ <!-- 예시:
48
+ - E2E 테스트는 핵심 사용자 플로우만
49
+ - 단위 테스트 커버리지 80% 이상
50
+ - mock 최소화, 실제 DB 사용 선호
51
+ -->
52
+
53
+ ## Naming
54
+
55
+ <!-- 네이밍 컨벤션 -->
56
+ <!-- 예시:
57
+ - 컴포넌트: PascalCase
58
+ - 변수/함수: camelCase
59
+ - 파일: kebab-case
60
+ - DB 테이블: snake_case
61
+ -->
@@ -7,6 +7,7 @@
7
7
  ## 디렉토리 구조
8
8
 
9
9
  ```
10
+ CONVENTIONS.md # 프로젝트 컨벤션 (사용자 작성, 에이전트 읽기 전용)
10
11
  .harness/
11
12
  ├── HARNESS.md # 이 파일
12
13
  ├── config.json # 하네스 설정
@@ -190,7 +191,7 @@ jq . .harness/progress.json # 현재 상태 확인
190
191
 
191
192
  모든 에이전트 스킬에 내장된 프로토콜:
192
193
 
193
- - **On Start**: `progress.json` 읽기 → `agent_status: "running"` 설정 → `handoff.json` 참조
194
+ - **On Start**: `progress.json` 읽기 → `agent_status: "running"` 설정 → `handoff.json` 참조 → `CONVENTIONS.md` 읽기 (존재 시)
194
195
  - **On Complete**: `progress.json` 업데이트 → 아티팩트 상태 갱신 → `next_agent` 계산 → **STOP**
195
196
  - **On Fail** (Evaluator): `failure` 정보 기록 → `retry_target` 설정 → **STOP**
196
197
  - **On Transition**: 파일 소유권 검증 → Pre-Eval Gate (해당 시) → 아티팩트 선행조건 검증
@@ -333,9 +333,17 @@
333
333
  "actions": ".harness/actions",
334
334
  "archive": ".harness/archive",
335
335
  "gotchas": ".harness/gotchas",
336
+ "conventions": "CONVENTIONS.md",
336
337
  "progress_state": ".harness/progress.json",
337
338
  "progress_log": ".harness/progress.log"
338
339
  },
340
+ "conventions": {
341
+ "comment": "CONVENTIONS.md — 사용자가 자유 형식으로 작성하는 프로젝트 컨벤션. 모든 에이전트가 세션 시작 시 직접 읽음. Gotcha/AGENTS.md에 복사하지 않음.",
342
+ "file": "CONVENTIONS.md",
343
+ "read_by": "all_agents",
344
+ "write_by": "user_only",
345
+ "read_timing": "session_start"
346
+ },
339
347
  "recommended_skills": {
340
348
  "comment": "Claude Code에 설치하면 하네스 품질이 향상되는 외부 스킬 목록",
341
349
  "vercel": {
package/bin/init.js CHANGED
@@ -148,6 +148,14 @@ function scaffoldHarness() {
148
148
  copyFile(memorySrc, memoryDest);
149
149
  }
150
150
 
151
+ // Copy CONVENTIONS.md to project root
152
+ const conventionsSrc = path.join(PKG_ROOT, 'assets', 'templates', 'CONVENTIONS.md');
153
+ const conventionsDest = path.join(PROJECT_ROOT, 'CONVENTIONS.md');
154
+ if (fs.existsSync(conventionsSrc) && (!fileExists(conventionsDest) || isForce)) {
155
+ copyFile(conventionsSrc, conventionsDest);
156
+ log('CONVENTIONS.md created — edit to define your project conventions');
157
+ }
158
+
151
159
  // Create progress.log
152
160
  const progressLog = path.join(HARNESS_DIR, 'progress.log');
153
161
  if (!fileExists(progressLog) || isForce) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walwal-harness/cli",
3
- "version": "3.3.2",
3
+ "version": "3.4.0",
4
4
  "description": "Production harness for AI agent engineering — Planner, Generator(BE/FE), Evaluator(Func/Visual), optional Brainstormer (requirements refinement). Supports React and Flutter FE stacks.",
5
5
  "bin": {
6
6
  "walwal-harness": "bin/init.js"