leerness 1.9.33 → 1.9.35
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/CHANGELOG.md +79 -0
- package/README.md +288 -362
- package/bin/harness.js +439 -69
- package/package.json +1 -1
- package/scripts/e2e.js +111 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,84 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.35 — 2026-05-17
|
|
4
|
+
|
|
5
|
+
**파이프라인 메타-감사에서 도출된 5개 개선 사항 통합**.
|
|
6
|
+
|
|
7
|
+
이전 라운드(1.9.34)에서 멀티 에이전트 오케스트레이션 전체 파이프라인을 메타-검증한 결과 8개 개선점을 도출. 그 중 high-impact 5건을 1.9.35에 즉시 통합.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`leerness contract verify <spec.md> <impl.js>`** (#3) — 사양 ↔ 구현 일치 검사.
|
|
12
|
+
- spec 문서에서 `function fooBar(` / `` `bar(` `` / `tick.<field>` 패턴 추출
|
|
13
|
+
- impl의 `module.exports`와 비교 → 누락된 함수/필드 보고
|
|
14
|
+
- `--json` 출력 지원, exit code 1 if 불일치 (CI 친화)
|
|
15
|
+
- 1.9.34 멀티 에이전트 검증에서 발견한 "tick 페이로드 필드명 불일치" 자동 차단
|
|
16
|
+
- **`leerness reuse autodetect [path]`** (#2) — `src/*.js`의 `module.exports`를 스캔하여 reuse-map.md 후보 자동 등록.
|
|
17
|
+
- `_internal` 헬퍼는 제외 (밑줄로 시작하는 export 자동 필터)
|
|
18
|
+
- `--apply`로 reuse-map.md에 자동 추가, 기본은 dry-run
|
|
19
|
+
- **`leerness audit --fix`** (#5) — 누락된 메타 파일 자동 갱신.
|
|
20
|
+
- `session-handoff.md`의 `Last generated: (자동)` → 실제 타임스탬프
|
|
21
|
+
- `current-state.md`의 stale `Updated` 라인 → today로 갱신
|
|
22
|
+
- `--fix` 미지정 시 기존 경고 동작 유지 (안전한 opt-in)
|
|
23
|
+
- **`handoff <path>` .harness 부재 자동 경고** (#1) — 신규 디렉토리에서 handoff 호출 시 즉시 노랑색 경고 + `leerness init` 명령 안내. `--no-init-check` 또는 `--all-apps` 시 스킵.
|
|
24
|
+
- **`agents dispatch` 안내문에 안전 규칙 추가** (#4) — 멀티 에이전트 분배 시 파일 경로 격리, mtime 검증 요구, contract verify 권장을 안내문에 자동 포함.
|
|
25
|
+
|
|
26
|
+
### Policy
|
|
27
|
+
- ✅ 모든 신규 명령은 기본 read-only · destructive 동작은 명시적 플래그(`--fix`, `--apply`) 필요
|
|
28
|
+
- ✅ 1.9.34 멀티 에이전트 검증의 모범 사례(파일 경로 격리, mtime 자기 검증, 사양 사전 합의)를 도구로 코드화
|
|
29
|
+
- ❌ 자동 init은 destructive이므로 자동 실행 안 함 — 사용자에게 명령만 안내
|
|
30
|
+
|
|
31
|
+
### 실측 (이번 라운드)
|
|
32
|
+
- 메타-감사 보고서: `_reports/PIPELINE_META_AUDIT.md` (10 phases, 8 개선점)
|
|
33
|
+
- rpg-replay 통합 패치: 회귀 0건 · 128/128 PASS · BUG-A/B/C 모두 해결 (별도 라운드)
|
|
34
|
+
- contract verify 실 사용 사례: format.js에 spec의 `tick.effect` 필드 없음 발견
|
|
35
|
+
- e2e: 161/161 PASS (1.9.34 156 + 신규 5)
|
|
36
|
+
|
|
37
|
+
## 1.9.34 — 2026-05-16
|
|
38
|
+
|
|
39
|
+
**방향키 + 스페이스 인터랙티브 multi-select + 256색 그라데이션 배너 + 멀티레벨 sub-agent 오케스트레이션 검증**.
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
|
|
43
|
+
- **`_selectOne()` / `_selectMany()` 헬퍼**: TTY raw mode + readline 이벤트 처리.
|
|
44
|
+
- 방향키 ↑↓ (또는 j/k vim binding) — 커서 이동
|
|
45
|
+
- Space — 토글 (multi-select)
|
|
46
|
+
- a / n — 전체 선택 / 전체 해제
|
|
47
|
+
- Enter — 확정
|
|
48
|
+
- q / ESC / Ctrl+C — 취소 (기본값 또는 빈 배열 반환)
|
|
49
|
+
- **`resolveInstallOptions`에 적용**: 언어 선택 + 스킬 라이브러리 선택을 multi-select UI로 전환.
|
|
50
|
+
- **`setupAgentsCmd`에 적용**: 4 CLI 일괄 활성화를 Space 토글로 선택 (이전엔 각각 yes/no 4번).
|
|
51
|
+
- **ASCII 배너 256색 그라데이션**: 6 라인을 cyan(51) → 자주(165)로 6단계 그라데이션. ★ 강조 + magenta 색 강조 항목.
|
|
52
|
+
- **`--no-interactive-select` 플래그 + `LEERNESS_NO_INTERACTIVE=1` env**: 구식 숫자 prompt 폴백.
|
|
53
|
+
|
|
54
|
+
### 멀티레벨 sub-agent 오케스트레이션 검증 (실측)
|
|
55
|
+
|
|
56
|
+
메인 에이전트 → sub-agent(Claude) → sub-sub-agent(외부 gemini CLI) 3단계 깊이 검증.
|
|
57
|
+
|
|
58
|
+
| 항목 | 결과 |
|
|
59
|
+
|---|---|
|
|
60
|
+
| 단일 gemini 호출 | ✅ 15.6s, 영문 번역 정상 |
|
|
61
|
+
| 병렬 ×2 | ✅ 24s, 출력 분리 정상 (quota retry 1회) |
|
|
62
|
+
| 효율 (순차 3회 33s vs 병렬 3회 15s) | **2.2× 향상** (이론 3× 대비 60%) |
|
|
63
|
+
| 검수 체인 (결과 → 평가) | ✅ "2" → "yes" 정상 |
|
|
64
|
+
| 같은 파일 동시 쓰기 | ⚠ **last-writer-wins, 락 없음 → 데이터 손실 위험** |
|
|
65
|
+
|
|
66
|
+
**결론**:
|
|
67
|
+
- 3단계 오케스트레이션 안전하게 동작
|
|
68
|
+
- 독립 작업(번역/평가/리뷰) 2×+ 효율 향상
|
|
69
|
+
- 같은 리소스 동시 쓰기는 호출자가 파일 경로 격리 책임
|
|
70
|
+
- gemini quota 동시 호출 시 retry → 병렬 확장성 ~3개로 제한
|
|
71
|
+
|
|
72
|
+
### Policy
|
|
73
|
+
- ❌ 비-TTY/CI/`--yes` 시 multi-select prompt 자동 스킵 (defaults 사용)
|
|
74
|
+
- ❌ 같은 파일/리소스 동시 쓰기 sub-agent 분배 금지 (호출자 책임)
|
|
75
|
+
- ✅ 인터랙티브 prompt는 256색 ANSI 미지원 환경에서도 동작 (`LEERNESS_NO_INTERACTIVE=1` 폴백)
|
|
76
|
+
- ✅ q/ESC로 언제든 취소 가능 (기본값으로 fallback)
|
|
77
|
+
|
|
78
|
+
### 실측 (이번 라운드)
|
|
79
|
+
- 워크스페이스 28 프로젝트 일괄 1.9.16~1.9.31 → 1.9.33 → 1.9.34 마이그레이션
|
|
80
|
+
- e2e: 156/156 PASS (1.9.33 153 + multi-select 폴백 + 배너 + --no-interactive-select 3개)
|
|
81
|
+
|
|
3
82
|
## 1.9.33 — 2026-05-15
|
|
4
83
|
|
|
5
84
|
**npx 캐시 함정 방지 — install 시 stale 버전 자동 경고 + 해결 안내**.
|