@uzysjung/agent-harness 26.156.0 → 26.158.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
@@ -1,9 +1,9 @@
1
1
  # uzys-agent-harness
2
2
 
3
- 대화형 위저드 한 번으로, 검증된 AI 코딩 스킬·플러그인·룰·훅을 Claude Code, Codex, OpenCode, Antigravity 에 프로젝트 범위로 설치한다.
3
+ AI 코딩 도구에 꼭 필요한 룰·훅·스킬만 남기고 나머지는 걷어낸다. 위저드 한 번으로 스택에 맞게 검증된 묶음을 Claude Code · Codex · OpenCode · Antigravity 에 프로젝트 범위로 설치한다.
4
4
 
5
5
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
- [![Version](https://img.shields.io/github/v/tag/uzysjung/uzys-agent-harness?label=version)](https://github.com/uzysjung/uzys-agent-harness/releases)
6
+ [![Version](https://img.shields.io/github/v/tag/uzysjung/uzys-agent-harness?label=version)](https://github.com/uzysjung/uzys-agent-harness/tags)
7
7
  [![CI](https://github.com/uzysjung/uzys-agent-harness/actions/workflows/test.yml/badge.svg)](https://github.com/uzysjung/uzys-agent-harness/actions)
8
8
 
9
9
  ![agent-harness 데모 — 검증된 AI 코딩 스킬·플러그인 원커맨드 설치](https://raw.githubusercontent.com/uzysjung/uzys-agent-harness/main/docs/assets/agent-harness-demo.gif)
@@ -14,6 +14,8 @@
14
14
 
15
15
  ## 설치
16
16
 
17
+ Node 20 이상이 필요하다. Claude Code 플러그인을 쓸 거라면 `claude` 명령이 PATH 에 있어야 한다 — 없으면 플러그인 설치는 경고만 남기고 건너뛴다.
18
+
17
19
  ```bash
18
20
  npx -y @uzysjung/agent-harness
19
21
  ```
@@ -21,94 +23,110 @@ npx -y @uzysjung/agent-harness
21
23
  위저드가 6단계로 안내한다:
22
24
 
23
25
  ```
24
- 1/6 Tracks 스택 선택
25
- 2/6 CLI claude / codex / opencode / antigravity
26
- 3/6 Install items 미리 체크된 추천 항목 검토
27
- 4/6 Scope Project (기본값) 또는 Global
28
- 5/6 Confirm
26
+ 1/6 Tracks 무엇을 만드는지 고른다
27
+ 2/6 CLI claude / codex / opencode / antigravity — 여러 개 가능
28
+ 3/6 Install items 트랙에 맞는 항목이 미리 체크되어 있다. 원치 않는 것은 해제
29
+ 4/6 Scope Project(기본값) 또는 Global
30
+ 5/6 Confirm 요약과 함께, 이 선택이 매 세션에 얹는 컨텍스트 크기를 보여 준다
29
31
  6/6 Installing
30
32
  ```
31
33
 
32
- 설치가 끝나면 CLI 를 실행한다스킬·룰·훅이 활성 상태다:
34
+ 설치가 끝나면 프로젝트에서 CLI 를 연다룰과 스킬, 그리고 Claude Code 에서는 훅까지 바로 적용된다:
33
35
 
34
36
  ```bash
35
37
  claude # 또는 codex / opencode / agy
36
38
  ```
37
39
 
38
- **기본값은 project scope 다.** 4단계에서 Global 고르지 않는`~/.claude/`, `~/.codex/`, `~/.opencode/`, `~/.gemini/`, 글로벌 npm 에는 아무것도 쓰지 않는다.
40
+ **첫 세션에서 일.** 설치가 끝나면 *내 프로젝트* 이야기를 채울 빈칸이 있는 `CLAUDE.md`(또는 `AGENTS.md`)가 생긴다. 에이전트에게 `audit-harness-fit` 스킬을 돌리라고 하면 저장소를 읽고 빈칸을 근거로 채운다. 그 뒤로는 하네스가 이 프로젝트에 아직 맞는지 점검할 때 같은 스킬을 쓴다. "내 스택을 인터뷰해 주는" 단계는 따로 없다 — 스택은 1단계에서 이미 골랐고, 나머지는 이 스킬이 코드를 읽어 채운다.
39
41
 
40
- **기존 프로젝트에도 안전하다.** 내용이 다른 편집 가능 파일을 교체하기 전에 타임스탬프 백업을 옆에 만들고, 모든 백업 경로를 설치 요약에 출력한다. 삭제하는 것은 없다.
42
+ 위저드는 터미널이 필요하다. CI·컨테이너·온보딩 스크립트에서는 플래그 형식을 쓴다. 필수 플래그는 `install --track <name>` 하나다 [비대화형 설치](docs/USAGE.md#non-interactive-install) 참고.
41
43
 
42
- 위저드는 TTY 필요하다. CI·컨테이너·온보딩 스크립트용 flag 모드는 [사용 가이드](docs/USAGE.md#non-interactive-install)를 참고한다.
44
+ ### 설치 경로는 둘이다
43
45
 
44
- 설치 내역은 기록으로 남는다 나중에 확인하고, 갱신하고, 되돌릴 수 있다:
46
+ | 원하는 | 방법 |
47
+ |---|---|
48
+ | 하네스 전체 — 룰·훅·에이전트와 내 스택에 맞는 스킬을 트랙 단위로 | 위의 위저드 |
49
+ | 스킬 하나만 — 하네스도 트랙도 없이 | `npx skills add uzysjung/uzys-agent-harness --skill <id> -a claude-code` |
45
50
 
46
- ```bash
47
- npx -y @uzysjung/agent-harness list # 이 프로젝트에 깔린 것
48
- npx -y @uzysjung/agent-harness update # 현재 릴리즈로 갱신
49
- npx -y @uzysjung/agent-harness uninstall # 무엇을 뺄지 고른다
50
- ```
51
+ 이 저장소가 배포하는 모든 스킬은 [skills CLI](https://github.com/vercel-labs/skills) 로 하나씩 받을 수 있다. `npx skills add uzysjung/uzys-agent-harness --list` 로 id 목록을 본다. 설치 프로그램이 복사하는 것과 같은 파일(`references/` 포함)을 받고, 같은 명령을 다시 돌리면 갱신된다([자세히](docs/USAGE.md#one-skill-without-the-harness)). [skills.sh/uzysjung/uzys-agent-harness](https://skills.sh/uzysjung/uzys-agent-harness) 에도 올라가 있다.
51
52
 
52
- 터미널에서 `uninstall` 실행하면 항목별로 지울지 전부 지울지 묻는다. 안전하게 되돌릴 수 있는
53
- 것만 되돌리고, 글로벌 자산과 `.mcp.json` 같은 `.claude/` 밖 파일은 지우는 대신 경로를
54
- *출력한다* — 사용자 내용이 섞인 파일은 기계적으로 고치지 않는다. 설치 화면에서 체크를 풀어도
55
- 제거되지 않으며, 제거는 오직 이 명령에서만 일어난다. 자세한 내용은
56
- [uninstall](docs/USAGE.md#uninstall-v26640) 참고.
53
+ ## 철학 필요한 틀만 남겨 AI 개발 생산성을 높인다
57
54
 
58
- ##
55
+ AI 코딩 도구에 룰과 스킬을 쌓을수록 좋아지는 게 아니다. 항상 읽히는 지시문은 전부 매 세션의 비용이고, 최신 모델이 이미 잘하는 일을 지시하면 속도만 깎인다. 이 하네스는 반대 방향에서 출발한다 — **모델이 실수할 것 같은 곳에만 원칙을 두고, 모델이 좋아지면 그것도 걷어낸다.**
59
56
 
60
- 코딩 에이전트는 계속 발전하지만, 설치한 skill MCP실제 사용과 무관하게 세션 context window 점유한다. awesome-list 수백 개의 선택지가 있어도 기술 스택에 맞는 항목을 찾아주지는 않는다. 결국 전부 설치해 세션 불필요한 비용을 치르거나, 프로젝트를 시작할 때마다 직접 목록을 확인하고 골라야 한다.
57
+ - **"하지 마라 · 반드시 해라"는 최신 모델의 성능을 깎는다.** 금지문과 의무문이 쌓인 지시문은 모델이 판단할 자리를 없앤다. 상황이 지시문과 조금만 달라도 모델은 멈칫하거나 엉뚱하게 우회하고, 가드가 가드를 검사하기 시작하면 개발은 느려지는데 품질은 그대로다. 그래서 이 하네스는 지시를 "무엇이 참이어야 하는가"(완료 조건 · 불변식 · 경계)로 쓰고 "어떻게"모델에게 맡긴다. 금지문은 되돌릴 없는 손상 시크릿과 공유 이력 에만 남기고, 그것조차 문장이 아니라 장치가 막는다. `.env` 파일 편집은 훅이 막고, 기본 브랜치는 하네스가 적용을 도와주는 GitHub 룰셋이 지킨다. 방향은 취향이 아니라 실측에서 나왔다. 우리 룰 44문장 가운데 에이전트의 행동을 바꿨다고 관측된 것은 0건이었고, 사고를 실제로 잡은 것은 게이트·테스트·독립 리뷰어였다.
61
58
 
62
- 도구는 스택에서 출발한다. 원하는 track 고르면 해당 track 필요로 하는 자산이 미리 체크된다. 사용자는 설치를 진행하기 전에 선택된 자산을 검토하고 필요 없는 항목을 해제할 있다.
59
+ - **모델이 발전하면 스킬도 같이 개선된다.** 자산은 "이게 없으면 에이전트가 실제로 느리거나 틀린다"는 관측이 있을 때만 남는다. 근거가 없는 지시문은 상시 지시에서 빠져, 필요할 때만 불러오는 스킬이 되거나 아예 없어진다. 그래서 `update` 는 단순히 더 많은 것이 아니라 지금의 판단 — 무엇이 더해지고 무엇이 빠졌는가 — 을 가져온다.
63
60
 
64
- ## 무엇을 얻는가
61
+ - **`audit-harness-fit` 으로 계속 점검한다.** 설치 직후 한 번 돌리면 저장소를 읽어 프로젝트 맥락을 채운다. 나중에 돌리면 불필요한 질문, 반복되는 검사, 서로 모순되는 결정, 더 좋아진 모델에게는 필요 없는 절차를 찾아 수정안을 낸다. 하네스가 내 프로젝트에 맞는지는 설치할 때 정하는 게 아니라 쓰는 내내 묻는 질문이다.
65
62
 
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. 카탈로그의 나머지는 처음부터 끼어들지 않는다.
63
+ - **속도와 품질은 맞바꾸는 아니다.** 되돌릴 없는 손상은 훅이 막고, 반복되는 실수는 짧은 룰이 잡고, 나머지는 모델에게 맡긴다. 검증은 "매번 전부"가 아니다 사용자에게 보이는 장면 하나가 완성될 때, 코드를 쓰지 않은 다른 에이전트가 실제로 실행해 본다. 목표는 가드를 늘리는 아니라 중요한 것을 가장 가볍게 지키는 방법이다.
67
64
 
68
- - **규율 레이어.** 실제 프로덕션 프로젝트를 에이전트로 운영하며 추출한 룰·훅·방법론 스킬·CI 스캐폴드로 구성된다. 문서 거버넌스와 검증 게이트, 작업 브리프 정규화, 재발 방지 체계를 아우르며, 특히 스킬 14종은 마켓플레이스에 의존하지 않고 저장소에서 직접 쓰고 관리한다. 그중 13종은 id 로 지정할 있다(`--with`/`--without`). 이 레이어 덕분에 단순한 skill 모음을 넘어선 하네스로 작동한다.
65
+ - **만드는 서비스의 고객 관점에서 생각하고 설명한다.** 에이전트는 문제·변경·선택지를 파일명과 함수가 아니라 "사용자가 무엇을 하고 무엇을 보게 되는가"로 먼저 말한다(`user-centered-explanation`). 승인이 필요한 순간은 맥락 문제 선택지 추천 순서로 정리되어, 앞의 대화를 다시 읽지 않아도 결정할있다.
69
66
 
70
- - **4개 CLI, 하나의 어휘.** 1급 지원 대상인 Claude Code 에는 모든 자산·훅·plugin 적용하고, Codex, OpenCode, Antigravity 에는 skill rule 레이어를 적용한다. 프로젝트가 특정 CLI 에 묶이지 않는다.
67
+ 다섯이 방향이고, 자산을 넣고 때의 질문은 하나다 **이게 사람이 AI 코딩 도구로 개발을 잘하게 만드는가.** 전문은 [docs/NORTH_STAR.md](docs/NORTH_STAR.md).
71
68
 
72
- ## 검증
69
+ ## 무엇을 얻는가
73
70
 
74
- vetted 등급의 조건은 GitHub star 1,000개 이상, 활발한 유지보수, 격리된 Docker 컨테이너에서의 실설치 검증 통과 가지다. 매월 CI cron 기준을 다시 검사한다.
71
+ - **룰** git 정책 · 변경 관리 · 문서 · 테스트 · 출하 · CLI 개발에 관한 짧은 파일 6개. 개발 트랙은 5개, `tooling` 과 `full` 은 여섯째까지, 비즈니스 트랙은 어느 프로젝트에나 해당하는 3개를 받는다.
72
+ - **훅** — Claude Code 에 2개. 하나는 세션 시작 때 스펙과 변경 이력을 읽어 오고, 하나는 `.env` · lock 파일 · 인증서 편집을 막는다. 이 둘째 훅이 하네스에서 유일하게 "안 된다"고 말하는 것이고, 막을 때마다 로그에 한 줄을 남긴다. Codex 는 세션 시작 훅만 받는다 — Codex 의 훅 API 는 파일 편집을 가로채지 못한다.
73
+ - **스킬** — 이 리포에서 직접 쓰고 관리하는 방법론 스킬과, 트랙이 부르는 스택 스킬. 4종은 모든 트랙에 포함된다(`north-star` · `objective-brief` · `gh-issue-workflow` · `audit-harness-fit`). 개발 트랙은 방법론 스킬 5종과 사고 대응 런북 하나를 더 받고, 스택이 있는 트랙에는 `find-skills` · `frontend-design` 과 스택별 스킬(예: `csr-supabase` 면 React · shadcn · Supabase · Postgres)이 설치된다. 번들 스킬 13종은 `--with` / `--without` 으로 이름을 지정할 수 있다.
74
+ - **에이전트** — 모든 트랙에 독립 `reviewer`, 개발 트랙에 `implementer`, `data-analyst` 와 `strategist` 는 그것을 쓰는 트랙에만.
75
+ - **작업 원칙 앵커** — CLI 가 매 세션 읽는 파일 하나. 내 `CLAUDE.md` 는 내 것으로 남고, 하네스는 import 한 줄만 얹고 나머지는 건드리지 않는다. 어느 파일이 누구 것인지: [docs/CONTEXT-FILES.md](docs/CONTEXT-FILES.md).
75
76
 
76
- 단, vetted 라인 단위 보안 감사나 prompt-injection 스캔을 거쳤다는 뜻은 아니다. npm 과 npx 자산은 버전을 고정하지만, plugin 과 skill 자산은 upstream HEAD 를 참조하므로 아직 commit 을 고정하지 않는다. 설치하는 모든 자산은 일반적인 서드파티 의존성과 똑같이 취급할 것 — [SECURITY.md](SECURITY.md) 참고.
77
+ CLI 별로 도달하는 것:
77
78
 
78
- 모든 자산은 3단계 등급 배지 하나를 단다. Anthropic 공식 마켓플레이스와 하네스 자체 자산은 **★ official**, 검증을 통과한 자산은 **vetted**, GitHub star 1,000개 미만이라 opt-in 이 필요한 자산은 **⚠ experimental**. 등급은 정보를 줄 뿐, 설치를 막지 않는다.
79
+ | CLI | | 스킬 | | 플러그인 |
80
+ |---|---|---|---|---|
81
+ | Claude Code | ✓ | ✓ | ✓ | ✓ |
82
+ | Codex | ✓ (`AGENTS.md` 안에) | ✓ | 세션 시작만 | — |
83
+ | OpenCode | ✓ (`AGENTS.md` 안에) | ✓ | — | — |
84
+ | Antigravity | ✓ | ✓ | — | — |
79
85
 
80
- ## Tracks
86
+ 플러그인은 Claude Code 자체 메커니즘이라 Claude 전용이다. 스킬과 룰은 같은 원본에서 네 CLI 에 맞게 변환되므로 서로 어긋날 일이 없다.
81
87
 
82
- 무엇을 만드느냐에 따라 11개 track 으로 나눈다:
88
+ ## 트랙
83
89
 
84
- - **스택 미정** `base` (원칙·방법론·테스트 스킬만, 스택 전용 자산 없음)
90
+ 무엇을 만드느냐에 따라 12개 트랙으로 나눈다:
91
+
92
+ - **스택 미정** — `base`: 원칙 · 방법론 스킬 · 테스트 룰만, 스택 전용 자산 없음
85
93
  - **프론트엔드 + 백엔드** — `csr-supabase` · `csr-fastify` · `csr-fastapi` · `ssr-nextjs` · `ssr-htmx`
86
94
  - **데이터** — `data`
87
95
  - **비즈니스** — `executive` · `project-management` · `growth-marketing`
88
- - **메타** — `tooling` (앱 스택 없는 Bash·Markdown 프로젝트)
96
+ - **메타** — `tooling`: 앱 스택 없는 Bash · Markdown 프로젝트
89
97
  - **전체** — `full`
90
98
 
91
- ### [각 track 무엇을 설치하는지 보기 →](docs/TRACKS.md)
99
+ 트랙은 출발점이지 고정이 아니다. 미리 체크된 것은 3단계에서 전부 해제할 수 있고, 트랙을 여러 개 골라도 된다. [각 트랙이 무엇을 설치하는지 →](docs/TRACKS.md)
92
100
 
93
- ## 문서
101
+ ## 일상 명령
94
102
 
95
- ### [사용 가이드 →](docs/USAGE.md)
103
+ ```bash
104
+ npx -y @uzysjung/agent-harness list # 이 프로젝트에 무엇이 깔렸나
105
+ npx -y @uzysjung/agent-harness update # 현재 릴리즈로 갱신
106
+ npx -y @uzysjung/agent-harness uninstall # 골라서 제거하거나 전부 제거
107
+ ```
96
108
 
97
- 워크플로 상세부터 설치 내부 동작, uninstall, scope, CI flag, CLI 설정까지 다룬다.
109
+ `update` 하네스가 설치한 파일을 갱신하고, 릴리즈에 추가된 스킬을 함께 설치하며, 재설치가 필요한 것(새 훅)은 그렇다고 알려 준다. 고르지 않은 CLI 설치하는 일은 없다. `update --only skills` 처럼 한 묶음만 갱신할 수 있다. `uninstall` 은 터미널에서 항목별로 묻고, `--dry-run` 으로 계획만 먼저 볼 수 있다.
98
110
 
99
- ### [호환성 매트릭스 ](docs/COMPATIBILITY.md)
111
+ **기존 프로젝트에도 안전하다.** 내가 고친 파일을 교체하기 전에 옆에 타임스탬프 백업을 만들고 경로를 출력한다. 내가 쓰거나 고친 것은 백업 없이 지우지 않는다. 기존 `.mcp.json` 서버는 교체가 아니라 병합된다. 자세한 내용: [기존 프로젝트에 설치하기](docs/USAGE.md#installing-into-an-existing-project).
100
112
 
101
- 자산별 설치 방식과 검증 상태를 정리했다.
113
+ **기본값은 프로젝트 범위다.** 4단계에서 Global 을 고르지 않는 한 `~/.codex/` · `~/.opencode/` · `~/.gemini/` · 전역 npm 에는 아무것도 쓰지 않는다. 예외는 Claude Code 플러그인 하나다 — `claude` CLI 는 어느 범위에서든 플러그인 캐시를 `~/.claude/plugins/` 아래 두고 프로젝트는 메타데이터로 구분한다. `.claude/` 밖에는 `.mcp.json`, `.gitignore` 몇 줄(그 파일이 있을 때), Supabase 트랙이면 `.env.example`, 그리고 설치 기록 `.uzys-agent-harness/` 쓴다 — 전체 목록은 [하네스가 쓰는 파일](docs/USAGE.md#what-the-harness-writes).
102
114
 
103
- ### [트랙 목록 →](docs/TRACKS.md)
115
+ ## 검증
104
116
 
105
- track미리 체크하는 자산 전체를 보여준다.
117
+ 외부 자산은 GitHub star 1,000개 이상, 보관(archived) 처리되지 않음, 설치 명령을 격리 환경에서 실제로 실행해 확인함 — 셋을 만족할 때 **vetted** 다. 매월 CI 두 개가 star 와 설치 경로를 다시 검사한다. vetted 는 라인 단위 보안 감사가 **아니고**, 자산 내용의 prompt injection 스캔도 하지 않는다. npm · npx 자산은 버전을 고정하고, plugin · skill 자산은 upstream HEAD 를 따른다.
106
118
 
107
- ### [보안 안내 ](SECURITY.md)
119
+ 3단계에서 `★ official` 은 Anthropic 공식 마켓플레이스와 이 하네스 자체 자산, `⚠ experimental` 은 star 1,000 미만 자산이다 — 미리 체크되지 않으며 직접 골라야만 설치된다. vetted 자산은 배지가 없다. 등급은 정보를 줄 뿐 설치를 막지 않는다. 설치한 자산은 다른 서드파티 의존성과 똑같이 다룬다: [SECURITY.md](SECURITY.md).
108
120
 
109
- 검증이 보장하는 것과 하지 않는 것, 그리고 제보 방법을 안내한다.
121
+ ## 문서
110
122
 
111
- 설치 가능한 워크플로 비교는 [docs/WORKFLOWS.md](docs/WORKFLOWS.md), 설계 원칙은 [docs/NORTH_STAR.md](docs/NORTH_STAR.md), 아키텍처 결정은 [docs/decisions/](docs/decisions/) 있다.
123
+ - [사용 가이드](docs/USAGE.md) 설치 플래그 · 범위 · update · uninstall · CLI 별 상세 · 어디에 무엇을 쓰는가
124
+ - [트랙](docs/TRACKS.md) — 트랙별로 미리 체크되는 것
125
+ - [호환성 매트릭스](docs/COMPATIBILITY.md) — 자산 전체의 설치 방식 · 지원 CLI · 검증 방법
126
+ - [어느 파일이 누구 것인가](docs/CONTEXT-FILES.md) — `CLAUDE.md` · 앵커 · `AGENTS.md` 와 나머지 컨텍스트 파일
127
+ - [워크플로 가이드](docs/WORKFLOWS.md) — 선택 설치 워크플로 비교와, 그게 필요 없는 경우
128
+ - [보안](SECURITY.md) — 검증이 보장하는 것과 아닌 것, 제보 방법
129
+ - [북극성](docs/NORTH_STAR.md) · [결정 기록](docs/decisions/) — 하네스가 왜 이런 모양인가
112
130
 
113
131
  ## License
114
132
 
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # uzys-agent-harness
2
2
 
3
- Install vetted AI-coding skills, plugins, rules, and hooks for Claude Code, Codex, OpenCode, and Antigravity — one interactive wizard, scoped to your project.
3
+ Give your AI coding tool the few rules, hooks, and skills it actually needs — and nothing it doesn't. One wizard installs a vetted set for your stack into Claude Code, Codex, OpenCode, or Antigravity, scoped to your project.
4
4
 
5
5
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
- [![Version](https://img.shields.io/github/v/tag/uzysjung/uzys-agent-harness?label=version)](https://github.com/uzysjung/uzys-agent-harness/releases)
6
+ [![Version](https://img.shields.io/github/v/tag/uzysjung/uzys-agent-harness?label=version)](https://github.com/uzysjung/uzys-agent-harness/tags)
7
7
  [![CI](https://github.com/uzysjung/uzys-agent-harness/actions/workflows/test.yml/badge.svg)](https://github.com/uzysjung/uzys-agent-harness/actions)
8
8
 
9
9
  ![agent-harness demo — one-command install of vetted AI-coding skills & plugins](https://raw.githubusercontent.com/uzysjung/uzys-agent-harness/main/docs/assets/agent-harness-demo.gif)
@@ -14,99 +14,119 @@ Install vetted AI-coding skills, plugins, rules, and hooks for Claude Code, Code
14
14
 
15
15
  ## Install
16
16
 
17
+ You need Node 20 or newer. If you plan to use Claude Code plugins, the `claude` command must be on your PATH; otherwise plugin assets are skipped with a warning.
18
+
17
19
  ```bash
18
20
  npx -y @uzysjung/agent-harness
19
21
  ```
20
22
 
21
- The wizard walks through six steps:
23
+ The wizard walks you through six steps:
22
24
 
23
25
  ```
24
- 1/6 Tracks pick your stack
25
- 2/6 CLI claude / codex / opencode / antigravity
26
- 3/6 Install items review pre-checked recommendations
26
+ 1/6 Tracks pick what you are building
27
+ 2/6 CLI claude / codex / opencode / antigravity — one or more
28
+ 3/6 Install items everything is pre-checked for your track; uncheck what you don't want
27
29
  4/6 Scope Project (default) or Global
28
- 5/6 Confirm
30
+ 5/6 Confirm summary, plus how much context your selection adds to each session
29
31
  6/6 Installing
30
32
  ```
31
33
 
32
- Then start your CLI — skills, rules, and hooks are active:
34
+ Then open your CLI in the project the rules and skills are live, and on Claude Code the hooks too:
33
35
 
34
36
  ```bash
35
37
  claude # or codex / opencode / agy
36
38
  ```
37
39
 
38
- **Project scope is the default.** Nothing is written to `~/.claude/`, `~/.codex/`, `~/.opencode/`, `~/.gemini/`, or global npm unless you pick Global at step 4.
40
+ **Your first session.** The install leaves a `CLAUDE.md` (or `AGENTS.md`) with fill-in sections about *your* project. Ask your agent to run the `audit-harness-fit` skill once. It reads the repository and fills those sections from evidence, and you run it again later to check whether the harness still fits the project. There is no "interview me about my stack" step — you already chose the stack at step 1, and the audit fills the rest from the code.
39
41
 
40
- **Safe on an existing project.** Before replacing an editable file whose contents differ, the installer writes a timestamped backup next to it and prints every backup path in the summary. Nothing is deleted.
42
+ The wizard needs a terminal. For CI, containers, or onboarding scripts, use the flag form: `install --track <name>` is the only required flag see [non-interactive install](docs/USAGE.md#non-interactive-install).
41
43
 
42
- The wizard needs a TTY. For CI, containers, or onboarding scripts there is a flag-based mode — see the [usage guide](docs/USAGE.md#non-interactive-install).
44
+ ### Two ways to install
43
45
 
44
- What it installed is recorded, so you can review it and take it back out:
46
+ | You want… | Do this |
47
+ |---|---|
48
+ | The harness — rules, hooks, agents, and the skills your stack calls for, curated by track | The wizard above |
49
+ | One skill, nothing else — no harness, no track | `npx skills add uzysjung/uzys-agent-harness --skill <id> -a claude-code` |
45
50
 
46
- ```bash
47
- npx -y @uzysjung/agent-harness list # what this project got
48
- npx -y @uzysjung/agent-harness update # refresh it to the current release
49
- npx -y @uzysjung/agent-harness uninstall # pick what to remove
50
- ```
51
+ Every skill this repo ships is installable on its own with the [skills CLI](https://github.com/vercel-labs/skills); `npx skills add uzysjung/uzys-agent-harness --list` shows the ids. You get the same files the installer copies, `references/` included. Re-run the command to refresh ([details](docs/USAGE.md#one-skill-without-the-harness)). They are listed on [skills.sh/uzysjung/uzys-agent-harness](https://skills.sh/uzysjung/uzys-agent-harness) as well.
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
+ ## Philosophykeep only the frame the model needs
53
54
 
54
- ## Why
55
+ Piling rules and skills onto an AI coding tool does not make it better. Every instruction that is always loaded costs context in every session, and telling a frontier model how to do something it already does well only slows it down. This harness starts from the opposite end: **keep a principle only where the model is likely to slip, and take it back out as models improve.**
55
56
 
56
- 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.
57
+ - **"Don't do X" and "always do Y" degrade today's models.** A pile of prohibitions and mandates removes the model's room to judge. The moment a situation differs slightly from the rule, the model gets stuck or works around it. Once guards start guarding other guards, development slows down while quality stays flat. So the harness writes guidance as *what must be true* — the outcome, the invariant, the boundary — and leaves *how* to the model. Prohibitions are kept for irreversible damage secrets and shared history — and even those are enforced by a mechanism rather than a sentence: a hook blocks edits to `.env` and key files, and a GitHub ruleset the harness helps you apply protects the default branch. This direction came from measurement, not taste: of the 44 sentences in our own rules, the number observed to change an agent's behaviour was zero. What actually caught incidents was gates, tests, and an independent reviewer.
57
58
 
58
- This tool starts from the stack instead. You pick a track, and it pre-checks the assets that track calls foryou review and uncheck before anything installs.
59
+ - **Skills improve as models improve.** Each asset is kept only when there is an observation behind it: "without this, the agent is measurably slower or wrong." Guidance without that evidence is removed from the always-loaded set — it becomes a skill that loads only when needed, or it is retired. So `update` brings you the current judgement what was added, and what was cut — not just more.
59
60
 
60
- ## What you get
61
+ - **`audit-harness-fit` keeps checking.** Run once after install and it fills your project context from the repository. Run later and it finds needless questions, repeated checks, decisions that contradict each other, and procedures that a better model no longer needs — then proposes the edit. Whether the harness fits your project is a question you keep asking, not one you settle at install time.
61
62
 
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.
63
+ - **Speed and quality are not a trade-off.** Irreversible damage is blocked by a hook, repeated mistakes are caught by a short rule, and everything else is left to the model. Verification is not "everything, every time": it runs when a user-facing scene is complete, by a separate agent that did not write the code and actually executes it. The goal is the lightest protection that reliably keeps what matters, not more guards.
63
64
 
64
- - **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
+ - **Think and explain from the customer's side of the service you are building.** The agent describes a problem, a change, or a choice first as what the user does and sees, not as file names and functions (`user-centered-explanation`). When a decision needs your approval, it arrives as context problem options recommendation, so you can decide without re-reading the conversation.
65
66
 
66
- - **Four CLIs, one vocabulary.** Claude Code is first classall assets, hooks, and plugins. Codex, OpenCode, and Antigravity get the skills and rules layer. Your project is not locked to one CLI.
67
+ Those five are the direction, and the first question for any assetin or out is *does this help a person build better with an AI coding tool?* The long form is [docs/NORTH_STAR.md](docs/NORTH_STAR.md).
67
68
 
68
- ## Vetting
69
+ ## What you get
69
70
 
70
- An asset is **vetted** when it has at least 1,000 GitHub stars, shows active maintenance, and passes an install-verification run in an isolated Docker container. A CI cron re-checks all three monthly.
71
+ - **Rules** six short files on git policy, change management, documentation, testing, shipping, and CLI development. Dev tracks get five; `tooling` and `full` add the sixth; business tracks get the three that apply to any project.
72
+ - **Hooks** — two, on Claude Code: one loads your spec and change log at session start, one blocks edits to `.env`, lock files, and certificates. That second hook is the only thing in the harness that says "no", and it writes one line to a log every time it does. Codex gets the session-start hook only; its hook API cannot intercept file edits.
73
+ - **Skills** — the harness's own method skills, written and maintained in this repo, plus the stack skills your track calls for. Four go to every track (`north-star`, `objective-brief`, `gh-issue-workflow`, `audit-harness-fit`); dev tracks add five method skills and an incident runbook; stack tracks add `find-skills`, `frontend-design`, and whatever your stack needs (React, shadcn, Supabase, Postgres on `csr-supabase`, for example). Thirteen of the bundled skills can be named directly with `--with` / `--without`.
74
+ - **Agents** — an independent `reviewer` on every track; `implementer` on dev tracks; `data-analyst` and `strategist` only on the tracks that use them.
75
+ - **A working-principles anchor** — one file your CLI reads every session. Your own `CLAUDE.md` stays yours; the harness adds one import line and never touches the rest. Which file is whose: [docs/CONTEXT-FILES.md](docs/CONTEXT-FILES.md).
71
76
 
72
- Vetting is **not** a line-by-line security audit, and it does not scan asset contents for prompt injection. npm and npx assets are version-pinned; plugin and skill assets resolve to upstream HEAD and are not commit-pinned yet.
77
+ What reaches which CLI:
73
78
 
74
- Treat installed assets like any other third-party dependency see [SECURITY.md](SECURITY.md).
79
+ | CLI | Rules | Skills | Hooks | Plugins |
80
+ |---|---|---|---|---|
81
+ | Claude Code | ✓ | ✓ | ✓ | ✓ |
82
+ | Codex | ✓ (in `AGENTS.md`) | ✓ | session start only | — |
83
+ | OpenCode | ✓ (in `AGENTS.md`) | ✓ | — | — |
84
+ | Antigravity | ✓ | ✓ | — | — |
75
85
 
76
- Every asset carries its tier as a badge at step 3: **★ official** (Anthropic-official marketplaces and this harness's own assets), **vetted**, or **⚠ experimental** (under 1,000 stars, opt-in only). Tiers inform; they never block.
86
+ Plugins are Claude Code's own mechanism, so they are Claude-only; skills and rules render for all four from the same source, so they stay consistent across tools.
77
87
 
78
88
  ## Tracks
79
89
 
80
- Eleven tracks, grouped by what you're building:
90
+ Twelve tracks, grouped by what you are building:
81
91
 
82
- - **No stack yet** — `base` (principles, method skills, tests; nothing stack-specific)
92
+ - **No stack yet** — `base`: principles, method skills, and testing rules; nothing stack-specific
83
93
  - **Frontend + backend** — `csr-supabase` · `csr-fastify` · `csr-fastapi` · `ssr-nextjs` · `ssr-htmx`
84
94
  - **Data** — `data`
85
95
  - **Business** — `executive` · `project-management` · `growth-marketing`
86
- - **Meta** — `tooling` (Bash and Markdown projects with no app stack)
96
+ - **Meta** — `tooling`: Bash and Markdown projects with no app stack
87
97
  - **Everything** — `full`
88
98
 
89
- ### [See what each track installs →](docs/TRACKS.md)
99
+ A track is a starting point, not a lock-in: everything it pre-checks can be unchecked at step 3, and you can pick more than one. [What each track installs →](docs/TRACKS.md)
90
100
 
91
- ## Docs
101
+ ## Day to day
92
102
 
93
- ### [Read the usage guide →](docs/USAGE.md)
103
+ ```bash
104
+ npx -y @uzysjung/agent-harness list # what this project got
105
+ npx -y @uzysjung/agent-harness update # bring it to the current release
106
+ npx -y @uzysjung/agent-harness uninstall # pick what to remove, or remove everything
107
+ ```
94
108
 
95
- Workflow detail, install internals, uninstall, scope, CI flags, and per-CLI setup.
109
+ `update` refreshes the files the harness installed, adds skills a newer release introduced, and tells you when something (a new hook) needs a reinstall instead. It never installs a CLI you did not choose. `update --only skills` limits it to one group. `uninstall` asks item by item in a terminal; `--dry-run` shows the plan first.
96
110
 
97
- ### [Check the compatibility matrix ](docs/COMPATIBILITY.md)
111
+ **Safe on an existing project.** Before replacing a file you edited, the harness writes a timestamped backup next to it and prints the path. Nothing you wrote or edited is deleted without a backup beside it. Your existing `.mcp.json` servers are merged, not replaced. Details: [installing into an existing project](docs/USAGE.md#installing-into-an-existing-project).
98
112
 
99
- Per-asset install method and verification status.
113
+ **Project scope is the default.** Nothing goes to `~/.codex/`, `~/.opencode/`, `~/.gemini/`, or global npm unless you choose Global at step 4. Claude Code plugins are the one exception: the `claude` CLI keeps its plugin cache under `~/.claude/plugins/` in either scope and isolates projects by metadata. Besides `.claude/`, install writes `.mcp.json`, a few `.gitignore` lines (when that file exists), an `.env.example` on Supabase tracks, and its own record at `.uzys-agent-harness/` — the full list is in [what the harness writes](docs/USAGE.md#what-the-harness-writes).
100
114
 
101
- ### [Browse the tracks →](docs/TRACKS.md)
115
+ ## Vetting
102
116
 
103
- What each track pre-checks, asset by asset.
117
+ An external asset is **vetted** when it has at least 1,000 GitHub stars, is not archived, and its install command has been run and checked in an isolated environment. Two monthly CI jobs re-check the stars and the install path. Vetting is **not** a line-by-line security audit and does not scan asset contents for prompt injection. npm and npx assets are pinned to a version; plugin and skill assets resolve to upstream HEAD.
104
118
 
105
- ### [Read the security notes ](SECURITY.md)
119
+ At step 3, `★ official` marks Anthropic-official marketplaces and this harness's own assets, `⚠ experimental` marks assets under 1,000 stars — never pre-checked, added only by you. Vetted assets carry no badge. Tiers inform; they never block. Treat installed assets like any other third-party dependency: [SECURITY.md](SECURITY.md).
106
120
 
107
- What vetting covers, what it doesn't, and how to report an issue.
121
+ ## Docs
108
122
 
109
- Workflow bundles are compared in [docs/WORKFLOWS.md](docs/WORKFLOWS.md); design principles live in [docs/NORTH_STAR.md](docs/NORTH_STAR.md); architecture decisions in [docs/decisions/](docs/decisions/).
123
+ - [Usage guide](docs/USAGE.md) install flags, scope, update, uninstall, per-CLI details, what gets written where
124
+ - [Tracks](docs/TRACKS.md) — what each track pre-checks
125
+ - [Compatibility matrix](docs/COMPATIBILITY.md) — every asset, its install method, which CLIs it reaches, and how it was verified
126
+ - [Which file is whose](docs/CONTEXT-FILES.md) — `CLAUDE.md`, the anchor, `AGENTS.md`, and the other context files
127
+ - [Workflow guide](docs/WORKFLOWS.md) — the opt-in workflow bundles compared, and when you don't need one
128
+ - [Security](SECURITY.md) — what vetting covers, what it doesn't, how to report
129
+ - [North Star](docs/NORTH_STAR.md) · [decisions](docs/decisions/) — why the harness is shaped this way
110
130
 
111
131
  ## License
112
132
 
@@ -626,7 +626,10 @@ var EXTERNAL_ASSETS = [
626
626
  // v26.78.0 — Understanding 으로 재분류: 웹 지각(screenshot·DOM). 영상/코드 지각과 같은 축.
627
627
  category: "understanding",
628
628
  source: "vercel-labs",
629
- 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" },
630
633
  method: { kind: "npm", pkg: "agent-browser", version: "0.31.0" }
631
634
  },
632
635
  // v26.78.0 — Understanding 신규 3종 (plugin, opt-in). 에이전트 인지 증강: 영상·코드 지각 + 메모리.
@@ -2186,4 +2189,4 @@ export {
2186
2189
  CATEGORIES,
2187
2190
  CATEGORY_TITLES
2188
2191
  };
2189
- //# sourceMappingURL=chunk-PPJUFG53.js.map
2192
+ //# sourceMappingURL=chunk-HHCNPPGS.js.map