leerness 1.9.269 → 1.9.271
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 +43 -0
- package/README.md +225 -388
- package/bin/harness.js +246 -32
- package/package.json +1 -1
- package/scripts/e2e.js +26 -0
package/README.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Leerness
|
|
2
2
|
|
|
3
3
|
> **AI 코딩 에이전트의 거짓 완료·중복·망각·충돌을 막아주는 검수·기억·협업 CLI 하네스.**
|
|
4
|
+
> **A CLI harness that stops AI coding agents from faking completion, duplicating work, forgetting context, and colliding.**
|
|
4
5
|
|
|
5
|
-
[](https://www.npmjs.com/package/leerness) [](https://www.npmjs.com/package/leerness) []() []() []() []() []() []()
|
|
6
7
|
|
|
7
8
|
```
|
|
8
9
|
╔══════════════════════════════════════════════════════════════╗
|
|
@@ -12,525 +13,361 @@
|
|
|
12
13
|
║ ██║ ██╔══╝ ██╔══╝ ██╔══██╗██║╚██╗██║██╔══╝ ╚════██║ ║
|
|
13
14
|
║ ███████╗███████╗███████╗██║ ██║██║ ╚████║███████╗███████║ ║
|
|
14
15
|
║ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝ ║
|
|
15
|
-
║ v1.9.
|
|
16
|
-
║ verify · remember · orchestrate · audit ·
|
|
17
|
-
║ 🤖 dispatch 슬래시 주입 + MCP 73 (UR-0021 2단계 · R222) ║
|
|
16
|
+
║ v1.9.271 · AI Agent Reliability Harness ║
|
|
17
|
+
║ verify · remember · orchestrate · audit · drift · roles ║
|
|
18
18
|
╚══════════════════════════════════════════════════════════════╝
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
<p align="center"><b>🇰🇷 <a href="#한국어">한국어</a> · 🇬🇧 <a href="#english">English</a></b></p>
|
|
22
|
+
|
|
21
23
|
---
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
<a id="한국어"></a>
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
# 🇰🇷 한국어
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
## 한눈에 보기
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
`leerness`는 **Claude Code · Cursor · Copilot · Codex · Antigravity · Grok** 같은 AI 코딩 에이전트와 함께 일할 때 생기는 구조적 문제를 자동으로 막아주는 CLI 도구입니다.
|
|
32
|
+
|
|
33
|
+
AI는 코드를 빠르게 쓰지만, 다음 **5가지 함정**에 반복해서 빠집니다 — leerness는 이를 모두 자동으로 감지·차단·회복합니다.
|
|
34
|
+
|
|
35
|
+
| # | 함정 | leerness의 방어 |
|
|
36
|
+
|---|------|-----------------|
|
|
37
|
+
| 1 | **거짓 완료** — "구현했습니다"인데 코드 변경/테스트가 없음 | `verify-claim --run-tests` (증거 파일 + 실제 테스트 실행) |
|
|
38
|
+
| 2 | **중복 생성** — 이미 있는 함수를 또 만듦 | `reuse-map` (워크스페이스 전체 중복 감지) |
|
|
39
|
+
| 3 | **망각** — 다음 세션에서 계획·결정을 잃음 | `handoff` (컨텍스트 자동 적재) |
|
|
40
|
+
| 4 | **충돌** — 멀티 에이전트가 같은 파일을 동시에 수정 | `agents dispatch` (경로 격리 + 역할 분배) |
|
|
41
|
+
| 5 | **도구 drift** — 시간이 지나며 도구·메타파일을 잊음 | `drift check` (자동 감지 + 회복) |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## ⏱️ 60초 시작
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# 1) 설치 + 초기화 — 시스템 언어를 자동 감지해 한/영 가이드 표시 (1.9.269)
|
|
49
|
+
npx leerness@latest init .
|
|
50
|
+
|
|
51
|
+
# 2) AI 세션 시작 — 컨텍스트 자동 적재
|
|
52
|
+
npx leerness handoff .
|
|
53
|
+
|
|
54
|
+
# 3) AI 작업 끝 — "정말 했는지" 증거로 검증
|
|
55
|
+
npx leerness verify-claim T-0001 --run-tests
|
|
56
|
+
|
|
57
|
+
# 4) 세션 마감 — 다음 세션으로 자동 인계
|
|
58
|
+
npx leerness session close .
|
|
35
59
|
```
|
|
36
60
|
|
|
37
|
-
|
|
61
|
+
> 💡 `@latest`를 붙이면 npx 캐시로 옛 버전이 실행되는 함정을 피할 수 있습니다.
|
|
38
62
|
|
|
39
63
|
---
|
|
40
64
|
|
|
41
|
-
##
|
|
65
|
+
## 🧩 작동 방식
|
|
42
66
|
|
|
43
|
-
### 1. 워크스페이스에
|
|
67
|
+
### 1. 워크스페이스에 "기억 채널"을 만듭니다
|
|
44
68
|
|
|
45
69
|
```
|
|
46
70
|
.harness/
|
|
47
71
|
├── plan.md ← 무엇을 할 것인가
|
|
48
72
|
├── progress-tracker.md ← 무엇을 했는가 (증거 포함)
|
|
49
73
|
├── decisions.md ← 왜 그렇게 했는가
|
|
50
|
-
└── session-handoff.md ← 다음 세션에 무엇을
|
|
74
|
+
└── session-handoff.md ← 다음 세션에 무엇을 넘기는가
|
|
51
75
|
```
|
|
52
76
|
|
|
53
|
-
이
|
|
77
|
+
이 파일들은 **사용자 메모리로 보호**됩니다. leerness가 자동 갱신하되, 사람이나 AI가 직접 쓴 내용은 **항상 보존**되고 변경 전 `.harness/archive/`에 백업됩니다.
|
|
54
78
|
|
|
55
|
-
### 2. AI가
|
|
79
|
+
### 2. AI가 "완료"라고 할 때마다 증거로 검증
|
|
56
80
|
|
|
57
81
|
```
|
|
58
82
|
AI: "T-0042 API 호출 구현 완료했습니다"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
↓
|
|
64
|
-
✓ 검증 통과 또는 ✗ "코드에 fetch 호출 흔적 없음 (confidence 0.85)"
|
|
83
|
+
↓ leerness verify-claim T-0042 --run-tests
|
|
84
|
+
evidence 파일 확인 → 테스트 실제 실행 → 코드 매칭
|
|
85
|
+
↓
|
|
86
|
+
✓ 검증 통과 또는 ✗ "코드에 fetch 호출 흔적 없음 (신뢰도 0.85)"
|
|
65
87
|
```
|
|
66
88
|
|
|
67
|
-
### 3.
|
|
89
|
+
### 3. 여러 AI 에이전트를 역할별로 지휘 (1.9.270 신규)
|
|
68
90
|
|
|
69
|
-
|
|
70
|
-
leerness reuse-map --all-apps --strict-elements
|
|
71
|
-
→ escapeHtml in 3 projects (project-a:42, project-b:18, project-c:103)
|
|
72
|
-
→ useCart depends on AuthContext (cycle detected)
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### 4. 다중 AI 에이전트 안전 협업
|
|
91
|
+
모델마다 강점이 다릅니다. **역할을 모델에 매핑**해 적재적소로 일을 시킵니다.
|
|
76
92
|
|
|
77
93
|
```bash
|
|
78
|
-
leerness
|
|
79
|
-
leerness
|
|
80
|
-
leerness
|
|
81
|
-
leerness
|
|
94
|
+
leerness roles set 코딩 --provider codex --model gpt-5.5 # 코딩 담당
|
|
95
|
+
leerness roles set 검수자 --provider claude --model claude-opus-4-7 # 검수 담당
|
|
96
|
+
leerness roles suggest # 활성 에이전트 기반 최적 배치 + 근거 추천
|
|
97
|
+
leerness agents dispatch "이 변경 검수" --role 검수자 # 역할 → 모델 자동 라우팅
|
|
82
98
|
```
|
|
83
99
|
|
|
84
|
-
|
|
100
|
+
> 역할 7종: 지휘(commander)·검수(reviewer)·코딩(coder)·설계(architect)·디자인(designer)·디버그(debugger)·분배(dispatcher). 한국어 별칭 지원.
|
|
85
101
|
|
|
86
|
-
라운드가 길어지면
|
|
102
|
+
### 4. 라운드가 길어지면 "leerness를 안 쓰는" drift를 자동 감지
|
|
87
103
|
|
|
88
104
|
```bash
|
|
89
105
|
leerness drift check .
|
|
90
|
-
→ 🔴 critical (
|
|
91
|
-
→ 권장: leerness session close .
|
|
106
|
+
→ 🔴 critical (110/200) — session close 11일 누락
|
|
107
|
+
→ 권장: leerness session close . (1회 실행으로 🟠 attention 회복)
|
|
92
108
|
```
|
|
93
109
|
|
|
94
|
-
→ `handoff` 호출 시 inline 경고 자동, severe 시 `.harness/agent-reminders.md` 자동 생성.
|
|
95
|
-
|
|
96
110
|
---
|
|
97
111
|
|
|
98
|
-
##
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
# 1) 설치 + 초기화 (방향키/스페이스 인터랙티브)
|
|
102
|
-
npx leerness@latest init .
|
|
112
|
+
## 📊 적용 효과 (정량)
|
|
103
113
|
|
|
104
|
-
|
|
105
|
-
npx leerness handoff .
|
|
114
|
+
`leerness-bench` 28 프로젝트 124 task 측정:
|
|
106
115
|
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
| 항목 | 적용 | 미적용 |
|
|
117
|
+
|------|-----:|-------:|
|
|
118
|
+
| 다중 에이전트 효율 | 100/100 | 3/100 |
|
|
119
|
+
| 자동 검수 (verify-claim) | 98/100 | 0/100 |
|
|
120
|
+
| 재사용 인식 | 100/100 | 0/100 |
|
|
121
|
+
| 자동 BUG 감지 | 100/100 | 0/100 |
|
|
122
|
+
| 컨텍스트 유지 | 100/100 | 0/100 |
|
|
123
|
+
| **종합** | **597/600 (99%)** | **3/600 (0.5%)** |
|
|
109
124
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
```
|
|
125
|
+
- 수동 검수 **90초 → 자동 1.5초**
|
|
126
|
+
- 컨텍스트 적재 **500자** (`handoff --compact`, AI 토큰 90% 절감)
|
|
113
127
|
|
|
114
128
|
---
|
|
115
129
|
|
|
116
|
-
##
|
|
130
|
+
## 🛠️ 핵심 명령
|
|
117
131
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
| 자동 BUG 감지 | 100/100 | 0/100 | +100 |
|
|
127
|
-
| 컨텍스트 유지 | 100/100 | 0/100 | +100 |
|
|
128
|
-
| **종합** | **597/600 (99%)** | 3/600 (0.5%) | **+594** |
|
|
132
|
+
```bash
|
|
133
|
+
# 일상
|
|
134
|
+
leerness init [path] # 신규 설치 (시스템 언어 자동 감지)
|
|
135
|
+
leerness handoff [path] [--compact] # 세션 시작 컨텍스트 적재
|
|
136
|
+
leerness verify-claim T-XXX --run-tests # 거짓 완료 검증
|
|
137
|
+
leerness audit [path] [--fix] # 일관성 감사 (--fix 자동 갱신)
|
|
138
|
+
leerness session close [path] # 세션 마감 + 다음 세션 인계
|
|
139
|
+
leerness drift check [path] # leerness 미사용 drift 점수
|
|
129
140
|
|
|
130
|
-
|
|
141
|
+
# 멀티 AI 에이전트 · 역할
|
|
142
|
+
leerness setup-agents # 활성화 (claude/codex/agy/grok/copilot/ollama)
|
|
143
|
+
leerness agents list | quota # 상태 / 한도
|
|
144
|
+
leerness agents dispatch "<task>" --role coder # 역할 기반 모델 라우팅
|
|
145
|
+
leerness agents bench "<task>" # 여러 CLI 동시 호출 + 비교
|
|
146
|
+
leerness roles list | set | suggest | verify # 모델별 역할 부여
|
|
131
147
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
148
|
+
# 보안 · 인코딩
|
|
149
|
+
leerness scan secrets . # API 키/토큰 패턴 스캔
|
|
150
|
+
leerness encoding check . # BOM/UTF-16/한글 라운드트립
|
|
151
|
+
leerness gate [path] # verify+audit+scan+encoding+lazy 통합
|
|
135
152
|
|
|
136
|
-
|
|
153
|
+
# 버전
|
|
154
|
+
leerness update --check # 새 버전 감지
|
|
155
|
+
leerness update --yes # 자동 마이그레이션 + 검증
|
|
156
|
+
```
|
|
137
157
|
|
|
138
|
-
|
|
139
|
-
- **사양 불일치**: rpg-replay에서 `tick.damage` vs `tick.amount` 필드명 충돌 자동 감지 (contract verify)
|
|
140
|
-
- **보안 위험**: `contract verify`가 require()로 임의 코드 실행 → 정적 분석으로 즉시 수정 (1.9.36)
|
|
141
|
-
- **drift**: 실 워크스페이스에서 4.6일 stale 자동 감지 → session close 1회로 70점 회복 (1.9.37/38)
|
|
158
|
+
전체 명령은 `leerness commands`, MCP 도구는 `leerness mcp serve`로 확인하세요.
|
|
142
159
|
|
|
143
160
|
---
|
|
144
161
|
|
|
145
|
-
##
|
|
146
|
-
|
|
147
|
-
| AI와 일할 때 함정 | leerness 도구 | 효과 |
|
|
148
|
-
| ------------------------------------ | ------------------------------------------------------- | ----------------------------------------- |
|
|
149
|
-
| "완료했습니다"인데 코드 변경이 없음 | `verify-claim --run-tests` | 증거 파일 + 테스트 실제 실행 검증 |
|
|
150
|
-
| "API 호출 완료"인데 URL 코드 없음 | `optimism-check` | 10 카테고리 패턴 + URL 매핑 + 신뢰도 점수 |
|
|
151
|
-
| 같은 함수를 여러 프로젝트에 중복 | `reuse-map --strict-elements` | 함수명 fuzzy 중복 감지 |
|
|
152
|
-
| 다음 세션이 컨텍스트 잃음 | `handoff` 3채널 자동 적재 | 500자 압축 (`--compact`) |
|
|
153
|
-
| 표면적 코드 리뷰 (도메인 깊이 부족) | `review --persona security,performance,ux` | 도메인 sub-agent 자동 부여 |
|
|
154
|
-
| 외부 AI CLI 자동 호출 위험 | `agents list/dispatch/quota` | 환경변수 활성화 + 명시적 분배 |
|
|
155
|
-
| npx 캐시로 옛 버전 실행 | `_warnIfStale` 자동 (1.9.33+) | npm latest 자동 비교 + 경고 |
|
|
156
|
-
| 멀티 sub-agent 파일 충돌 | `agents dispatch` 안내 + 경로 격리 | last-writer-wins 위험 사전 차단 |
|
|
157
|
-
| sub-agent마다 사양 해석 다름 | **`contract verify`** | 명세 ↔ 구현 함수/필드 자동 검사 |
|
|
158
|
-
| 신규 모듈 capability 미등록 | **`reuse autodetect`** | `module.exports` 정적 분석 + 자동 등록 |
|
|
159
|
-
| 라운드 길어지며 메인이 leerness 잊음 | **`drift check`** + `agent-reminders.md` 자동 | 4 신호 + 자동 reminder + 학습 |
|
|
160
|
-
| TodoWrite ↔ progress-tracker 분리 | **`task sync --from`** (1.9.38) | TodoWrite JSON 자동 import |
|
|
162
|
+
## ❓ FAQ
|
|
161
163
|
|
|
162
|
-
|
|
164
|
+
**Q. leerness가 내 코드를 바꾸나요?**
|
|
165
|
+
A. 사용자 메모리(plan/progress/decisions)는 **항상 보존**, 모든 변경 전 자동 백업합니다. 소스 코드는 직접 수정하지 않습니다.
|
|
163
166
|
|
|
164
|
-
|
|
167
|
+
**Q. AI 에이전트 없이도 쓸 수 있나요?**
|
|
168
|
+
A. 네. 1인 개발자의 작업 검증·기억·중복 감지에도 유용합니다.
|
|
165
169
|
|
|
166
|
-
|
|
170
|
+
**Q. 외부 AI CLI를 자동으로 호출하나요?**
|
|
171
|
+
A. **절대 아니요.** `agents dispatch`는 실행 명령 텍스트만 생성합니다. 실제 실행은 사용자/메인 에이전트가 명시적으로 합니다.
|
|
167
172
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
leerness handoff [path] [--compact] # 컨텍스트 적재 (drift 자동 경고)
|
|
171
|
-
leerness verify-claim T-XXX --run-tests # 증거 + 실 테스트
|
|
172
|
-
leerness optimism-check T-XXX # 낙관적 표시 감지
|
|
173
|
-
leerness audit [path] [--fix] # 일관성 감사 (--fix: 자동 갱신)
|
|
174
|
-
leerness session close [path] # 세션 마감
|
|
175
|
-
leerness drift check [path] # drift 점수 + 4단계 레벨
|
|
176
|
-
leerness usage stats [path] # 명령별 누적 카운터
|
|
177
|
-
```
|
|
173
|
+
**Q. CI에서 쓸 수 있나요?**
|
|
174
|
+
A. 네. 모든 명령이 exit code + `--json` + `--yes` 비대화형을 지원합니다.
|
|
178
175
|
|
|
179
|
-
|
|
176
|
+
---
|
|
180
177
|
|
|
181
|
-
|
|
182
|
-
leerness handoff --all-apps # 전 프로젝트 통합 뷰
|
|
183
|
-
leerness reuse-map --all-apps --strict-elements
|
|
184
|
-
leerness reuse autodetect [--apply] # src/bin/lib/app 정적 스캔 + 등록
|
|
185
|
-
leerness contract verify <spec> <impl> # 명세 ↔ 구현 검증
|
|
186
|
-
leerness deps <capability> --run-tests # 영향 추적 + 자동 회귀
|
|
187
|
-
leerness retro --all-apps --days 7 # 회고
|
|
188
|
-
leerness insights --all-apps # 통계
|
|
189
|
-
leerness task sync --from <todo.json> # TodoWrite import
|
|
190
|
-
```
|
|
178
|
+
<a id="english"></a>
|
|
191
179
|
|
|
192
|
-
|
|
180
|
+
# 🇬🇧 English
|
|
193
181
|
|
|
194
|
-
|
|
195
|
-
leerness setup-agents # 인터랙티브 활성화 + 자동 설치
|
|
196
|
-
leerness agents list / check / quota # 상태/한도
|
|
197
|
-
leerness agents dispatch "<task>" --to gemini --write
|
|
198
|
-
leerness agents bench "<task>" # 3 CLI 동시 호출 + 비교표
|
|
199
|
-
```
|
|
182
|
+
## At a glance
|
|
200
183
|
|
|
201
|
-
|
|
184
|
+
`leerness` is a CLI harness that automatically prevents the structural problems that arise when working with AI coding agents like **Claude Code · Cursor · Copilot · Codex · Antigravity · Grok**.
|
|
202
185
|
|
|
203
|
-
|
|
204
|
-
leerness persona list / show <id> / add <id>
|
|
205
|
-
leerness review <file> --persona security,performance,ux
|
|
206
|
-
```
|
|
186
|
+
AI writes code fast, but repeatedly falls into **5 traps** — leerness detects, blocks, and recovers from all of them.
|
|
207
187
|
|
|
208
|
-
|
|
188
|
+
| # | Trap | leerness defense |
|
|
189
|
+
|---|------|------------------|
|
|
190
|
+
| 1 | **Fake completion** — "done!" but no code change / no tests run | `verify-claim --run-tests` (evidence files + real test execution) |
|
|
191
|
+
| 2 | **Duplication** — rebuilding a function that already exists | `reuse-map` (workspace-wide duplicate detection) |
|
|
192
|
+
| 3 | **Amnesia** — losing plans/decisions across sessions | `handoff` (automatic context loading) |
|
|
193
|
+
| 4 | **Collisions** — multiple agents editing the same file | `agents dispatch` (path isolation + role routing) |
|
|
194
|
+
| 5 | **Tool drift** — forgetting tools/meta files over time | `drift check` (auto detection + recovery) |
|
|
209
195
|
|
|
210
|
-
|
|
211
|
-
# Claude Code/Cursor/Copilot/Codex/Gemini CLI/Hermes Agent 등 30+ 도구와 스킬 공유
|
|
212
|
-
leerness skill install <url-or-path> # SKILL.md 다운로드/import
|
|
213
|
-
leerness skill discover --query "<task>" # 매칭 추천 (opt-in)
|
|
214
|
-
leerness skill export <id> [--out <dir>] # 자체 skill → 표준 SKILL.md 변환
|
|
215
|
-
leerness skill export-all [--out <dir>] # 1.9.43 9개 자체 skill 일괄 SKILL.md export
|
|
216
|
-
```
|
|
196
|
+
---
|
|
217
197
|
|
|
218
|
-
|
|
198
|
+
## ⏱️ 60-second start
|
|
219
199
|
|
|
220
200
|
```bash
|
|
221
|
-
|
|
222
|
-
|
|
201
|
+
# 1) Install + init — auto-detects system language for KO/EN guides (1.9.269)
|
|
202
|
+
npx leerness@latest init .
|
|
223
203
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
```json
|
|
227
|
-
{
|
|
228
|
-
"mcpServers": {
|
|
229
|
-
"leerness": {
|
|
230
|
-
"command": "npx",
|
|
231
|
-
"args": ["leerness", "mcp", "serve"]
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
```
|
|
204
|
+
# 2) Start an AI session — auto-load context
|
|
205
|
+
npx leerness handoff .
|
|
236
206
|
|
|
237
|
-
|
|
207
|
+
# 3) After AI claims "done" — verify with evidence
|
|
208
|
+
npx leerness verify-claim T-0001 --run-tests
|
|
238
209
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
LEERNESS_SKILL_DISCOVER_URL=https://agentskills.io/llms.txt # 또는 자체 카탈로그 URL
|
|
242
|
-
LEERNESS_SKILL_AUTO_DISCOVER=0 # 1=요청 자동 추천
|
|
210
|
+
# 4) Close the session — hand off to the next one
|
|
211
|
+
npx leerness session close .
|
|
243
212
|
```
|
|
244
213
|
|
|
245
|
-
>
|
|
214
|
+
> 💡 Adding `@latest` avoids the trap of npx running a stale cached version.
|
|
246
215
|
|
|
247
|
-
|
|
216
|
+
---
|
|
248
217
|
|
|
249
|
-
|
|
250
|
-
leerness scan secrets . # AWS/GitHub/OpenAI/Anthropic/Google/Slack/PEM
|
|
251
|
-
leerness encoding check . # BOM/UTF-16/한글 라운드트립
|
|
252
|
-
leerness lazy detect . # 증거 없는 done · 빈 handoff · 추적 없는 TODO
|
|
253
|
-
leerness gate [path] # verify + audit + scan + encoding + lazy 통합
|
|
254
|
-
```
|
|
218
|
+
## 🧩 How it works
|
|
255
219
|
|
|
256
|
-
###
|
|
220
|
+
### 1. Creates "memory channels" in your workspace
|
|
257
221
|
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
|
|
222
|
+
```
|
|
223
|
+
.harness/
|
|
224
|
+
├── plan.md ← what to do
|
|
225
|
+
├── progress-tracker.md ← what was done (with evidence)
|
|
226
|
+
├── decisions.md ← why it was done that way
|
|
227
|
+
└── session-handoff.md ← what to pass to the next session
|
|
261
228
|
```
|
|
262
229
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
## 사용 시나리오
|
|
230
|
+
These are **protected as user memory**. leerness updates them automatically, but anything a human or AI wrote is **always preserved** and backed up to `.harness/archive/` before any change.
|
|
266
231
|
|
|
267
|
-
###
|
|
232
|
+
### 2. Verifies every "done" with evidence
|
|
268
233
|
|
|
269
|
-
```bash
|
|
270
|
-
# AI에게 작업 지시 후
|
|
271
|
-
leerness verify-claim T-0042 --run-tests --strict-claims
|
|
272
|
-
# → evidence 파일 존재 + 실제 npm test 실행 + 낙관적 표시 자동 감지
|
|
273
|
-
# → 거짓이면 exit 1, 진짜면 진행
|
|
274
234
|
```
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
leerness setup-agents . # 방향키로 claude/codex/gemini 선택
|
|
281
|
-
|
|
282
|
-
# 2) 같은 task를 3 CLI에 동시 호출 → 비교
|
|
283
|
-
leerness agents bench "rpg-core/combat.js useSkill 함수 한 줄 요약"
|
|
284
|
-
# | claude | 7s | "..." | ← 가장 빠름
|
|
285
|
-
# | codex | 21s | "..." | ← 가장 상세
|
|
286
|
-
# | gemini | 19s | "..." | ← 중간
|
|
287
|
-
|
|
288
|
-
# 3) 작업 유형별 최적 CLI에 분배
|
|
289
|
-
leerness agents dispatch "파일 생성" --to gemini --write
|
|
290
|
-
# → --yolo 자동 첨부, 안전 규칙 안내
|
|
235
|
+
AI: "Finished implementing the T-0042 API call"
|
|
236
|
+
↓ leerness verify-claim T-0042 --run-tests
|
|
237
|
+
check evidence files → actually run tests → match code
|
|
238
|
+
↓
|
|
239
|
+
✓ verified or ✗ "no trace of a fetch call in code (confidence 0.85)"
|
|
291
240
|
```
|
|
292
241
|
|
|
293
|
-
###
|
|
242
|
+
### 3. Directs multiple AI agents by role (new in 1.9.270)
|
|
294
243
|
|
|
295
|
-
|
|
296
|
-
# 며칠 후 새 세션 시작
|
|
297
|
-
leerness handoff .
|
|
298
|
-
# ⚠ leerness drift 감지 — 메타파일이 stale합니다
|
|
299
|
-
# session-handoff.md: 4.6일 stale
|
|
300
|
-
# → 권장: leerness session close .
|
|
301
|
-
|
|
302
|
-
# 권장 명령 1회 실행으로 회복
|
|
303
|
-
leerness session close .
|
|
304
|
-
# 🔴 critical (100/200) → 🟠 attention (30/200)
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
### 시나리오 4: TodoWrite ↔ leerness 동기화
|
|
244
|
+
Each model has different strengths. **Map roles to models** to put the right model on the right job.
|
|
308
245
|
|
|
309
246
|
```bash
|
|
310
|
-
|
|
311
|
-
leerness
|
|
312
|
-
|
|
247
|
+
leerness roles set coder --provider codex --model gpt-5.5
|
|
248
|
+
leerness roles set reviewer --provider claude --model claude-opus-4-7
|
|
249
|
+
leerness roles suggest # recommend optimal layout from active agents + rationale
|
|
250
|
+
leerness agents dispatch "review this change" --role reviewer # role → model auto-routing
|
|
313
251
|
```
|
|
314
252
|
|
|
315
|
-
|
|
253
|
+
> 7 roles: commander · reviewer · coder · architect · designer · debugger · dispatcher.
|
|
316
254
|
|
|
317
|
-
|
|
255
|
+
### 4. Detects "drift" when you stop using leerness over long rounds
|
|
318
256
|
|
|
319
|
-
```
|
|
320
|
-
.
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
├── architecture.md · context-map.md · feature-contracts.md · reuse-map.md
|
|
324
|
-
├── design-system.md · consistency-policy.md · writeback-policy.md
|
|
325
|
-
├── anti-lazy-work-policy.md · secret-policy.md · encoding-policy.md
|
|
326
|
-
├── protected-files.md · guardrails.md · language-policy.md
|
|
327
|
-
├── orchestrate-log.md · llm-bench-history.md (1.9.22+)
|
|
328
|
-
├── skill-index.md · skills/<id>/ · templates/
|
|
329
|
-
├── personas/<id>.md (1.9.29+, 사용자 정의 페르소나)
|
|
330
|
-
├── reviews/ (1.9.29+, 페르소나 리뷰 결과)
|
|
331
|
-
├── cache/
|
|
332
|
-
│ ├── update-check.json (1.9.33+)
|
|
333
|
-
│ └── usage-stats.json (1.9.38+ 명령 카운터)
|
|
334
|
-
└── agent-reminders.md (1.9.38+, drift critical 시 자동 생성)
|
|
335
|
-
|
|
336
|
-
.claude/ (commands · skills · settings.local.json)
|
|
337
|
-
.cursor/rules/leerness.mdc
|
|
338
|
-
.github/copilot-instructions.md
|
|
339
|
-
AGENTS.md · CLAUDE.md
|
|
257
|
+
```bash
|
|
258
|
+
leerness drift check .
|
|
259
|
+
→ 🔴 critical (110/200) — session close missing for 11 days
|
|
260
|
+
→ recommended: leerness session close . (one run recovers to 🟠 attention)
|
|
340
261
|
```
|
|
341
262
|
|
|
342
263
|
---
|
|
343
264
|
|
|
344
|
-
##
|
|
345
|
-
|
|
346
|
-
| 변수 | 효과 |
|
|
347
|
-
| ----------------------------------------------- | ------------------------------------ |
|
|
348
|
-
| `LEERNESS_OFFLINE=1` | npm 호출 스킵 (오프라인) |
|
|
349
|
-
| `LEERNESS_OLLAMA_BASE_URL` | orchestrate opt-in (1.9.22+) |
|
|
350
|
-
| `LEERNESS_ENABLE_CLAUDE/CODEX/GEMINI/COPILOT` | 외부 CLI 활성화 (1.9.30+) |
|
|
351
|
-
| `LEERNESS_NO_BANNER` | ASCII 배너 스킵 (1.9.32+) |
|
|
352
|
-
| `LEERNESS_NO_PROMPT` | readline prompt 비활성 (1.9.32+) |
|
|
353
|
-
| `LEERNESS_NO_STALE_CHECK` | npx 옛 버전 경고 끄기 (1.9.33+) |
|
|
354
|
-
| `LEERNESS_NO_INTERACTIVE` | 방향키 multi-select 비활성 (1.9.34+) |
|
|
355
|
-
| `LEERNESS_NO_DRIFT_CHECK` | drift 자동 경고 끄기 (1.9.37+) |
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## Claude Code / Cursor / Copilot 통합
|
|
360
|
-
|
|
361
|
-
설치 시 자동 등록:
|
|
362
|
-
|
|
363
|
-
- `.claude/commands/{handoff, session-close, audit, lazy-detect, update}.md`
|
|
364
|
-
- `.claude/skills/leerness.md` (스킬 정의)
|
|
365
|
-
- `.claude/settings.local.json` (SessionStart hook = `update --check`)
|
|
366
|
-
- `.cursor/rules/leerness.mdc` · `.github/copilot-instructions.md`
|
|
367
|
-
- `AGENTS.md` · `CLAUDE.md`
|
|
368
|
-
|
|
369
|
-
---
|
|
265
|
+
## 📊 Measured impact
|
|
370
266
|
|
|
371
|
-
|
|
267
|
+
From `leerness-bench` across 28 projects / 124 tasks:
|
|
372
268
|
|
|
373
|
-
|
|
|
374
|
-
|
|
375
|
-
|
|
|
376
|
-
|
|
|
377
|
-
|
|
|
378
|
-
|
|
|
379
|
-
|
|
|
380
|
-
|
|
|
381
|
-
| "drift 점검 / leerness를 잘 쓰고 있나?" | `leerness drift check` |
|
|
269
|
+
| Metric | With | Without |
|
|
270
|
+
|--------|-----:|--------:|
|
|
271
|
+
| Multi-agent efficiency | 100/100 | 3/100 |
|
|
272
|
+
| Auto-verification (verify-claim) | 98/100 | 0/100 |
|
|
273
|
+
| Reuse awareness | 100/100 | 0/100 |
|
|
274
|
+
| Auto bug detection | 100/100 | 0/100 |
|
|
275
|
+
| Context retention | 100/100 | 0/100 |
|
|
276
|
+
| **Total** | **597/600 (99%)** | **3/600 (0.5%)** |
|
|
382
277
|
|
|
383
|
-
|
|
278
|
+
- Manual review **90s → 1.5s automated**
|
|
279
|
+
- Context load **~500 chars** (`handoff --compact`, ~90% fewer AI tokens)
|
|
384
280
|
|
|
385
281
|
---
|
|
386
282
|
|
|
387
|
-
##
|
|
388
|
-
|
|
389
|
-
### `@latest` 명시 권장
|
|
283
|
+
## 🛠️ Core commands
|
|
390
284
|
|
|
391
285
|
```bash
|
|
392
|
-
#
|
|
393
|
-
|
|
286
|
+
# Daily
|
|
287
|
+
leerness init [path] # new install (auto-detects system language)
|
|
288
|
+
leerness handoff [path] [--compact] # load session-start context
|
|
289
|
+
leerness verify-claim T-XXX --run-tests # verify fake completion
|
|
290
|
+
leerness audit [path] [--fix] # consistency audit (--fix auto-update)
|
|
291
|
+
leerness session close [path] # close session + hand off
|
|
292
|
+
leerness drift check [path] # leerness-disuse drift score
|
|
394
293
|
|
|
395
|
-
#
|
|
396
|
-
|
|
294
|
+
# Multi AI agents · roles
|
|
295
|
+
leerness setup-agents # enable (claude/codex/agy/grok/copilot/ollama)
|
|
296
|
+
leerness agents list | quota # status / limits
|
|
297
|
+
leerness agents dispatch "<task>" --role coder # role-based model routing
|
|
298
|
+
leerness agents bench "<task>" # call several CLIs at once + compare
|
|
299
|
+
leerness roles list | set | suggest | verify # per-model role assignment
|
|
300
|
+
|
|
301
|
+
# Security · encoding
|
|
302
|
+
leerness scan secrets . # API key/token pattern scan
|
|
303
|
+
leerness encoding check . # BOM/UTF-16/CJK round-trip
|
|
304
|
+
leerness gate [path] # verify+audit+scan+encoding+lazy combined
|
|
397
305
|
|
|
398
|
-
#
|
|
399
|
-
|
|
306
|
+
# Versions
|
|
307
|
+
leerness update --check # detect new version
|
|
308
|
+
leerness update --yes # auto-migrate + verify
|
|
400
309
|
```
|
|
401
310
|
|
|
402
|
-
|
|
311
|
+
Run `leerness commands` for the full list, or `leerness mcp serve` to expose tools to a main agent.
|
|
403
312
|
|
|
404
313
|
---
|
|
405
314
|
|
|
406
|
-
## FAQ
|
|
315
|
+
## ❓ FAQ
|
|
407
316
|
|
|
408
|
-
**Q. leerness
|
|
409
|
-
A.
|
|
317
|
+
**Q. Does leerness change my code?**
|
|
318
|
+
A. User memory (plan/progress/decisions) is **always preserved** and backed up before any change. It never edits your source code directly.
|
|
410
319
|
|
|
411
|
-
**Q.
|
|
412
|
-
A.
|
|
320
|
+
**Q. Can I use it without an AI agent?**
|
|
321
|
+
A. Yes. Solo developers can use it for self-verification, memory, and duplicate detection.
|
|
413
322
|
|
|
414
|
-
**Q.
|
|
415
|
-
A.
|
|
323
|
+
**Q. Does it auto-call external AI CLIs?**
|
|
324
|
+
A. **Never.** `agents dispatch` only generates command text. Actual execution is explicit, by you or your main agent.
|
|
416
325
|
|
|
417
|
-
**Q.
|
|
418
|
-
A.
|
|
419
|
-
|
|
420
|
-
**Q. 멀티 언어 프로젝트는?**
|
|
421
|
-
A. 영어 인스트럭션 옵션 (`--language en`). 단 도구 출력 메시지/안내는 한국어가 풍부합니다.
|
|
326
|
+
**Q. Can I use it in CI?**
|
|
327
|
+
A. Yes. Every command supports exit codes, `--json`, and non-interactive `--yes`.
|
|
422
328
|
|
|
423
329
|
---
|
|
424
330
|
|
|
425
|
-
##
|
|
331
|
+
## 🔧 Environment variables / 환경변수
|
|
426
332
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
333
|
+
| Variable | Effect |
|
|
334
|
+
|----------|--------|
|
|
335
|
+
| `LEERNESS_OFFLINE=1` | Skip npm calls (offline) / npm 호출 스킵 |
|
|
336
|
+
| `LEERNESS_ENABLE_CLAUDE/CODEX/AGY/GROK/COPILOT/OLLAMA` | Enable external CLIs / 외부 CLI 활성화 |
|
|
337
|
+
| `LEERNESS_NO_BANNER` | Skip ASCII banner / 배너 스킵 |
|
|
338
|
+
| `LEERNESS_NO_DRIFT_CHECK` | Disable drift warning / drift 경고 끄기 |
|
|
339
|
+
| `LEERNESS_NO_INTERACTIVE` | Disable arrow-key select / 방향키 선택 끄기 |
|
|
432
340
|
|
|
433
341
|
---
|
|
434
342
|
|
|
435
|
-
##
|
|
436
|
-
|
|
437
|
-
- **1.9.99** — **`leerness handoff --quiet` 옵션** — 자동 회수 라인 6종 모두 비활성, 기본 컨텍스트만. CI/자동화용.
|
|
438
|
-
- **1.9.98** — **`leerness skill publish` 보안 사전 점검** — `health` 자동 실행, issue 있으면 publish 중단. `--force`/`--no-security-check`로 우회.
|
|
439
|
-
- **1.9.97** — **자율 모드 27 라운드 마무리** (1.9.70~96) — MCP 도구 12→21개, handoff 5단 통합, 보안 3중 가드, JSON 9종, 매 라운드 e2e PASS.
|
|
440
|
-
- **1.9.96** — **`leerness handoff --json` 옵션** — 외부 AI/MCP에 handoff 데이터를 구조화 JSON으로 출력.
|
|
441
|
-
- **1.9.95** — **`leerness lessons --json` + MCP lessons 자동 JSON** — 외부 AI가 lessons 결과를 파싱 친화적으로 받음.
|
|
442
|
-
- **1.9.94** — **MCP server 21번째 도구 `leerness_benchmark`** — 1.9.46/51 benchmark를 외부 AI에 노출 (6 차원 점수 + 검수 시나리오 결과).
|
|
443
|
-
- **1.9.93** — **handoff 헤드라인에 health 종합 상태 1 토큰 추가** — `⚕ health: ✓/⚠` (1.9.81 + 1.9.85 통합, inline 추론으로 성능 비용 없음).
|
|
444
|
-
- **1.9.92** — **`skill info --json` + MCP 20번째 도구 `leerness_skill_info`** — 외부 AI가 개별 skill 상세 (능력/소스/패턴/사용 이력) 정확 파악.
|
|
445
|
-
- **1.9.91** — **MCP server 19번째 도구 `leerness_skill_search`** — 1.9.90 skill search를 외부 AI에 노출.
|
|
446
|
-
- **1.9.90** — **`leerness skill search <capability>` 새 명령** — capability 배열 부분 일치 검색 (skill match와 다른 정확 매칭). `--json` 옵션.
|
|
447
|
-
- **1.9.89** — **자율 모드 19 라운드 종합 검증** — stress-v35 24/24 PASS + handoff 692ms / health 689ms (회귀 없음). 자율 모드 (1.9.70~88) 안정 완료.
|
|
448
|
-
- **1.9.88** — **`handoff`에 brainstorm 자동 hits 노출** — 현재 task 키워드로 자동 호출 → decisions / lessons / task-log fail / skill 미리보기 1줄씩 (1.9.72 brainstorm 통합).
|
|
449
|
-
- **1.9.87** — **`session-workflow.md` 템플릿 갱신** — 1.9.69~86 누적 신규 기능 안내 추가 (handoff history hit / 보안 요약 / CRITICAL / 헤드라인 / health / drift --auto-fix 보안 / MCP 18 도구). init 가이드 정확성 보장.
|
|
450
|
-
- **1.9.86** — **MCP server 18번째 도구 `leerness_health`** — 1.9.85 health 종합 헬스 체크를 외부 AI에 노출. drift + 보안 + skill + MCP + tasks 한 호출.
|
|
451
|
-
- **1.9.85** — **`leerness health` 새 명령** — drift + 보안 + skill + MCP + 누적 통계 종합 헬스 체크. `--json` / `--strict` 옵션.
|
|
452
|
-
- **1.9.84** — **MCP server 17번째 도구 `leerness_skill_list`** — 외부 AI에 skill 카탈로그 (id/이름/출처/능력/사용 횟수) 조회 노출. `skill list --json` 옵션도 함께 추가.
|
|
453
|
-
- **1.9.83** — **MCP server 16번째 도구 `leerness_skill_match`** — 1.9.45/50/68 skill match를 외부 AI에 노출. rolling history 자동 누적.
|
|
454
|
-
- **1.9.82** — **`drift check --auto-fix` 보안 회복 통합** — 1.9.78 보안 신호 발견 시 `audit --fix` 자동 실행 → `.gitignore` + `.env.example` 동기화 후 재검사. 보안 + 세션 마감 한 번에 자동 회복.
|
|
455
|
-
- **1.9.81** — **`handoff` 통합 헤드라인** — drift level + 보안 상태 + MCP 활동 + skill query + 설치 skill 수를 한 줄로 압축. AI가 세션 시작 즉시 워크스페이스 상태 인지.
|
|
456
|
-
- **1.9.80** — **handoff 보안 critical 자동 회복** — `.env` 가 `.gitignore` 에 없으면 🚨 CRITICAL 경고 + `LEERNESS_AUTO_SECURITY_FIX=1` 시 `audit --fix` 자동 실행.
|
|
457
|
-
- **1.9.79** — **`leerness skill suggest` 알고리즘 강화** — 1.9.68 rolling history 빈도 (×2 가중) 추가. 반복 검색된 키워드를 신규 skill 후보로 자동 식별 (Hermes-style 학습).
|
|
458
|
-
- **1.9.78** — **`drift check` 5번째 신호** — `.env` + `.gitignore` 보안 누락을 drift score에 가중 (`.env` 자체 누락 시 +30, 동기화 누락 +15). 보안 위험이 drift critical 승격 가능.
|
|
459
|
-
- **1.9.77** — **MCP server 15번째 도구 `leerness_brainstorm`** — 1.9.72 brainstorm (decisions + skills + tasks + rules + evidence + lessons + skillHistory + taskLogFails)을 외부 AI에 노출. AI가 새 작업 시작 전 누적 컨텍스트 자동 회수.
|
|
460
|
-
- **1.9.76** — **`leerness handoff`에 보안 상태 요약 자동 표시** — `.env→.env.example` 누락 + `.gitignore` 시크릿 패턴 누락을 매 handoff에 1-2 line 자동 노출. AI가 세션 시작 즉시 보안 위험 인지.
|
|
461
|
-
- **1.9.75** — **`leerness audit` 보안 강화** — `.env` 존재 시 `.gitignore`에 시크릿 패턴 (`.env`/`.env.local`/`.env.production`/`*.pem`/`credentials.json`) 자동 검증, `--fix`로 자동 추가.
|
|
462
|
-
- **1.9.74** — **`session close` 마감 시 누적 회고 통계 강화** — MCP tools/call 카운트 + skill match query top + drift 통계를 자동 요약 (1.9.70 + 1.9.68 결합).
|
|
463
|
-
- **1.9.73** — **MCP server 14번째 도구 `leerness_env_check`** — 1.9.71 env 보안 검사를 외부 AI에 노출 (외부 워크스페이스 .env/.env.example 동기화 자동 점검).
|
|
464
|
-
- **1.9.72** — **`leerness brainstorm`에 skill-suggestions.md history + task-log 실패 라인 통합** — 누적 컨텍스트 기반 brainstorm 강화 (이전 매칭 이력 + task-log 실패 회수).
|
|
465
|
-
- **1.9.71** — **`.env` / `.env.example` 자동 동기화** — `leerness env check` / `env sync` 명령 + `audit` 통합 (`--fix`로 누락 키 자동 추가). 보안 정책: 실제 값 절대 노출 안 함 (키만 추가, 값은 빈 문자열).
|
|
466
|
-
- **1.9.70** — **MCP server `tools/call` 자동 사용 통계** — 도구별 호출 카운트 (`.harness/cache/usage-stats.json#mcp.tools`) + `leerness usage stats` 출력에 MCP 섹션 + 드물게 호출되는 도구 식별.
|
|
467
|
-
- **1.9.69** — **handoff에 skill-suggestions.md history hit 노출** (fuzzy 매칭, 최근 2건 + top 2 매치). AI가 이전 세션 결정을 일관 유지. mtime 기반 캐시 (1.9.65/66/67 캐시 패밀리 연속).
|
|
468
|
-
- **1.9.68** — **`skill match` 결과 → `.harness/skill-suggestions.md` rolling history 자동 누적** (AI가 다음 세션에 이전 추천 참조 가능). `--no-save` / `LEERNESS_NO_SKILL_HISTORY=1`로 끄기.
|
|
469
|
-
- **1.9.67** — **handoff 자동 skill 추천 default ON** (jaccard 매칭) + lessons 인덱스에 task-log.md 실패 라인 통합 (회수 범위 확장).
|
|
470
|
-
- **1.9.66** — **성능 최적화 2차 + MCP 13번째 도구**. `listAllSkills` 메모리 캐시 (skill list/info/match/discover/suggest 공유) + MCP `leerness_task_export` 추가 (TodoWrite 양방향 sync 외부 노출).
|
|
471
|
-
- **1.9.65** — **성능 최적화 1차** — usage-stats 메모리 캐시 + lessons 인덱스 캐시 (mtime invalidation). handoff -37% · drift -19% · audit -29% · skill list -17% · 100-task handoff -42% · status -48% (vs 1.9.64).
|
|
472
|
-
- **1.9.64** — `leerness install <SKILL.md>` 별칭 (skill install 단축) · **성능 벤치마크 1차 실측** (status/handoff/drift/audit/skill list 평균 1.2~1.5초).
|
|
473
|
-
- **1.9.63** — `leerness audit --strict [--threshold N]` — CI 친화 옵션 (warnings → failures 승격).
|
|
474
|
-
- **1.9.62** — `leerness audit` npm CVE 자동 감지 (npm audit --json 통합, OFFLINE/no-npm-audit 스킵).
|
|
475
|
-
- **1.9.61** — MCP server cursor 기반 페이지네이션 — `nextCursor` + `_chunkSize` override.
|
|
476
|
-
- **1.9.60** — `leerness task export` — progress-tracker → TodoWrite JSON 형식. **양방향 sync 완성** (1.9.38 sync + 1.9.60 export).
|
|
477
|
-
- **1.9.59** — `session close` **--suggest default 활성** (잊을 단계 없음, `--no-suggest`로 비활성 가능) · 설치 가이드 갱신.
|
|
478
|
-
- **1.9.58** — handoff lessons **fuzzy 매칭** (어간 변형, 복합어, decisions.md 매칭 추가).
|
|
479
|
-
- **1.9.57** — `session close --suggest` (마감 시 skill suggest + drift + 명령 통계 통합 보고) · install banner quickStart + session-workflow.md 갱신 (1.9.56/57 흐름 자동 안내).
|
|
480
|
-
- **1.9.56** — `handoff`에 lessons 자동 재상기 통합 (현재 in-progress task 키워드 매칭 → 과거 실패 자동 표시).
|
|
481
|
-
- **1.9.55** — MCP server에 `leerness_skill_suggest` + `leerness_lessons` 추가 (10 → 12 도구) · lessons --auto의 stopword 확장 (false positive 차단).
|
|
482
|
-
- **1.9.54** — `leerness lessons --auto` — 최근 in-progress task에서 키워드 자동 추출 → 과거 lessons 자동 매칭·재상기.
|
|
483
|
-
- **1.9.53** — `leerness skill suggest` — task-log / progress-tracker / usage-stats에서 반복 패턴 **자동 감지 → 새 skill 후보 제안** (Hermes-style 자동 학습의 leerness 버전).
|
|
484
|
-
- **1.9.52** — `skill discover` 카탈로그 형식 다양성 — JSON manifest / RSS·Atom / Markdown / llms.txt URL 4 형식 자동 감지 (`_parseSkillCatalog`).
|
|
485
|
-
- **1.9.51** — `benchmark --scenario <id|all>` — leerness 고유 가치 시나리오 4종 (거짓 완료 / 사양 불일치 / drift / BOM) **command 한 번에 정량 증명**.
|
|
486
|
-
- **1.9.50** — `skill match --embedding` — Ollama API 코사인 유사도 매칭 (opt-in, 실패 시 jaccard fallback).
|
|
487
|
-
- **1.9.49** — `benchmark --measure "<task>"` — 외부 CLI 실 호출 시간 측정 + leerness 검수 오버헤드 측정.
|
|
488
|
-
- **1.9.48** — cross-platform archive — `skill publish` tar 실패 시 PowerShell ZIP 자동 fallback (stress-v3 H1-H3 검증).
|
|
489
|
-
- **1.9.47** — `leerness skill publish` — 자체 skill을 SKILL.md + manifest.json 번들로 export (외부 공유 가능, agentskills.io 표준).
|
|
490
|
-
- **1.9.46** — `leerness benchmark` — 자체 6 차원 점수 + 6 도구 (vanilla/claude_code/hermes/leerness+claude 등) 시뮬 비교 매트릭스.
|
|
491
|
-
- **1.9.45** — `leerness skill match <query>` — 사용자 요청 ↔ 설치 SKILL.md description **jaccard 매칭** + 자동 추천.
|
|
492
|
-
- **1.9.44** — 1.9.34~43 13종 기능 통합 stress test 25/25 PASS · 발견된 BOM 처리 BUG 1건 즉시 패치 (`_parseSkillMd` UTF-8 BOM 자동 제거) · e2e 196/196.
|
|
493
|
-
- **1.9.43** — MCP 서버로 leerness 도구 10종 노출 (`leerness mcp serve`, Claude Code/Hermes/Cursor 등이 직접 호출 가능) · `skill export-all` (9개 일괄 SKILL.md export) · 내부 보고서 자동 비공개 (`_reports/` gitignore + npmignore).
|
|
494
|
-
- **1.9.42** — [agentskills.io](https://agentskills.io) 공개 표준 호환 (Claude Code · Cursor · Copilot · Codex · Gemini CLI · Hermes Agent 등 30+ 도구와 스킬 공유): `skill install <url>` · `skill discover` (opt-in) · `skill export` (SKILL.md frontmatter) · `LEERNESS_SKILL_DISCOVER_URL` .env opt-in.
|
|
495
|
-
- **1.9.41** — 디스크↔AI 컨텍스트 인지 갭 차단: `leerness whats-new` 명령 (CHANGELOG 자동 차분 추출) · `migrate` 후 stdout에 AI must re-read 차분 자동 출력 · `migration-report.md`에 신규 명령/파일 영구 기록 · `handoff`가 fresh migrate(24h 내) 시 자동 알림.
|
|
496
|
-
- **1.9.40** — dogfooding gap 차단: `leerness release pack` 통합 명령 (라운드 마감 자동화 — npm pack + parent migrate + task add + close + readme sync) · `audit`에 README ↔ package.json version mismatch 자동 감지 + `--fix`로 자동 갱신.
|
|
497
|
-
- **1.9.39** — AI 하네스 엔지니어링 6단계 워크플로 자동 유도 (`session-workflow.md` + handoff 끝 가이드 + AGENTS/CLAUDE 인스트럭션 통합) · `drift check --auto-fix` · `handoff --auto-recover` (critical 시 session close 자동 실행).
|
|
498
|
-
- **1.9.38** — drift 자동 reminder (`agent-reminders.md`) · `usage stats` 명령 · `task sync --from <todo.json>` · drift 임계 학습 (skip ≥5 → 임계 완화).
|
|
499
|
-
- **1.9.37** — `leerness drift check` (4 신호 + 4단계 레벨) — 라운드 길어지며 메인이 leerness 잊는 현상 자동 감지.
|
|
500
|
-
- **1.9.36** — `agents bench` (3 CLI 동시 비교) · `dispatch --write` (CLI별 권장 플래그) · 작업 유형 추천 · `contract verify` require() side-effect 25× 속도 회복.
|
|
501
|
-
- **1.9.35** — `contract verify` · `reuse autodetect` · `audit --fix` · `handoff` init 부재 경고 · `agents dispatch` 안전 규칙.
|
|
502
|
-
- **1.9.34** — 방향키/스페이스 인터랙티브 multi-select · 256색 그라데이션 배너 · 3단계 sub-agent 오케스트레이션 검증 (2.2× 효율).
|
|
503
|
-
- **1.9.33** — npx 캐시 옛 버전 자동 경고.
|
|
504
|
-
- **1.9.32** — ASCII 배너 · `setup-agents` 인터랙티브 + 자동 설치.
|
|
505
|
-
- **1.9.31** — `agents quota` (provider별 사용량 추정).
|
|
506
|
-
- **1.9.30** — 외부 AI CLI 오케스트레이션 (claude/codex/gemini/copilot).
|
|
507
|
-
- **1.9.29** — 페르소나 리뷰 (5종 내장).
|
|
508
|
-
- **1.9.24** — `deps <capability>` 영향 추적 + 자동 회귀.
|
|
509
|
-
- **1.9.22** — Ollama opt-in · `handoff --compact` · `llm-bench`.
|
|
510
|
-
- **1.9.18** — `verify-claim` · `--strict-elements` · depends-on 그래프.
|
|
511
|
-
- **1.9.17** — `--all-apps` 워크스페이스 모드.
|
|
512
|
-
- ... (전체 [CHANGELOG.md](CHANGELOG.md) 참조)
|
|
513
|
-
|
|
514
|
-
---
|
|
343
|
+
## 📜 Recent highlights / 최근 변경
|
|
515
344
|
|
|
516
|
-
|
|
345
|
+
- **1.9.271** — README 한/영 이중 사용자 친화 재작성 / Bilingual KO-EN README rewrite.
|
|
346
|
+
- **1.9.270** — agent roles: 모델별 역할 부여 / per-model role assignment (`roles` CLI + `dispatch --role`).
|
|
347
|
+
- **1.9.269** — init 시 OS 시스템 언어 감지 / OS system-language detection on init.
|
|
348
|
+
- **1.9.268** — grok 정식 provider 승격 / grok promoted to a first-class provider.
|
|
349
|
+
- **1.9.265~267** — CLI 에이전트 슬래시 명령 레지스트리 + `--help` probe 자동 갱신.
|
|
517
350
|
|
|
518
|
-
|
|
519
|
-
- **PR**: e2e 통과 + 한국어 주석 + UTF-8 BOM 없음
|
|
351
|
+
> 전체 이력 / full history: [CHANGELOG.md](CHANGELOG.md)
|
|
520
352
|
|
|
521
353
|
---
|
|
522
354
|
|
|
523
|
-
##
|
|
355
|
+
## 🤝 Contributing / 기여
|
|
356
|
+
|
|
357
|
+
- Issues: https://github.com/gugu9999gu/leerness/issues
|
|
358
|
+
- PRs: e2e 통과 + 한국어 주석 + UTF-8 (no BOM) / pass e2e, Korean comments, UTF-8 without BOM.
|
|
359
|
+
|
|
360
|
+
## 📄 License
|
|
524
361
|
|
|
525
362
|
MIT — © leerness contributors
|
|
526
363
|
|
|
527
|
-
> **AI 에이전트가 신뢰할 수 있게 일하도록 만드는
|
|
528
|
-
>
|
|
364
|
+
> **AI 에이전트가 신뢰할 수 있게 일하도록 만드는 도구. 사용자 동의 없이 외부 LLM/API/CLI를 자동 호출하지 않습니다.**
|
|
365
|
+
> **A tool that makes AI agents work reliably. It never auto-calls external LLMs/APIs/CLIs without your consent.**
|
|
529
366
|
|
|
530
367
|
<!-- leerness:project-readme:start -->
|
|
531
368
|
## Leerness Project Harness
|
|
532
369
|
|
|
533
|
-
이 프로젝트는 Leerness v1.9.
|
|
370
|
+
이 프로젝트는 Leerness v1.9.271 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
|
|
534
371
|
|
|
535
372
|
### Core Commands
|
|
536
373
|
|
|
@@ -572,7 +409,7 @@ leerness memory restore decision <date|title>
|
|
|
572
409
|
|
|
573
410
|
### MCP server (외부 AI 통합)
|
|
574
411
|
|
|
575
|
-
Leerness v1.9.
|
|
412
|
+
Leerness v1.9.271는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **42개 도구**를 노출:
|
|
576
413
|
|
|
577
414
|
```jsonc
|
|
578
415
|
// 카테고리별
|
|
@@ -593,7 +430,7 @@ Leerness v1.9.206는 stdio JSON-RPC MCP server를 내장합니다 — Claude Cod
|
|
|
593
430
|
`<<autonomous-loop-dynamic>>` 신호만 보내면 AI가:
|
|
594
431
|
1) 다음 라운드 후보 선정 → 2) 코드 변경 → 3) stress-v* 신규 작성 + 누적 회귀 → 4) e2e 219/219 → 5) npm pack + git tag + GitHub release → 6) main 자동 push (1.9.140+) → 7) session close → 8) 다음 라운드 예약.
|
|
595
432
|
|
|
596
|
-
현재 누적: **70 라운드 (1.9.40 → 1.9.
|
|
433
|
+
현재 누적: **70 라운드 (1.9.40 → 1.9.271)** · 매 라운드 GitHub release/태그 생성 · _reports/는 비공개 보존.
|
|
597
434
|
|
|
598
435
|
### 성능 가이드 (1.9.140 측정)
|
|
599
436
|
|
|
@@ -631,6 +468,6 @@ leerness release pack --close --auto-main-push
|
|
|
631
468
|
- `.harness/session-handoff.md`: 다음 세션 인수인계 (자동 작성)
|
|
632
469
|
- `.harness/lessons.md` / `decisions.md` / `rules.md`: 영구 메모리 (5 surface)
|
|
633
470
|
|
|
634
|
-
Last synced by Leerness v1.9.
|
|
471
|
+
Last synced by Leerness v1.9.271: 2026-06-03
|
|
635
472
|
<!-- leerness:project-readme:end -->
|
|
636
473
|
|