leerness 1.9.182 โ 1.9.183
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 +80 -0
- package/README.md +3 -3
- package/bin/harness.js +20 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.183 โ 2026-05-21
|
|
4
|
+
|
|
5
|
+
**๐ฆ npm i leerness + ๊ตฌ๋ฒ์ ์๋ ๊ฐ์ง/๊ฒฝ๊ณ /์
๋ฐ์ดํธ ๋ช
๋ น์ด ์๋ด (์ฌ์ฉ์ ๋ช
์ 3์ข
).**
|
|
6
|
+
|
|
7
|
+
์์จ ๋ชจ๋ 113 ๋ผ์ด๋. ์ฌ์ฉ์ ๋ช
์:
|
|
8
|
+
1. *"(vercel/anthropic) ํ๊ธฐ๋ ์ ๊ฑฐ"* โ ์ผ๋ฐํ
|
|
9
|
+
2. *"vercel/anthropic ํฌํจํ ๋ค๋ฅธ ๊ณต์ ์คํฌ๋ ์๋ ํ์ํ๋ ๊ฒ ๋ง๋์ง ํ์ธ"* โ ๊ฒ์ฆ ํต๊ณผ
|
|
10
|
+
3. *"npm i leerness ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ + ๊ตฌ๋ฒ์ ๊ฐ์ง/๊ฒฝ๊ณ /์
๋ฐ์ดํธ ๋ช
๋ น์ด ์๋ด"* โ ๋ชจ๋ ๋ช
๋ น์ stale check ์ง์
|
|
11
|
+
|
|
12
|
+
### 1. ํ๊ธฐ ์ผ๋ฐํ
|
|
13
|
+
```diff
|
|
14
|
+
- ๐ ๊ณต์ catalog ์๋ ํ์ (vercel/anthropic) ยท ์๊ฐ ์ฑ์ฅํ
|
|
15
|
+
+ ๐ ๊ณต์ catalog ์๋ ํ์ ยท ์๊ฐ ์ฑ์ฅํ ยท ๊ตฌ๋ฒ์ ๊ฐ์ง/์๋ด
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 2. ๋ค๋ฅธ ๊ณต์ catalog ์๋ ํ์ ํ์ธ (live)
|
|
19
|
+
```bash
|
|
20
|
+
$ leerness skill discover --all-presets
|
|
21
|
+
fetching vercel-labs/agent-skills...
|
|
22
|
+
โ vercel-labs/agent-skills: 8๊ฐ skill ๋ฐ๊ฒฌ
|
|
23
|
+
fetching anthropics/skills...
|
|
24
|
+
โ anthropics/skills: 17๊ฐ skill ๋ฐ๊ฒฌ
|
|
25
|
+
์ ์ฒด 25๊ฑด
|
|
26
|
+
```
|
|
27
|
+
**vercel + anthropic ๋ชจ๋ ์ ์ ์๋**. ๋ค๋ฅธ ๊ณต์ organization์ `--github <owner/repo>` ์ต์
์ผ๋ก ์ฆ์ ์ถ๊ฐ ๊ฐ๋ฅ (`vercel-labs/agent-skills`, `anthropics/skills` ์ธ์ ์ ๊ณต์ ๋ฑ์ฅ ์ preset ๋ฑ๋ก).
|
|
28
|
+
|
|
29
|
+
์กฐ์ฌ ๊ฒฐ๊ณผ โ 1.9.183 ์์ ํ์ค SKILL.md ์นดํ๋ก๊ทธ๋ฅผ ๊ฐ์ถ ๊ณต์ organization:
|
|
30
|
+
- `vercel-labs/agent-skills` (8๊ฐ) โ preset `vercel`
|
|
31
|
+
- `anthropics/skills` (17๊ฐ) โ preset `anthropic`
|
|
32
|
+
- `modelcontextprotocol/servers` โ SKILL.md ํ์ ์๋ (MCP server ๊ตฌํ โ leerness skill ํธํ์ฑ X)
|
|
33
|
+
- ๊ธฐํ โ ๋ฏธ๋ฐ๊ฒฌ. ์ ๊ณต์ ๋ฑ์ฅ ์ ์ฆ์ preset ๋ฑ๋ก ๊ฐ๋ฅ.
|
|
34
|
+
|
|
35
|
+
### 3. ๊ตฌ๋ฒ์ ์๋ ๊ฐ์ง ๊ฐํ (๋ชจ๋ ๋ช
๋ น)
|
|
36
|
+
**Before**: init/migrate ์์ ๋ง stale check (๋ค๋ฅธ ๋ช
๋ น์ skip)
|
|
37
|
+
**After**: ๊ฑฐ์ ๋ชจ๋ ๋ช
๋ น ์์ ์ stale check (init/migrate/mcp/release/version/help ์ ์ธ โ ์ถ๋ ฅ ๋ฏผ๊ฐ ๋ช
๋ น์ skip)
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
// 1.9.183 (์ฌ์ฉ์ ๋ช
์): ๋ชจ๋ ๋ช
๋ น ์์ ์์ ๊ตฌ๋ฒ์ ๊ฐ์ง + ๊ฒฝ๊ณ + ์
๋ฐ์ดํธ ๋ช
๋ น์ด ์๋ด
|
|
41
|
+
const _staleSkip = new Set(['init', 'migrate', 'usage', 'mcp', 'release', 'session-close', '--version', '--help', 'help', 'update', 'whats-new']);
|
|
42
|
+
if (!_staleSkip.has(cmd) && process.env.LEERNESS_NO_STALE_CHECK !== '1' && !has('--no-stale-check')) {
|
|
43
|
+
const cached = readUpdateCache(root);
|
|
44
|
+
if (cacheFresh(cached, 24) && cached.nextLeerness && compareVer(cached.nextLeerness, VERSION) > 0) {
|
|
45
|
+
process.stderr.write(` โ leerness v${VERSION} โ v${cached.nextLeerness} ์ฌ์ฉ ๊ฐ๋ฅ ยท npm i leerness@latest ๊ถ์ฅ ...`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**์ค ๋์ ๊ฒ์ฆ** (์บ์ ์๋ฎฌ๋ ์ด์
):
|
|
51
|
+
```
|
|
52
|
+
$ leerness audit .
|
|
53
|
+
โ leerness v1.9.183 โ v1.9.999 ์ฌ์ฉ ๊ฐ๋ฅ ยท npm i leerness@latest ๊ถ์ฅ (LEERNESS_NO_STALE_CHECK=1 ๋ก ๋๊ธฐ)
|
|
54
|
+
โ no duplicate design guide candidates
|
|
55
|
+
[...]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 4. `npm i leerness` ์ฒซ ๊ถ์ฅ (๊ธ๋ก๋ฒ โ ๋ก์ปฌ ์ฐ์ )
|
|
59
|
+
init ์์ stale ๋ฉ์์ง๋ ๊ฐฑ์ :
|
|
60
|
+
```
|
|
61
|
+
ํด๊ฒฐ โ ์
์ค ํ๋ ์คํ ํ ๋ค์ ์๋:
|
|
62
|
+
npm i leerness@latest # ํ๋ก์ ํธ ๋ก์ปฌ ์ค์น (1.9.183 ๊ถ์ฅ)
|
|
63
|
+
npm i -g leerness@latest # ๊ธ๋ก๋ฒ ์ค์น
|
|
64
|
+
npx --yes clear-npx-cache && npx leerness@latest init .
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### npm registry ์ํ
|
|
68
|
+
```bash
|
|
69
|
+
$ npm view leerness version
|
|
70
|
+
1.9.182 โ ์ง์ publish
|
|
71
|
+
$ npm view leerness dist-tags
|
|
72
|
+
{ latest: '1.9.182' }
|
|
73
|
+
```
|
|
74
|
+
์ด๋ฒ ๋ผ์ด๋ release sync-main ํ `latest: '1.9.183'` ์ผ๋ก ์๋ ๊ฐฑ์ .
|
|
75
|
+
|
|
76
|
+
### Verified
|
|
77
|
+
- stress-v128: **16/16** (์ฌ์ฉ์ ๋ช
์ 3 + ๊ตฌ๋ฒ์ ๊ฐ์ง 4 + npm ๋ฐฐํฌ 2 + VERSION+๋์ 7)
|
|
78
|
+
- e2e 217/217 baseline ์ ์ง
|
|
79
|
+
- VERSION = 1.9.183 ยท autonomous-rounds = 113 ยท main ์๋ push 44 ๋ผ์ด๋ ์ฐ์
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
3
83
|
## 1.9.182 โ 2026-05-21
|
|
4
84
|
|
|
5
85
|
**๐ ๊ณต์ ์กฐ์ง ์คํฌ catalog ์๋ ํ์ โ vercel-labs/agent-skills + anthropics/skills ์ง์ ํตํฉ (์ฌ์ฉ์ ๋ช
์).**
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> **AI ์ฝ๋ฉ ์์ด์ ํธ์ ๊ฑฐ์ง ์๋ฃยท์ค๋ณตยท๋ง๊ฐยท์ถฉ๋์ ๋ง์์ฃผ๋ ๊ฒ์ยท๊ธฐ์ตยทํ์
CLI ํ๋ค์ค.**
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/leerness) [](https://www.npmjs.com/package/leerness) []() []() []() []() []() []() []() []() []() []() []() []()
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
โ โโโ โโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ โ
|
|
13
13
|
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
|
|
14
14
|
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
|
|
15
|
-
โ v1.9.
|
|
15
|
+
โ v1.9.183 AI Agent Reliability Harness + Sandbox โ
|
|
16
16
|
โ verify ยท remember ยท orchestrate ยท audit ยท sandbox ยท drift โ
|
|
17
|
-
โ ๐ ๊ณต์ catalog ์๋ ํ์
|
|
17
|
+
โ ๐ ๊ณต์ catalog ์๋ ํ์ ยท ์๊ฐ ์ฑ์ฅํ ยท ๊ตฌ๋ฒ์ ๊ฐ์ง/์๋ด โ
|
|
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.
|
|
10
|
+
const VERSION = '1.9.183';
|
|
11
11
|
const MARK = '<!-- leerness:managed -->';
|
|
12
12
|
const README_START = '<!-- leerness:project-readme:start -->';
|
|
13
13
|
const README_END = '<!-- leerness:project-readme:end -->';
|
|
@@ -5102,9 +5102,10 @@ async function _warnIfStale(root, opts = {}) {
|
|
|
5102
5102
|
log(C.d(' npm registry latest: ') + C.b(`v${latest}`));
|
|
5103
5103
|
log(C.d(' ์ด CLI๊ฐ ์คํํ ๋ฒ์ : ') + C.b(`v${VERSION}`) + C.d(' (npx ์บ์ ๋๋ ๊ธ๋ก๋ฒ ์ค์น stale)'));
|
|
5104
5104
|
log('');
|
|
5105
|
-
log(C.d(' ํด๊ฒฐ โ
|
|
5105
|
+
log(C.d(' ํด๊ฒฐ โ ์
์ค ํ๋ ์คํ ํ ๋ค์ ์๋:'));
|
|
5106
|
+
log(' ' + C.b('npm i leerness@latest') + C.d(' # ํ๋ก์ ํธ ๋ก์ปฌ ์ค์น (1.9.183 ๊ถ์ฅ)'));
|
|
5107
|
+
log(' ' + C.b('npm i -g leerness@latest') + C.d(' # ๊ธ๋ก๋ฒ ์ค์น'));
|
|
5106
5108
|
log(' ' + C.b('npx --yes clear-npx-cache && npx leerness@latest init .'));
|
|
5107
|
-
log(' ' + C.b('npm i -g leerness@latest โ leerness init .'));
|
|
5108
5109
|
log('');
|
|
5109
5110
|
log(C.d(' (์ด ๊ฒฝ๊ณ ๋ LEERNESS_NO_STALE_CHECK=1 ๋๋ --no-stale-check๋ก ๋ ์ ์์ต๋๋ค)'));
|
|
5110
5111
|
log('');
|
|
@@ -13622,6 +13623,22 @@ async function main() {
|
|
|
13622
13623
|
if (exists(path.join(root, '.harness'))) _bumpUsage(root, cmd);
|
|
13623
13624
|
} catch {}
|
|
13624
13625
|
}
|
|
13626
|
+
// 1.9.183 (์ฌ์ฉ์ ๋ช
์): ๋ชจ๋ ๋ช
๋ น ์์ ์์ ๊ตฌ๋ฒ์ ๊ฐ์ง + ๊ฒฝ๊ณ + ์
๋ฐ์ดํธ ๋ช
๋ น์ด ์๋ด.
|
|
13627
|
+
// init/migrate ๋ ์ด๋ฏธ _warnIfStale ํธ์ถํ๋ฏ๋ก ์ ์ธ. mcp/version/help ๋ฑ ์ถ๋ ฅ ๋ฏผ๊ฐ ๋ช
๋ น๋ ์ ์ธ.
|
|
13628
|
+
// 24h ์บ์ (.harness/cache/update-check.json) ํ์ฉ โ ๋คํธ์ํฌ ๋น์ฐจ๋จ.
|
|
13629
|
+
const _staleSkip = new Set(['init', 'migrate', 'usage', 'mcp', 'release', 'session-close', '--version', '--help', 'help', 'update', 'whats-new']);
|
|
13630
|
+
if (!_staleSkip.has(cmd) && process.env.LEERNESS_NO_STALE_CHECK !== '1' && !has('--no-stale-check')) {
|
|
13631
|
+
try {
|
|
13632
|
+
const root = absRoot(arg('--path', args[1] && !args[1].startsWith('-') ? args[1] : process.cwd()));
|
|
13633
|
+
// ์บ์ fresh ์์๋ง ์ฆ์ ๋น๊ต (๋คํธ์ํฌ ํธ์ถ X โ ๋น์ฐจ๋จ). offline + cache ์์ผ๋ฉด skip.
|
|
13634
|
+
const cached = readUpdateCache(root);
|
|
13635
|
+
if (cacheFresh(cached, 24) && cached.nextLeerness && compareVer(cached.nextLeerness, VERSION) > 0) {
|
|
13636
|
+
const isTty = process.stdout && process.stdout.isTTY;
|
|
13637
|
+
const C = isTty ? { y: s => `\x1b[33m${s}\x1b[0m`, b: s => `\x1b[1m${s}\x1b[0m`, d: s => `\x1b[2m${s}\x1b[0m` } : { y: s => s, b: s => s, d: s => s };
|
|
13638
|
+
process.stderr.write(C.y(' โ ') + C.b(`leerness v${VERSION} โ v${cached.nextLeerness} ์ฌ์ฉ ๊ฐ๋ฅ`) + C.d(` ยท ${C.b('npm i leerness@latest')} ๊ถ์ฅ (LEERNESS_NO_STALE_CHECK=1 ๋ก ๋๊ธฐ)`) + '\n');
|
|
13639
|
+
}
|
|
13640
|
+
} catch {}
|
|
13641
|
+
}
|
|
13625
13642
|
if (cmd === 'init') return await install(args[1] || process.cwd(), { force:false, dry:false, migration:false });
|
|
13626
13643
|
// 1.9.64: install <skill-id-or-url> ๋ณ์นญ (= skill install). ์์ฃผ ์ฐ๋ ๋ช
๋ น ๋จ์ถํ.
|
|
13627
13644
|
// ๋จ, init์ด leerness install . ๊ฐ์ ํํ๋ก๋ ๋์ํ๋ ์ ํธํ์ ์ ์ง โ args[1]์ด ๋๋ ํ ๋ฆฌ๋ฉด init์ผ๋ก ๋ผ์ฐํ
.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leerness",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.183",
|
|
4
4
|
"description": "Leerness: ๋นํ๊ดด ๋ง์ด๊ทธ๋ ์ด์
, ์๋ ๋ฒ์ ๊ฐ์งยท์
๋ฐ์ดํธ, ๊ณํ/์งํ/ํธ๋์คํ ์๋ํ, ๊ฒ์ผ๋ฆยท์ํฌ๋ฆฟยท์ธ์ฝ๋ฉ ์๋ ๊ฐ๋, Claude Code ์ฌ๋์ ํตํฉ์ ๊ฐ์ถ ํ๊ตญ์ด ์ฐ์ AI ๊ฐ๋ฐ ํ๋ค์ค.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"leerness",
|