leerness 1.9.232 β†’ 1.9.233

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 CHANGED
@@ -1,5 +1,43 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.233 β€” 2026-05-23
4
+
5
+ **πŸ“š leerness commands μƒˆ λͺ…λ Ή (9 μΉ΄ν…Œκ³ λ¦¬ 51 CLI) + MCP 65번째 도ꡬ.**
6
+
7
+ ### 1. `leerness commands` μƒˆ λͺ…λ Ή β€” μΉ΄ν…Œκ³ λ¦¬ν™”λœ 전체 CLI λͺ©λ‘
8
+ - **9 μΉ΄ν…Œκ³ λ¦¬ Β· 51 λͺ…λ Ή** ν•œ λˆˆμ—:
9
+ - status (8) β€” handoff/health/pulse/round-history/milestones/session-resume/which/memory status
10
+ - task (5) β€” add/update/drop/export + next-action
11
+ - memory (4) β€” decision/rule/plan/lesson CRUD
12
+ - audit (10) β€” audit/drift/scan secrets/encoding/lazy/verify-claim/optimism/requests/pre-wake/idempotency
13
+ - workflow (7) β€” session close/resume/route/agents/review-request/review/brainstorm
14
+ - release (3) β€” sync-main/pack/publish
15
+ - skill (2) β€” list/info/learn/use/optimize/match/suggest + install/install-top/publish/search/discover
16
+ - bridge (3) β€” web/pc/lsp
17
+ - config (9) β€” init/migrate/update/wakeup-interval/workspace-dir/intent/constraints/provider/commands
18
+ - `--json` μ˜΅μ…˜ (μ™ΈλΆ€ μžλ™ν™”)
19
+
20
+ ### 2. MCP 65번째 도ꡬ β€” `leerness_commands`
21
+ - μ™ΈλΆ€ AI κ°€ 전체 CLI λͺ©λ‘μ„ 직접 회수 β†’ 맀뉴얼/도움말 동적 생성
22
+ - MCP 64 β†’ 65 (+1)
23
+
24
+ ### 3. μ‹€ μΈ‘μ • β€” leerness 전체 ν‘œλ©΄ κ°€μ‹œν™”
25
+ - 9 μΉ΄ν…Œκ³ λ¦¬ Γ— 평균 5.7 λͺ…λ Ή = **51 CLI λͺ…λ Ή**
26
+ - handoff/health/pulse λ“± 핡심 status λͺ…령은 status μΉ΄ν…Œκ³ λ¦¬μ— κ·Έλ£Ήν™”
27
+
28
+ ### 4. λˆ„μ  νšŒκ·€ (1.9.207~232) β€” λͺ¨λ‘ μœ μ§€
29
+
30
+ ### 5. stress-v178 β€” 16/16 PASS
31
+ - 1.9.233 (6): VERSION + CLI + --json μΉ΄ν…Œκ³ λ¦¬ 검증 + human 좜λ ₯ + MCP 65 + μ‹€ 호좜
32
+ - μ„±λŠ₯ (2): cold_start avg 413ms / commands 390ms (정적 데이터, 빠름)
33
+ - λˆ„μ  νšŒκ·€ (8): 1.9.207~232
34
+
35
+ ### 6. μžλ™ release (95 λΌμš΄λ“œ main-push streak Β· 56 λΌμš΄λ“œ npm publish streak)
36
+
37
+ πŸ“š **전체 ν‘œλ©΄ κ°€μ‹œν™”** β€” 9 μΉ΄ν…Œκ³ λ¦¬ Γ— 51 CLI Γ— 65 MCP 도ꡬ ν•œλˆˆμ—
38
+
39
+ ---
40
+
3
41
  ## 1.9.232 β€” 2026-05-23
4
42
 
5
43
  **πŸ› pulse memorySurface BUG fix + handoff --pulse μ˜΅μ…˜ + session close μžλ™ pulse.**
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **AI μ½”λ”© μ—μ΄μ „νŠΈμ˜ κ±°μ§“ μ™„λ£ŒΒ·μ€‘λ³΅Β·λ§κ°Β·μΆ©λŒμ„ λ§‰μ•„μ£ΌλŠ” κ²€μˆ˜Β·κΈ°μ–΅Β·ν˜‘μ—… CLI ν•˜λ„€μŠ€.**
4
4
 
5
- [![npm](https://img.shields.io/badge/npm-leerness-blue)](https://www.npmjs.com/package/leerness) [![version](https://img.shields.io/badge/version-1.9.232-green)]() [![tests](https://img.shields.io/badge/e2e-217%2F217-success)]() [![stress](https://img.shields.io/badge/stress--v177-13%2F13-success)]() [![mcp](https://img.shields.io/badge/MCP--tools-64-brightgreen)]() [![rounds](https://img.shields.io/badge/autonomous--rounds-188-blueviolet)]() [![main-push](https://img.shields.io/badge/release--main--push-94_rounds-success)]() [![goal-matrix](https://img.shields.io/badge/λͺ©μ _맀트릭슀-100%2F100_(5μΆ•)-brightgreen)]() [![bugfix](https://img.shields.io/badge/πŸ›_pulse-BUG_fix-blueviolet)]() [![perf](https://img.shields.io/badge/cold_start-389ms-success)]() [![install](https://img.shields.io/badge/npm_i_leerness-μ¦‰μ‹œ_μ‚¬μš©_κ°€λŠ₯-success)]() [![sandbox](https://img.shields.io/badge/runCommandSafe-cwd_jail%2Benv_scrub-success)]() [![license](https://img.shields.io/badge/license-MIT-lightgrey)]()
5
+ [![npm](https://img.shields.io/badge/npm-leerness-blue)](https://www.npmjs.com/package/leerness) [![version](https://img.shields.io/badge/version-1.9.233-green)]() [![tests](https://img.shields.io/badge/e2e-217%2F217-success)]() [![stress](https://img.shields.io/badge/stress--v178-16%2F16-success)]() [![mcp](https://img.shields.io/badge/MCP--tools-65-brightgreen)]() [![cli](https://img.shields.io/badge/CLI_commands-51-brightgreen)]() [![rounds](https://img.shields.io/badge/autonomous--rounds-189-blueviolet)]() [![main-push](https://img.shields.io/badge/release--main--push-95_rounds-success)]() [![goal-matrix](https://img.shields.io/badge/λͺ©μ _맀트릭슀-100%2F100_(5μΆ•)-brightgreen)]() [![commands](https://img.shields.io/badge/πŸ“š_commands-9_μΉ΄ν…Œκ³ λ¦¬_51_λͺ…λ Ή-blueviolet)]() [![perf](https://img.shields.io/badge/cold_start-413ms-success)]() [![license](https://img.shields.io/badge/license-MIT-lightgrey)]()
6
6
 
7
7
  ```
8
8
  ╔══════════════════════════════════════════════════════════════╗
@@ -12,9 +12,9 @@
12
12
  β•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β• β•šβ•β•β•β•β–ˆβ–ˆβ•‘ β•‘
13
13
  β•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β•‘
14
14
  β•‘ β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β•β•šβ•β• β•šβ•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β• β•‘
15
- β•‘ v1.9.232 AI Agent Reliability Harness + Sandbox β•‘
15
+ β•‘ v1.9.233 AI Agent Reliability Harness + Sandbox β•‘
16
16
  β•‘ verify Β· remember Β· orchestrate Β· audit Β· sandbox Β· drift β•‘
17
- β•‘ πŸ› pulse BUG fix Β· handoff --pulse Β· session close μžλ™ β•‘
17
+ β•‘ πŸ“š leerness commands Β· 9 μΉ΄ν…Œκ³ λ¦¬ Β· 51 CLI Β· MCP 65 β•‘
18
18
  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
19
19
  ```
20
20
 
package/bin/harness.js CHANGED
@@ -7,7 +7,7 @@ const cp = require('child_process');
7
7
  const os = require('os'); // 1.9.178: _publishToNpm μ—μ„œ os.tmpdir() μ‚¬μš© (μ „μ—­ import)
8
8
  const readline = require('readline');
9
9
 
10
- const VERSION = '1.9.232';
10
+ const VERSION = '1.9.233';
11
11
 
12
12
  // 1.9.184: DEP0190 (child_process shell: true) deprecation warning μ–΅μ œ (μ‚¬μš©μž λͺ…μ‹œ).
13
13
  // leerness λŠ” cross-platform PATH resolution 을 μœ„ν•΄ shell: true λ₯Ό μ˜λ„μ μœΌλ‘œ μ‚¬μš© (claude.cmd / ollama.cmd λ“± Windows .cmd 처리).
@@ -2278,6 +2278,114 @@ function pulseCmd(root) {
2278
2278
  log(dm(` β†’ 상세: leerness handoff . | health . | round-history | milestones`));
2279
2279
  }
2280
2280
 
2281
+ // 1.9.233: leerness commands β€” μΉ΄ν…Œκ³ λ¦¬ν™”λœ 전체 CLI λͺ…λ Ή λͺ©λ‘
2282
+ // λŒ€ν™”/AI/MCP/CI κ°€ λΉ λ₯΄κ²Œ 전체 κΈ°λŠ₯을 νŒŒμ•…ν•  수 μžˆλ„λ‘.
2283
+ // μΉ΄ν…Œκ³ λ¦¬: status (handoff/health/pulse/round-history/milestones/session-resume/which/memory status)
2284
+ // task (task add/update/drop/export/sync)
2285
+ // memory (decision/rule/plan/lesson add/list/drop)
2286
+ // workflow (route/agents/orchestrate/review/persona)
2287
+ // release (release pack/bump/note/publish/sync-main)
2288
+ // audit (audit/scan secrets/encoding check/drift check/optimism-check/verify-claim/lazy detect)
2289
+ // skill (skill list/info/learn/use/optimize/match/suggest/install/publish/discover)
2290
+ // bridge (web/pc/lsp β€” opt-in)
2291
+ // config (init/migrate/update/auto-update/setup-agents/install/workspace-dir/wakeup-interval)
2292
+ // advanced (intent/requests/constraints/pre-wake-audit/idempotency/round-history/milestones/pulse)
2293
+ function commandsCmd(root) {
2294
+ const isTty = process.stdout && process.stdout.isTTY;
2295
+ const cy = s => isTty ? `\x1b[36m${s}\x1b[0m` : s;
2296
+ const gr = s => isTty ? `\x1b[32m${s}\x1b[0m` : s;
2297
+ const yl = s => isTty ? `\x1b[33m${s}\x1b[0m` : s;
2298
+ const dm = s => isTty ? `\x1b[2m${s}\x1b[0m` : s;
2299
+ const cats = {
2300
+ status: [
2301
+ { cmd: 'handoff [path] [--json] [--pulse] [--compact] [--quiet]', desc: 'μ„Έμ…˜ μ‹œμž‘ μ»¨ν…μŠ€νŠΈ + 7 톡합 ν•„λ“œ' },
2302
+ { cmd: 'health [path] [--json] [--strict]', desc: 'μ’…ν•© ν—¬μŠ€ + drift/security/skill/memory/featureGraph/roundHistory/milestones' },
2303
+ { cmd: 'pulse [path] [--json]', desc: 'ν•œ 쀄 μ’…ν•© μš”μ•½ (1.9.231)' },
2304
+ { cmd: 'round-history [path] [--json]', desc: 'git tag 기반 자율 λΌμš΄λ“œ 톡계 (1.9.226)' },
2305
+ { cmd: 'milestones [path] [--json]', desc: '도달 λ§ˆμΌμŠ€ν†€ + λ‹€μŒ ETA (1.9.229)' },
2306
+ { cmd: 'session-resume [path] [--auto-fix] [--json]', desc: '비정상 μ’…λ£Œ 감지 + 자율 재개 (1.9.220/222)' },
2307
+ { cmd: 'which', desc: 'ν™œμ„± provider + 경둜 진단' },
2308
+ { cmd: 'memory status [path] [--json]', desc: 'T/D/R/P/L Memory Surface (1.9.114)' }
2309
+ ],
2310
+ task: [
2311
+ { cmd: 'task add "<request>"', desc: 'task μΆ”κ°€ (μžλ™ dedup 1.9.212, review trigger 1.9.177)' },
2312
+ { cmd: 'task update <id> --status <S>', desc: 'task μƒνƒœ κ°±μ‹ ' },
2313
+ { cmd: 'task drop <id>', desc: 'task λ“œλ‘­' },
2314
+ { cmd: 'task export --to <path>', desc: 'TodoWrite JSON ν˜•μ‹ export (1.9.60)' },
2315
+ { cmd: 'next-action take|list [--json]', desc: 'next-action queue (1.9.201)' }
2316
+ ],
2317
+ memory: [
2318
+ { cmd: 'decision add|list|drop <id>', desc: 'decisions.md CRUD (1.9.108/118/125)' },
2319
+ { cmd: 'rule add|list|pause|resume|remove', desc: 'rules.md CRUD (1.9.8/109)' },
2320
+ { cmd: 'plan add|list <M-id>', desc: 'plan.md milestone CRUD (1.9.110/119)' },
2321
+ { cmd: 'lesson save|list|drop', desc: 'lessons.md CRUD (1.9.112/117/124)' }
2322
+ ],
2323
+ audit: [
2324
+ { cmd: 'audit [path] [--fix] [--strict] [--json]', desc: '메타 + λ³΄μ•ˆ + npm CVE 톡합 감사' },
2325
+ { cmd: 'drift check [path] [--auto-fix] [--json]', desc: 'drift μ‹ ν˜Έ + μžλ™ 회볡 (1.9.37/82/225)' },
2326
+ { cmd: 'scan secrets [path]', desc: 'μ‹œν¬λ¦Ώ 탐지' },
2327
+ { cmd: 'encoding check [path]', desc: '인코딩 검증' },
2328
+ { cmd: 'lazy detect [path] [--json]', desc: '게으λ₯Έ μž‘μ—… 감지 (1.9.101)' },
2329
+ { cmd: 'verify-claim <T-ID> [--run-tests] [--strict-claims]', desc: 'μ£Όμž₯ 검증 (1.9.18~26)' },
2330
+ { cmd: 'optimism-check <T-ID>', desc: '낙관적 API 감지 (1.9.26)' },
2331
+ { cmd: 'requests audit|list|complete|drop|auto-complete', desc: 'μ‚¬μš©μž μš”μ²­ 좔적 (1.9.207/223)' },
2332
+ { cmd: 'pre-wake-audit [path] [--last]', desc: 'sleep μ „ 점검 (1.9.209)' },
2333
+ { cmd: 'idempotency audit', desc: 'λ©±λ“±μ„± μœ„λ°˜ 탐지 (1.9.212)' }
2334
+ ],
2335
+ workflow: [
2336
+ { cmd: 'session close [path] [--json] [--auto-apply-delivered]', desc: 'μ„Έμ…˜ 마감 + 9 μΉ΄ν…Œκ³ λ¦¬ + μžλ™ 톡합' },
2337
+ { cmd: 'resume [path]', desc: 'auto-resume-plan 적용 (1.9.203)' },
2338
+ { cmd: 'route <task-type>', desc: 'μž‘μ—… μœ ν˜• λΆ„λ₯˜ (11μ’…)' },
2339
+ { cmd: 'agents list|check|quota|dispatch|multi', desc: 'μ™ΈλΆ€ AI CLI μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜' },
2340
+ { cmd: 'review-request "<request>"', desc: 'μ‚¬μš©μž μš”μ²­ 사전 κ²€ν†  (1.9.176)' },
2341
+ { cmd: 'review <file> --persona <ids>', desc: '페λ₯΄μ†Œλ‚˜ 리뷰 (1.9.29)' },
2342
+ { cmd: 'brainstorm "<topic>" [--include-code]', desc: 'μ›Œν¬μŠ€νŽ˜μ΄μŠ€ 회수 + μ½”λ“œ grep' }
2343
+ ],
2344
+ release: [
2345
+ { cmd: 'release sync-main [path]', desc: 'main merge + push + μžλ™ npm publish (1.9.140/178)' },
2346
+ { cmd: 'release pack', desc: 'tarball 생성' },
2347
+ { cmd: 'release publish', desc: 'GitHub release λ°œν–‰' }
2348
+ ],
2349
+ skill: [
2350
+ { cmd: 'skill list|info|learn|use|optimize|match|suggest', desc: 'skill μΉ΄νƒˆλ‘œκ·Έ CRUD' },
2351
+ { cmd: 'skill install|install-top|publish|search|discover', desc: 'skill 배포 + 검색' }
2352
+ ],
2353
+ bridge: [
2354
+ { cmd: 'web check|screenshot|extract <url>', desc: 'playwright bridge (opt-in, 1.9.165)' },
2355
+ { cmd: 'pc check|click|type|screenshot', desc: 'robotjs/nut-tree bridge (opt-in, 1.9.166)' },
2356
+ { cmd: 'lsp check|symbols|references', desc: 'LSP μ–΄λŒ‘ν„° (1.9.167)' }
2357
+ ],
2358
+ config: [
2359
+ { cmd: 'init [path]', desc: 'μ›Œν¬μŠ€νŽ˜μ΄μŠ€ μ΄ˆκΈ°ν™”' },
2360
+ { cmd: 'migrate [path] [--dry-run]', desc: 'μ—…λ°μ΄νŠΈ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜' },
2361
+ { cmd: 'update [--check|--yes|--force]', desc: 'μžκ°€ μ—…λ°μ΄νŠΈ' },
2362
+ { cmd: 'wakeup-interval get|set|auto|history|record', desc: 'adaptive wakeup (1.9.210)' },
2363
+ { cmd: 'workspace-dir get|guide', desc: 'μ›Œν¬μŠ€νŽ˜μ΄μŠ€ 디렉토리 (1.9.211)' },
2364
+ { cmd: 'intent classify|expand|domains "<request>"', desc: 'μ˜λ„ νŒŒμ•… + scope (1.9.213)' },
2365
+ { cmd: 'constraints list|check|add', desc: 'ν”Œλž«νΌ/API μ œμ•½ (1.9.208)' },
2366
+ { cmd: 'provider list|add|remove|sync', desc: 'Provider Registry (1.9.157~160)' },
2367
+ { cmd: 'commands [--json]', desc: '전체 λͺ…λ Ή μΉ΄ν…Œκ³ λ¦¬ λͺ©λ‘ (1.9.233)' }
2368
+ ]
2369
+ };
2370
+ if (has('--json')) {
2371
+ log(JSON.stringify({ version: VERSION, totalCommands: Object.values(cats).reduce((s, a) => s + a.length, 0), categories: cats }, null, 2));
2372
+ return;
2373
+ }
2374
+ log(cy(`# leerness commands (1.9.233) β€” 전체 CLI λͺ…λ Ή μΉ΄ν…Œκ³ λ¦¬ λͺ©λ‘`));
2375
+ log('');
2376
+ for (const [catName, list] of Object.entries(cats)) {
2377
+ log(gr(`## ${catName} (${list.length}개)`));
2378
+ list.forEach(c => {
2379
+ log(` β€’ ${c.cmd}`);
2380
+ log(dm(` ${c.desc}`));
2381
+ });
2382
+ log('');
2383
+ }
2384
+ log(dm(` β†’ 총 ${Object.values(cats).reduce((s, a) => s + a.length, 0)} λͺ…λ Ή (9 μΉ΄ν…Œκ³ λ¦¬)`));
2385
+ log(dm(` β†’ MCP 도ꡬ: 65 (μ™ΈλΆ€ AI λ…ΈμΆœ)`));
2386
+ log(dm(` β†’ λΉ λ₯Έ μ‹œμž‘: leerness pulse | handoff | health`));
2387
+ }
2388
+
2281
2389
  function roundHistoryCmd(root) {
2282
2390
  root = absRoot(root);
2283
2391
  const isTty = process.stdout && process.stdout.isTTY;
@@ -14232,7 +14340,8 @@ function mcpServeCmd(root) {
14232
14340
  { name: 'leerness_requests_auto_complete', description: '1.9.224 (1.9.223 μžλ™ 회수) β€” delivered νŒ¨ν„΄ μžλ™ 감지 + μžλ™ μ™„λ£Œ. "Round X.Y.Z β€” κ΅¬ν˜„ μ™„λ£Œ" / "implemented" / "delivered" νŒ¨ν„΄μ΄ μžˆλŠ” open μš”μ²­ 쀑 ν˜„μž¬ 버전 μ΄ν•˜μΈ 것을 ν›„λ³΄λ‘œ λΆ„λ₯˜. 응닡: { total, candidates: [{id, text, claimedVersion, currentVersion, deliveredKeyword, recordedAt}], currentVersion, applied (apply=true μ‹œ), completedIds[] }. μ™ΈλΆ€ AIκ°€ "운영 λˆ„μ λœ κ°€μ§œ λ―Έλ‹΅ μ‹ ν˜Έ 정리 κ°€λŠ₯ν•œκ°€?"λ₯Ό 회수. κΈ°λ³Έ dry-run, apply: true λͺ…μ‹œ μ‹œμ—λ§Œ μ‹€ 적용. 인자: { path?, apply? (default false) }', inputSchema: { type: 'object', properties: { path: { type: 'string' }, apply: { type: 'boolean' } } } },
14233
14341
  { name: 'leerness_round_history', description: '1.9.226 β€” 자율 λΌμš΄λ“œ 톡계. git tag v1.9.X 기반 λˆ„μ  λΌμš΄λ“œ 카운트 + λ‹€μŒ λ§ˆμΌμŠ€ν†€ (50/75/100/125/150/175/200/250/300/400/500) + 평균 rounds/day. 응닡: { currentVersion, roundCount, baselineVersion, latestTags[], nextMilestone, roundsToNextMilestone, firstTagAt, latestTagAt, daysActive, avgRoundsPerDay }. μ™ΈλΆ€ AIκ°€ "이 ν”„λ‘œμ νŠΈλŠ” μ–Όλ§ˆλ‚˜ 진행됐고 λ‹€μŒ λ§ˆμΌμŠ€ν†€κΉŒμ§€ λͺ‡ λΌμš΄λ“œ λ‚¨μ•˜λ‚˜?"λ₯Ό 회수. 인자: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } },
14234
14342
  { name: 'leerness_milestones', description: '1.9.229 (1.9.226 ν™•μž₯) β€” 도달 λ§ˆμΌμŠ€ν†€ + λ‹€μŒ ETA. git tag 순차 λΆ„μ„μœΌλ‘œ 25/50/75/100/125/150/175/200/250/300/400/500 λ§ˆμΌμŠ€ν†€ 도달 일자 + λ‹€μŒ λ§ˆμΌμŠ€ν†€ ETA (ν˜„μž¬ 속도 κΈ°μ€€) 계산. 응닡: { totalRounds, reached: [{milestone, version, reachedAt, daysFromBaseline}], next: {milestone, roundsRemaining, etaDays, etaDate}, baselineAt, avgRoundsPerDay }. μ™ΈλΆ€ AIκ°€ "μ§€κΈˆκΉŒμ§€ μ–΄λ–€ λ§ˆμΌμŠ€ν†€μ„ μ–Έμ œ λ‹¬μ„±ν–ˆκ³  λ‹€μŒ λ§ˆμΌμŠ€ν†€ μ˜ˆμƒ 도달일은?"을 회수. 인자: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } },
14235
- { name: 'leerness_pulse', description: '1.9.231 β€” ν•œ 쀄 μ’…ν•© μš”μ•½ (10 핡심 μ§€ν‘œ). 응닡: { version, roundCount, mcpTools, memorySurface, security, health, driftScore, nextMilestone, etaDays, abnormalShutdown }. μ™ΈλΆ€ AIκ°€ "leerness μƒνƒœ ν•œ λˆˆμ— 보기"λ₯Ό κ°€λ²Όμš΄ 단일 호좜둜 회수. handoff 보닀 5λ°° 빠름 (drift/health 계산 skip). 인자: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } }
14343
+ { name: 'leerness_pulse', description: '1.9.231 β€” ν•œ 쀄 μ’…ν•© μš”μ•½ (10 핡심 μ§€ν‘œ). 응닡: { version, roundCount, mcpTools, memorySurface, security, health, driftScore, nextMilestone, etaDays, abnormalShutdown }. μ™ΈλΆ€ AIκ°€ "leerness μƒνƒœ ν•œ λˆˆμ— 보기"λ₯Ό κ°€λ²Όμš΄ 단일 호좜둜 회수. handoff 보닀 5λ°° 빠름 (drift/health 계산 skip). 인자: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } },
14344
+ { name: 'leerness_commands', description: '1.9.233 β€” μΉ΄ν…Œκ³ λ¦¬ν™”λœ 전체 CLI λͺ…λ Ή λͺ©λ‘ (9 μΉ΄ν…Œκ³ λ¦¬). 응닡: { version, totalCommands, categories: { status, task, memory, audit, workflow, release, skill, bridge, config } }. μ™ΈλΆ€ AIκ°€ "leerness κ°€ μ œκ³΅ν•˜λŠ” λͺ…령이 뭐가 μžˆλ‚˜"λ₯Ό 직접 회수. 맀뉴얼/도움말 동적 생성. 인자: { path? }', inputSchema: { type: 'object', properties: { path: { type: 'string' } } } }
14236
14345
  ];
14237
14346
 
14238
14347
  function send(obj) {
@@ -14405,6 +14514,10 @@ function mcpServeCmd(root) {
14405
14514
  // 1.9.231: ν•œ 쀄 μ’…ν•© μš”μ•½ (10 핡심 μ§€ν‘œ)
14406
14515
  cliArgs = ['pulse', '--path', targetPath, '--json'];
14407
14516
  break;
14517
+ case 'leerness_commands':
14518
+ // 1.9.233: μΉ΄ν…Œκ³ λ¦¬ν™”λœ 전체 CLI λͺ…λ Ή λͺ©λ‘
14519
+ cliArgs = ['commands', '--json'];
14520
+ break;
14408
14521
  default:
14409
14522
  return send({ jsonrpc: '2.0', id, error: { code: -32601, message: `Unknown tool: ${name}` } });
14410
14523
  }
@@ -18064,6 +18177,8 @@ async function main() {
18064
18177
  if (cmd === 'milestones') return milestonesCmd(arg('--path', process.cwd()));
18065
18178
  // 1.9.231: leerness pulse β€” ν•œ 쀄 μ’…ν•© μš”μ•½ (10 핡심 μ§€ν‘œ)
18066
18179
  if (cmd === 'pulse') return pulseCmd(arg('--path', process.cwd()));
18180
+ // 1.9.233: leerness commands β€” μΉ΄ν…Œκ³ λ¦¬ν™”λœ 전체 CLI λͺ…λ Ή λͺ©λ‘
18181
+ if (cmd === 'commands') return commandsCmd(arg('--path', process.cwd()));
18067
18182
  // 1.9.208: leerness constraints <list|check|add> β€” ν”Œλž«νΌ/API μ œμ•½ 사전 체크 (μ‚¬μš©μž λͺ…μ‹œ)
18068
18183
  if (cmd === 'constraints') return constraintsCmd(arg('--path', process.cwd()), args[1], ...args.slice(2));
18069
18184
  // 1.9.209: leerness pre-wake-audit β€” sleep μ „ sub-agent audit (μ‚¬μš©μž λͺ…μ‹œ)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leerness",
3
- "version": "1.9.232",
3
+ "version": "1.9.233",
4
4
  "description": "Leerness: λΉ„νŒŒκ΄΄ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜, μžλ™ 버전 κ°μ§€Β·μ—…λ°μ΄νŠΈ, κ³„νš/μ§„ν–‰/ν•Έλ“œμ˜€ν”„ μžλ™ν™”, κ²ŒμœΌλ¦„Β·μ‹œν¬λ¦ΏΒ·μΈμ½”λ”© μžλ™ κ°€λ“œ, Claude Code μŠ¬λž˜μ‹œ 톡합을 κ°–μΆ˜ ν•œκ΅­μ–΄ μš°μ„  AI 개발 ν•˜λ„€μŠ€.",
5
5
  "keywords": [
6
6
  "leerness",