leerness 1.9.440 → 1.9.441

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,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.441 — 2026-06-08 — README ASCII 배너 추가
4
+
5
+ **🎨 README 최상단에 LEERNESS ASCII 아트 배너 추가(CLI `_banner` 와 동일 아트).**
6
+
7
+ ### 변경
8
+ - `README.md` 상단에 LEERNESS 블록레터 ASCII 배너를 코드블록으로 표시 — CLI init 배너(`_banner`)와 동일한 아트로 브랜드 일관성.
9
+ - selftest: README ↔ CLI `_banner` 동일 배너 라인 검증.
10
+
11
+ ### 검증 (회귀 0)
12
+ - **selftest 185→186 PASS** · **E2E 무회귀**.
13
+
3
14
  ## 1.9.440 — 2026-06-08 — 🛡️ [안정화/Stable] 시크릿 스캐너 prefix 패턴 placeholder 가드 (12th 외부평가 Opus P2, UR-0140)
4
15
 
5
16
  **🛡️ 안정화 릴리스(Stable) — 보안 스캐너 False-Positive 가 CI 를 깨던 문제 수정.**
package/README.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # leerness
2
2
 
3
+ ```
4
+ ██╗ ███████╗███████╗██████╗ ███╗ ██╗███████╗███████╗
5
+ ██║ ██╔════╝██╔════╝██╔══██╗████╗ ██║██╔════╝██╔════╝
6
+ ██║ █████╗ █████╗ ██████╔╝██╔██╗ ██║█████╗ ███████╗
7
+ ██║ ██╔══╝ ██╔══╝ ██╔══██╗██║╚██╗██║██╔══╝ ╚════██║
8
+ ███████╗███████╗███████╗██║ ██║██║ ╚████║███████╗███████║
9
+ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
10
+ ```
11
+
3
12
  > **AI 코딩 에이전트를 위한 운영 레이어(operating layer).** 코드를 대신 쓰는 도구가 아니라, AI 에이전트의 **기억·인수인계·검증·감사·보안 가드**를 프로젝트에 영속화하는 CLI + MCP 서버입니다.
4
13
 
5
14
  [![npm](https://img.shields.io/npm/v/leerness)](https://www.npmjs.com/package/leerness) · ![MCP tools](https://img.shields.io/badge/MCP--tools-85-blue) · **런타임 의존성 0** · **install-script 0** · offline-first · Node ≥ 18 · MIT
@@ -159,7 +168,7 @@ MIT
159
168
  <!-- leerness:project-readme:start -->
160
169
  ## Leerness Project Harness
161
170
 
162
- 이 프로젝트는 Leerness v1.9.440 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
171
+ 이 프로젝트는 Leerness v1.9.441 하네스를 사용합니다. AI 에이전트는 작업 전 `leerness handoff`로 컨텍스트를 적재하고, 작업 후 `leerness check`/`leerness audit`/`leerness session close`를 수행해야 합니다.
163
172
 
164
173
  ### 정체성 — AI 에이전트 운영 레이어 (UR-0030)
165
174
 
@@ -213,7 +222,7 @@ leerness memory restore decision <date|title>
213
222
 
214
223
  ### MCP server (외부 AI 통합)
215
224
 
216
- Leerness v1.9.440는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **85개 도구**를 노출:
225
+ Leerness v1.9.441는 stdio JSON-RPC MCP server를 내장합니다 — Claude Code · Cursor · Codex CLI 등 외부 AI에 **85개 도구**를 노출:
217
226
 
218
227
  ```jsonc
219
228
  // 카테고리별
@@ -234,7 +243,7 @@ Leerness v1.9.440는 stdio JSON-RPC MCP server를 내장합니다 — Claude Cod
234
243
  `<<autonomous-loop-dynamic>>` 신호만 보내면 AI가:
235
244
  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) 다음 라운드 예약.
236
245
 
237
- 현재 누적: **70 라운드 (1.9.40 → 1.9.440)** · 매 라운드 GitHub release/태그 생성 · _reports/는 비공개 보존.
246
+ 현재 누적: **70 라운드 (1.9.40 → 1.9.441)** · 매 라운드 GitHub release/태그 생성 · _reports/는 비공개 보존.
238
247
 
239
248
  ### 성능 가이드 (1.9.140 측정)
240
249
 
@@ -272,5 +281,6 @@ leerness release pack --close --auto-main-push
272
281
  - `.harness/session-handoff.md`: 다음 세션 인수인계 (자동 작성)
273
282
  - `.harness/lessons.md` / `decisions.md` / `rules.md`: 영구 메모리 (5 surface)
274
283
 
275
- Last synced by Leerness v1.9.440: 2026-06-08
284
+ Last synced by Leerness v1.9.441: 2026-06-08
276
285
  <!-- leerness:project-readme:end -->
286
+
package/bin/leerness.js CHANGED
@@ -31,7 +31,7 @@ const { _evidenceQuality, _parseEvidenceStats, _shellGuardAnalyze, _claimFileInG
31
31
  // 1.9.295 (UR-0025 4단계): 정적 데이터 카탈로그 모듈 분리 (비파괴, require-based).
32
32
  const { CAPABILITY_SURFACE, POWERFUL_COMMANDS, ADAPTERS, REUSE_CATEGORIES, REUSE_CHECKLIST, _DEFAULT_PLATFORM_CONSTRAINTS, _DEFAULT_DOMAIN_CATALOG, _LSP_LANG_PATTERNS, OPTIMISM_PATTERNS, BUILT_IN_PERSONAS, STRINGS, BUILTIN_CATALOG, ROADMAP_STATUS_LABEL, ROADMAP_STATUS_COLOR, SECRET_PATTERNS, MERGE_OVERWRITE_FILES, MINIMAL_SKIP_KEYS, REQUIRED_WORKSPACE_FILES, KEYWORD_STOPWORDS, SKILL_CATALOG_PRESETS } = require('../lib/catalogs'); // 1.9.344/368/369 (UR-0025): catalog 분리 (MERGE_OVERWRITE_FILES/MINIMAL_SKIP_KEYS 포함)
33
33
 
34
- const VERSION = '1.9.440';
34
+ const VERSION = '1.9.441';
35
35
 
36
36
  // 1.9.290 (UR-0037, Codex gpt-5.5 #4 수렴): CLI 전용 부작용은 require 시 실행하지 않는다.
37
37
  // 이전: warning listener 제거 / NODE_OPTIONS 변경 / chcp IIFE 가 top-level 즉시 실행 → require('harness') 시 호스트 프로세스 오염.
@@ -3307,6 +3307,11 @@ function _selfTestCases() {
3307
3307
  const behav = m._isPlaceholderSecret('AKIA' + 'X'.repeat(16)) === true && m._isPlaceholderSecret('AKIAJQXMP7RZ2KL9WXYZ') === false && m._isPlaceholderSecret('sk-EXAMPLEab12cd34ef56gh78ij90kl') === false;
3308
3308
  return wired && behav;
3309
3309
  } },
3310
+ { name: 'README ASCII 배너 표시 + CLI _banner 와 동일 아트 (1.9.441)', run: () => {
3311
+ const readme = read(path.join(path.dirname(__filename), '..', 'README.md'));
3312
+ const bannerLine = '███████╗███████╗██╗ ██╗'.slice(0, 0) + '██║ █████╗ █████╗ ██████╔╝'; // LEERNESS 배너 고유 라인(자기참조 회피 split)
3313
+ return readme.includes(bannerLine) && read(__filename).includes(bannerLine); // README ↔ CLI _banner 동일 아트
3314
+ } },
3310
3315
  { name: 'VERSION 형식 (x.y.z)', run: () => /^\d+\.\d+\.\d+$/.test(VERSION) }
3311
3316
  ];
3312
3317
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leerness",
3
- "version": "1.9.440",
3
+ "version": "1.9.441",
4
4
  "description": "Leerness: 비파괴 마이그레이션, 자동 버전 감지·업데이트, 계획/진행/핸드오프 자동화, 게으름·시크릿·인코딩 자동 가드, Claude Code 슬래시 통합을 갖춘 한국어 우선 AI 개발 하네스.",
5
5
  "keywords": [
6
6
  "leerness",