@uzysjung/agent-harness 26.155.0 → 26.157.0

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/README.ko.md CHANGED
@@ -55,6 +55,17 @@ npx -y @uzysjung/agent-harness uninstall # 무엇을 뺄지 고른다
55
55
  제거되지 않으며, 제거는 오직 이 명령에서만 일어난다. 자세한 내용은
56
56
  [uninstall](docs/USAGE.md#uninstall-v26640) 참고.
57
57
 
58
+ ### 스킬 하나만 받기 (하네스 없이)
59
+
60
+ 번들 스킬은 [skills CLI](https://github.com/vercel-labs/skills) 로 하나씩도 받는다 — 하네스도 트랙도 필요 없다:
61
+
62
+ ```bash
63
+ npx skills add uzysjung/uzys-agent-harness --skill user-centered-explanation -a claude-code
64
+ # 목록 보기: npx skills add uzysjung/uzys-agent-harness --list
65
+ ```
66
+
67
+ `.claude-plugin/plugin.json` 이 skills CLI 에 번들 위치(`templates/skills/`)를 알려 준다 — 하네스가 내보내는 모든 스킬의 원본이라, 설치기가 복사하는 것과 같은 파일(`references/` 포함)을 받는다. 갱신은 같은 명령을 다시 돌리면 된다. 2026-09-20 순정 `node:20` 컨테이너에서 확인. 스킬 디렉터리 페이지: [skills.sh/uzysjung/uzys-agent-harness](https://skills.sh/uzysjung/uzys-agent-harness) (설치 집계로 자동 등재되며, 리포 루트의 `skills.sh.json` 이 페이지의 묶음을 정한다).
68
+
58
69
  ## 왜
59
70
 
60
71
  코딩 에이전트는 계속 발전하지만, 한 번 설치한 skill 과 MCP 는 실제 사용과 무관하게 매 세션 context window 를 점유한다. awesome-list 에 수백 개의 선택지가 있어도 내 기술 스택에 맞는 항목을 찾아주지는 않는다. 결국 전부 설치해 매 세션 불필요한 비용을 치르거나, 프로젝트를 시작할 때마다 직접 목록을 확인하고 골라야 한다.
@@ -63,7 +74,7 @@ npx -y @uzysjung/agent-harness uninstall # 무엇을 뺄지 고른다
63
74
 
64
75
  ## 무엇을 얻는가
65
76
 
66
- - **스택 기반 큐레이션.** 검증된 옵션 중에서 이 프로젝트에 실제로 필요한 자산만 골라 설치한다. `csr-supabase` 를 고르면 세 묶음이 미리 체크된다 — 모든 track 이 받는 4종(`north-star`·`objective-brief`·`gh-issue-workflow`·`audit-harness-fit`), 개발 track 이 받는 것들(`find-skills`·`agent-browser`·`frontend-design` + 방법론 스킬 5종), 그리고 이 스택이 필요로 하는 React·shadcn·Supabase·Postgres. 카탈로그의 나머지는 처음부터 끼어들지 않는다.
77
+ - **스택 기반 큐레이션.** 검증된 옵션 중에서 이 프로젝트에 실제로 필요한 자산만 골라 설치한다. `csr-supabase` 를 고르면 세 묶음이 미리 체크된다 — 모든 track 이 받는 4종(`north-star`·`objective-brief`·`gh-issue-workflow`·`audit-harness-fit`), 개발 track 이 받는 것들(`find-skills`·`frontend-design` + 방법론 스킬 5종), 그리고 이 스택이 필요로 하는 React·shadcn·Supabase·Postgres. 카탈로그의 나머지는 처음부터 끼어들지 않는다.
67
78
 
68
79
  - **규율 레이어.** 실제 프로덕션 프로젝트를 에이전트로 운영하며 추출한 룰·훅·방법론 스킬·CI 스캐폴드로 구성된다. 문서 거버넌스와 검증 게이트, 작업 브리프 정규화, 재발 방지 체계를 아우르며, 특히 스킬 14종은 마켓플레이스에 의존하지 않고 이 저장소에서 직접 쓰고 관리한다. 그중 13종은 id 로 지정할 수 있다(`--with`/`--without`). 이 레이어 덕분에 단순한 skill 모음을 넘어선 하네스로 작동한다.
69
80
 
package/README.md CHANGED
@@ -51,6 +51,17 @@ npx -y @uzysjung/agent-harness uninstall # pick what to remove
51
51
 
52
52
  Run in a terminal, `uninstall` asks what to take out — item by item, or everything. It reverses what it safely can and *prints* the rest — global-scope assets, and files outside `.claude/` such as `.mcp.json` — instead of editing files that hold your own content. Unchecking something in the installer never removes it; removal only happens here. See [uninstall](docs/USAGE.md#uninstall-v26640).
53
53
 
54
+ ### One skill, without the harness
55
+
56
+ Every bundled skill is also installable on its own with the [skills CLI](https://github.com/vercel-labs/skills) — no harness, no track:
57
+
58
+ ```bash
59
+ npx skills add uzysjung/uzys-agent-harness --skill user-centered-explanation -a claude-code
60
+ # see what is there: npx skills add uzysjung/uzys-agent-harness --list
61
+ ```
62
+
63
+ `.claude-plugin/plugin.json` points the skills CLI at the bundle (`templates/skills/`), the single source for every skill the harness ships — you get the same file the installer would copy, `references/` and all. Re-run the same command to refresh. Verified in a clean `node:20` container on 2026-09-20. The repo page on the skills directory: [skills.sh/uzysjung/uzys-agent-harness](https://skills.sh/uzysjung/uzys-agent-harness) (listed automatically from installs; `skills.sh.json` at the repo root groups the page).
64
+
54
65
  ## Why
55
66
 
56
67
  Coding agents keep getting stronger on their own. But every skill and MCP you install sits in the context window each session whether you use it or not, and the awesome-lists carry hundreds of options with no way to tell which ones your stack actually calls for. So you either install everything and pay for it every session, or read through the lists yourself each time you start a project.
@@ -59,7 +70,7 @@ This tool starts from the stack instead. You pick a track, and it pre-checks the
59
70
 
60
71
  ## What you get
61
72
 
62
- - **Curation by tech stack.** Of the vetted options, you install only what this project calls for. Pick `csr-supabase` and step 3 pre-checks three groups: the four that every track gets (`north-star`, `objective-brief`, `gh-issue-workflow`, `audit-harness-fit`), the dev-track set (`find-skills`, `agent-browser`, `frontend-design`, and the five method skills), and the ones this stack calls for — React, shadcn, Supabase, Postgres. Not the rest of the catalog.
73
+ - **Curation by tech stack.** Of the vetted options, you install only what this project calls for. Pick `csr-supabase` and step 3 pre-checks three groups: the four that every track gets (`north-star`, `objective-brief`, `gh-issue-workflow`, `audit-harness-fit`), the dev-track set (`find-skills`, `frontend-design`, and the five method skills), and the ones this stack calls for — React, shadcn, Supabase, Postgres. Not the rest of the catalog.
63
74
 
64
75
  - **A discipline layer.** Rules, hooks, method skills, and CI scaffolds distilled from running real production projects with agents: doc governance, verification gates, normalized task briefs, recurrence prevention. Fourteen of those skills are written and maintained in this repo rather than pulled from a marketplace — thirteen of them selectable by id with `--with` / `--without` — so the harness ships the method, not just a pointer to one. This layer is what makes it a harness rather than a skill pack.
65
76
 
@@ -175,14 +175,16 @@ var EXTERNAL_ASSETS = [
175
175
  // 앞선다 — 본문 게이트(테스트)가 이 리포에만 있기 때문이다. tier official = 자사
176
176
  // (star 무관 — trust-tier-drift 가 official 을 건너뛴다). condition 은 이관 전 도달 범위 유지.
177
177
  {
178
- id: "clear-korean-communication",
178
+ // #485 — 전신 `clear-korean-communication` 개명. 이름이 "한국어 전용"으로 읽혀 영어 사용자에게
179
+ // 닿지 않았다(사용자 결정 2026-09-20). 본문은 사용자가 검토한 개정안, 답변 언어는 사용자의 언어.
180
+ id: "user-centered-explanation",
179
181
  tier: "official",
180
182
  // uzys 자사 스킬 리포
181
- description: "Clear Korean communication \u2014 restate technical facts from the reader's position (impact and cause first, then evidence) instead of translation-ese; covers decisions, approval requests, and AS-IS/TO-BE contrasts",
183
+ description: "User-centered explanation \u2014 explain problems, changes, and choices as what the user does and sees (impact and cause first, then evidence), in the user's language; covers decisions, approval requests, and AS-IS/TO-BE contrasts of screens and flows",
182
184
  category: "workflow",
183
185
  source: "uzys",
184
186
  condition: { kind: "has-dev-track" },
185
- method: { kind: "internal", key: "clear-korean-communication" }
187
+ method: { kind: "internal", key: "user-centered-explanation" }
186
188
  },
187
189
  {
188
190
  id: "north-star",
@@ -311,7 +313,7 @@ var EXTERNAL_ASSETS = [
311
313
  {
312
314
  // 트랙과 무관한 글쓰기 규율이라 어느 트랙에서도 고를 수 있고, 어느 트랙에도 자동으로는
313
315
  // 안 깔린다(opt-in). 한국어로 쓰지 않는 사용자에게 기본 설치되면 그대로 낭비다.
314
- // clear-korean-communication 과의 경계: 저쪽은 **무엇을 어떤 형식으로 말할지**(설명·승인
316
+ // user-centered-explanation 과의 경계: 저쪽은 **무엇을 어떤 형식으로 말할지**(설명·승인
315
317
  // 요청의 구조)이고, 이쪽은 **한국어로 쓰는 행위 자체**(답변·글쓰기·번역·퇴고)의 표현이다.
316
318
  // #428 — 전신 `humanize-korean`(#355, 진단-우선 퇴고)을 개명·교체했다. 범위가 퇴고에서
317
319
  // 쓰기·번역까지로 넓어져 이름이 뜻과 어긋났다. 옛 id 로 깐 설치본은 `update` 가 손대지
@@ -624,7 +626,10 @@ var EXTERNAL_ASSETS = [
624
626
  // v26.78.0 — Understanding 으로 재분류: 웹 지각(screenshot·DOM). 영상/코드 지각과 같은 축.
625
627
  category: "understanding",
626
628
  source: "vercel-labs",
627
- condition: { kind: "any-track", tracks: DEV_TRACKS_WITH_STACK },
629
+ // #489 (사용자 결정 2026-09-20 a) 기본 체크에서 opt-in 으로. computer-use 가 같은 일을 하고,
630
+ // 셋 중 설치 비용이 가장 크다(npm devDep → 안 쓰는 프로젝트에 node_modules 만 남는다).
631
+ // 3단계에는 그대로 뜨되 체크 해제, `--with agent-browser` 로 켠다. 기존 설치본은 영향 없음.
632
+ condition: { kind: "opt-in" },
628
633
  method: { kind: "npm", pkg: "agent-browser", version: "0.31.0" }
629
634
  },
630
635
  // v26.78.0 — Understanding 신규 3종 (plugin, opt-in). 에이전트 인지 증강: 영상·코드 지각 + 메모리.
@@ -1031,7 +1036,7 @@ var EXTERNAL_ASSETS = [
1031
1036
  ];
1032
1037
  var DEV_METHOD_SKILL_IDS = [
1033
1038
  "compaction-handoff",
1034
- "clear-korean-communication",
1039
+ "user-centered-explanation",
1035
1040
  "audit-service-gaps",
1036
1041
  "multi-persona-review",
1037
1042
  "recurrence-prevention"
@@ -1049,8 +1054,10 @@ var INTERNAL_BUNDLED_SKILL_IDS = [
1049
1054
  ];
1050
1055
  var CONTINUOUS_SKILLS = [
1051
1056
  {
1052
- id: "clear-korean-communication",
1053
- whenToApply: "applies to every answer, report, and approval request \u2014 a decision is presented as AS-IS \u2192 TO-BE from the position of whoever lives with the result; not only at the moment approval is asked for"
1057
+ // #493 (#485 분리, 사용자 결정 2026-09-20) — 상주 한 줄의 문안은 사용자가 이슈에 적은 원칙이다:
1058
+ // 평소 설명부터 사용자 행동·결과를 먼저, 재설명·UX 전후·중요한 선택 정리는 스킬로.
1059
+ id: "user-centered-explanation",
1060
+ whenToApply: "when explaining a development problem, change, or choice to the user, explain what the user does and sees before internal implementation \u2014 in every answer and report, not only when approval is asked for; for a detailed re-explanation, a UX before/after comparison, or laying out an important decision, apply this skill"
1054
1061
  },
1055
1062
  {
1056
1063
  id: "model-orchestration",
@@ -1059,7 +1066,9 @@ var CONTINUOUS_SKILLS = [
1059
1066
  ];
1060
1067
  var RENAMED_SKILL_IDS = {
1061
1068
  "task-brief": "objective-brief",
1062
- "humanize-korean": "natural-korean"
1069
+ "humanize-korean": "natural-korean",
1070
+ // #485 (2026-09-20) — 새 이름은 `new-skills` 묶음(#480 ①)이 같은 update 에서 깐다.
1071
+ "clear-korean-communication": "user-centered-explanation"
1063
1072
  };
1064
1073
  var RETIRED_SKILL_IDS = [
1065
1074
  "strategic-compact",
@@ -2180,4 +2189,4 @@ export {
2180
2189
  CATEGORIES,
2181
2190
  CATEGORY_TITLES
2182
2191
  };
2183
- //# sourceMappingURL=chunk-SC6ORMHV.js.map
2192
+ //# sourceMappingURL=chunk-HHCNPPGS.js.map