monol-plugin-scout 2.1.3 → 4.1.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/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +244 -0
- package/monol-plugin-scout-pkg/CLAUDE.md +125 -8
- package/monol-plugin-scout-pkg/api/mock/categories.json +81 -0
- package/monol-plugin-scout-pkg/api/mock/insights.json +111 -0
- package/monol-plugin-scout-pkg/api/mock/marketplace.json +501 -0
- package/monol-plugin-scout-pkg/api/mock/trending.json +96 -0
- package/monol-plugin-scout-pkg/commands/console.md +79 -0
- package/monol-plugin-scout-pkg/commands/frequency.md +32 -0
- package/monol-plugin-scout-pkg/commands/install.md +32 -0
- package/monol-plugin-scout-pkg/commands/priority.md +30 -0
- package/monol-plugin-scout-pkg/commands/quiet.md +32 -0
- package/monol-plugin-scout-pkg/commands/schedule.md +32 -0
- package/monol-plugin-scout-pkg/commands/scout.md +8 -5
- package/monol-plugin-scout-pkg/commands/skills.md +160 -0
- package/monol-plugin-scout-pkg/commands/team.md +32 -0
- package/monol-plugin-scout-pkg/commands/timing.md +32 -0
- package/monol-plugin-scout-pkg/commands/trust.md +85 -0
- package/monol-plugin-scout-pkg/commands/trusted-install.md +98 -0
- package/monol-plugin-scout-pkg/commands/uninstall.md +31 -0
- package/monol-plugin-scout-pkg/config.yaml +57 -0
- package/monol-plugin-scout-pkg/data/.cache/676d5ab664292155e5f509c69d4edae1 +10 -0
- package/monol-plugin-scout-pkg/data/.session +8 -0
- package/monol-plugin-scout-pkg/data/analytics.json +102 -0
- package/monol-plugin-scout-pkg/data/history.json +67 -11
- package/monol-plugin-scout-pkg/data/logs/scout.log +1 -0
- package/monol-plugin-scout-pkg/data/schedules.json +17 -0
- package/monol-plugin-scout-pkg/data/team.json +53 -0
- package/monol-plugin-scout-pkg/data/usage.json +100 -7
- package/monol-plugin-scout-pkg/docs/ARCHITECTURE.md +201 -0
- package/monol-plugin-scout-pkg/hooks/generate-insights.sh +102 -0
- package/monol-plugin-scout-pkg/hooks/hooks.json +36 -1
- package/monol-plugin-scout-pkg/hooks/on-session-end.sh +136 -0
- package/monol-plugin-scout-pkg/hooks/on-session-start.sh +43 -0
- package/monol-plugin-scout-pkg/hooks/on-stop.md +79 -0
- package/monol-plugin-scout-pkg/hooks/open-console.sh +111 -0
- package/monol-plugin-scout-pkg/hooks/open-dashboard.sh +61 -0
- package/monol-plugin-scout-pkg/hooks/track-usage.sh +59 -0
- package/monol-plugin-scout-pkg/lib/ai-recommender.sh +505 -0
- package/monol-plugin-scout-pkg/lib/cache.sh +194 -0
- package/monol-plugin-scout-pkg/lib/data-validator.sh +360 -0
- package/monol-plugin-scout-pkg/lib/error-handler.sh +296 -0
- package/monol-plugin-scout-pkg/lib/logger.sh +263 -0
- package/monol-plugin-scout-pkg/lib/plugin-manager.sh +239 -0
- package/monol-plugin-scout-pkg/lib/priority-scorer.sh +262 -0
- package/monol-plugin-scout-pkg/lib/profile-learner.sh +339 -0
- package/monol-plugin-scout-pkg/lib/project-analyzer.sh +281 -0
- package/monol-plugin-scout-pkg/lib/recommendation-controller.sh +290 -0
- package/monol-plugin-scout-pkg/lib/rejection-learner.sh +232 -0
- package/monol-plugin-scout-pkg/lib/scheduler.sh +275 -0
- package/monol-plugin-scout-pkg/lib/skill-scout.sh +729 -0
- package/monol-plugin-scout-pkg/lib/sync.sh +221 -0
- package/monol-plugin-scout-pkg/lib/team-learner.sh +450 -0
- package/monol-plugin-scout-pkg/lib/team-manager.sh +369 -0
- package/monol-plugin-scout-pkg/lib/trend-learner.sh +428 -0
- package/monol-plugin-scout-pkg/lib/trust-manager.sh +261 -0
- package/monol-plugin-scout-pkg/lib/trusted-installer.sh +738 -0
- package/monol-plugin-scout-pkg/plugin.json +3 -2
- package/monol-plugin-scout-pkg/skills/audit.md +6 -0
- package/monol-plugin-scout-pkg/skills/cleanup.md +6 -0
- package/monol-plugin-scout-pkg/skills/compare.md +6 -0
- package/monol-plugin-scout-pkg/skills/console.md +315 -0
- package/monol-plugin-scout-pkg/skills/explore.md +6 -0
- package/monol-plugin-scout-pkg/skills/fork.md +6 -0
- package/monol-plugin-scout-pkg/skills/frequency.md +93 -0
- package/monol-plugin-scout-pkg/skills/install.md +127 -0
- package/monol-plugin-scout-pkg/skills/priority.md +77 -0
- package/monol-plugin-scout-pkg/skills/quiet.md +73 -0
- package/monol-plugin-scout-pkg/skills/schedule.md +95 -0
- package/monol-plugin-scout-pkg/skills/scout.md +27 -17
- package/monol-plugin-scout-pkg/skills/skills.md +230 -0
- package/monol-plugin-scout-pkg/skills/team.md +117 -0
- package/monol-plugin-scout-pkg/skills/timing.md +97 -0
- package/monol-plugin-scout-pkg/skills/trust.md +120 -0
- package/monol-plugin-scout-pkg/skills/trusted-install.md +264 -0
- package/monol-plugin-scout-pkg/skills/uninstall.md +100 -0
- package/monol-plugin-scout-pkg/web/components/activity-chart.js +208 -0
- package/monol-plugin-scout-pkg/web/components/index.js +27 -0
- package/monol-plugin-scout-pkg/web/components/insight-card.js +365 -0
- package/monol-plugin-scout-pkg/web/components/overview.js +154 -0
- package/monol-plugin-scout-pkg/web/components/plugin-list.js +242 -0
- package/monol-plugin-scout-pkg/web/components/stats-card.js +126 -0
- package/monol-plugin-scout-pkg/web/components/team-list.js +346 -0
- package/monol-plugin-scout-pkg/web/console.html +2098 -0
- package/monol-plugin-scout-pkg/web/dashboard.html +2106 -0
- package/monol-plugin-scout-pkg/web/manifest.json +29 -0
- package/package.json +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 우선순위 분석 - 플러그인 점수 상세 분석 (한글: 우선순위, 점수, 분석)
|
|
3
|
+
argument-hint: "<plugin-name>"
|
|
4
|
+
allowed-tools: [Read, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /scout priority - 우선순위 분석
|
|
8
|
+
|
|
9
|
+
플러그인의 종합 점수와 상세 분석을 제공합니다.
|
|
10
|
+
|
|
11
|
+
## 사용법
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/scout priority <plugin> # 플러그인 점수 분석
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/priority-scorer.sh breakdown "$ARGUMENTS"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 점수 구성
|
|
26
|
+
|
|
27
|
+
| 요소 | 가중치 | 설명 |
|
|
28
|
+
|------|--------|------|
|
|
29
|
+
| 프로젝트 매칭 | 40% | 현재 프로젝트와의 적합성 |
|
|
30
|
+
| 팀 인기도 | 25% | 팀 내 사용률 및 추천 |
|
|
31
|
+
| 개인 이력 | 20% | 이전 설치/거절 이력 |
|
|
32
|
+
| 신선도 | 15% | 최근 업데이트 여부 |
|
|
33
|
+
|
|
34
|
+
## 점수 해석
|
|
35
|
+
|
|
36
|
+
| 점수 | 등급 | 의미 |
|
|
37
|
+
|------|------|------|
|
|
38
|
+
| 80+ | Excellent | 강력 추천 |
|
|
39
|
+
| 60-79 | Good | 추천 |
|
|
40
|
+
| 40-59 | Fair | 검토 권장 |
|
|
41
|
+
| 40 미만 | Poor | 비추천 |
|
|
42
|
+
|
|
43
|
+
## 출력 형식
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
## 플러그인 점수 분석: eslint-fix
|
|
47
|
+
|
|
48
|
+
| 요소 | 점수 | 가중치 |
|
|
49
|
+
|------|------|--------|
|
|
50
|
+
| 프로젝트 매칭 | 85 | 40% |
|
|
51
|
+
| 팀 인기도 | 65 | 25% |
|
|
52
|
+
| 개인 이력 | 50 | 20% |
|
|
53
|
+
| 신선도 | 80 | 15% |
|
|
54
|
+
|
|
55
|
+
**종합 점수: 72점 (Good)**
|
|
56
|
+
|
|
57
|
+
### 분석
|
|
58
|
+
- 프로젝트의 eslint 설정과 높은 호환성
|
|
59
|
+
- 팀 내 2명이 사용 중, 1건의 공유 추천
|
|
60
|
+
- 이전 거절 이력 없음
|
|
61
|
+
- 최근 30일 내 업데이트됨
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 예시
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
/scout priority eslint-fix
|
|
68
|
+
→ eslint-fix 플러그인의 상세 점수 분석
|
|
69
|
+
|
|
70
|
+
/scout priority typescript-lsp
|
|
71
|
+
→ typescript-lsp 플러그인의 상세 점수 분석
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 관련 명령어
|
|
75
|
+
|
|
76
|
+
- `/scout` - 플러그인 추천 (점수 기반 정렬)
|
|
77
|
+
- `/scout compare` - 플러그인 비교
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 무음 모드 - 추천 알림 비활성화 (한글: 무음, 조용히, 알림끄기)
|
|
3
|
+
argument-hint: "[on | off | status]"
|
|
4
|
+
allowed-tools: [Read, Bash]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /scout quiet - 무음 모드
|
|
8
|
+
|
|
9
|
+
플러그인 추천 알림을 일시적으로 비활성화합니다.
|
|
10
|
+
|
|
11
|
+
## 사용법
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/scout quiet # 현재 상태 확인
|
|
15
|
+
/scout quiet on # 무음 모드 활성화
|
|
16
|
+
/scout quiet off # 무음 모드 비활성화
|
|
17
|
+
/scout quiet toggle # 무음 모드 토글
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 인자: $ARGUMENTS
|
|
21
|
+
|
|
22
|
+
## 동작
|
|
23
|
+
|
|
24
|
+
### 상태 확인 (기본)
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/recommendation-controller.sh quiet status
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 무음 모드 활성화
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/recommendation-controller.sh quiet on
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
무음 모드가 활성화되면:
|
|
37
|
+
- Stop Hook에서 자동 추천이 표시되지 않음
|
|
38
|
+
- `/scout` 명령어는 정상 동작
|
|
39
|
+
- 수동으로 해제할 때까지 유지
|
|
40
|
+
|
|
41
|
+
### 무음 모드 비활성화
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/recommendation-controller.sh quiet off
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 출력 형식
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
## 무음 모드
|
|
51
|
+
|
|
52
|
+
**상태**: [활성화 | 비활성화]
|
|
53
|
+
|
|
54
|
+
무음 모드가 활성화되면 자동 추천이 표시되지 않습니다.
|
|
55
|
+
수동으로 `/scout`를 실행하면 추천을 확인할 수 있습니다.
|
|
56
|
+
|
|
57
|
+
### 설정 변경
|
|
58
|
+
- `/scout quiet on` - 무음 모드 켜기
|
|
59
|
+
- `/scout quiet off` - 무음 모드 끄기
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 예시
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
/scout quiet
|
|
66
|
+
→ 현재 무음 모드: 비활성화
|
|
67
|
+
|
|
68
|
+
/scout quiet on
|
|
69
|
+
→ 무음 모드가 활성화되었습니다.
|
|
70
|
+
|
|
71
|
+
/scout quiet off
|
|
72
|
+
→ 무음 모드가 비활성화되었습니다.
|
|
73
|
+
```
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 스케줄 관리 - 정기 작업 예약 (한글: 예약, 스케줄, 정기작업)
|
|
3
|
+
argument-hint: "[list | add | remove] ..."
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /scout schedule - 스케줄 관리
|
|
8
|
+
|
|
9
|
+
정기적인 플러그인 관련 작업을 예약합니다.
|
|
10
|
+
|
|
11
|
+
## 사용법
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/scout schedule # 예약된 작업 목록
|
|
15
|
+
/scout schedule add <type> <interval> # 작업 추가
|
|
16
|
+
/scout schedule remove <id> # 작업 삭제
|
|
17
|
+
/scout schedule run # 대기 중인 작업 실행
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 인자: $ARGUMENTS
|
|
21
|
+
|
|
22
|
+
## 동작
|
|
23
|
+
|
|
24
|
+
### 목록 조회 (기본)
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/scheduler.sh list
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 작업 추가
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/scheduler.sh add <type> <interval> [target] [message]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
작업 유형:
|
|
37
|
+
- `check-updates` - 플러그인 업데이트 확인
|
|
38
|
+
- `cleanup` - 캐시 및 로그 정리
|
|
39
|
+
- `audit` - 보안 감사
|
|
40
|
+
- `remind` - 리마인더
|
|
41
|
+
|
|
42
|
+
주기:
|
|
43
|
+
- `daily` - 매일
|
|
44
|
+
- `weekly` - 매주
|
|
45
|
+
- `monthly` - 매월
|
|
46
|
+
- `once` - 일회성
|
|
47
|
+
|
|
48
|
+
### 작업 삭제
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/scheduler.sh remove <task-id>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 대기 중인 작업 실행
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/scheduler.sh run-due
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 출력 형식
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
## 예약된 작업
|
|
64
|
+
|
|
65
|
+
| ID | 유형 | 주기 | 대상 | 다음 실행 | 상태 |
|
|
66
|
+
|----|------|------|------|----------|------|
|
|
67
|
+
| abc123 | cleanup | weekly | all | 2026-01-29 | 활성 |
|
|
68
|
+
| def456 | check-updates | daily | all | 2026-01-23 | 활성 |
|
|
69
|
+
|
|
70
|
+
### 명령어
|
|
71
|
+
- `/scout schedule add cleanup weekly` - 주간 정리 추가
|
|
72
|
+
- `/scout schedule add remind once all "플러그인 검토하기"` - 리마인더 추가
|
|
73
|
+
- `/scout schedule remove abc123` - 작업 삭제
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 예시
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
/scout schedule
|
|
80
|
+
→ 예약된 작업 목록
|
|
81
|
+
|
|
82
|
+
/scout schedule add cleanup weekly
|
|
83
|
+
→ 주간 정리 작업 추가
|
|
84
|
+
|
|
85
|
+
/scout schedule add remind daily all "플러그인 업데이트 확인"
|
|
86
|
+
→ 매일 리마인더 추가
|
|
87
|
+
|
|
88
|
+
/scout schedule remove abc123
|
|
89
|
+
→ 작업 삭제
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 관련 명령어
|
|
93
|
+
|
|
94
|
+
- `/scout quiet` - 무음 모드
|
|
95
|
+
- `/scout frequency` - 추천 빈도 설정
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: 플러그인 마켓플레이스 스캔 및 추천
|
|
3
|
-
argument-hint: "[--quick | --category <cat> | compare | cleanup | explore | audit | fork]"
|
|
3
|
+
argument-hint: "[--quick | --category <cat> | console | compare | cleanup | explore | audit | fork]"
|
|
4
4
|
allowed-tools: [Read, Glob, Grep, Bash, WebFetch, AskUserQuestion]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh scout"
|
|
10
|
+
timeout: 5
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
# /scout - 플러그인 마켓플레이스 스캔 및 추천
|
|
@@ -19,11 +25,14 @@ allowed-tools: [Read, Glob, Grep, Bash, WebFetch, AskUserQuestion]
|
|
|
19
25
|
## 서브커맨드
|
|
20
26
|
|
|
21
27
|
```
|
|
28
|
+
/scout console # 플러그인 대시보드 콘솔 → console.md 참조
|
|
22
29
|
/scout compare <a> <b> # 플러그인 비교 → compare.md 참조
|
|
23
30
|
/scout cleanup # 미사용 플러그인 정리 → cleanup.md 참조
|
|
24
31
|
/scout explore [category] # 마켓플레이스 탐색 → explore.md 참조
|
|
25
32
|
/scout audit # 보안/업데이트 점검 → audit.md 참조
|
|
26
33
|
/scout fork <src> <name> # 플러그인 포크 → fork.md 참조
|
|
34
|
+
/scout install <plugin> # 플러그인 설치 → install.md 참조
|
|
35
|
+
/scout uninstall <plugin> # 플러그인 제거 → uninstall.md 참조
|
|
27
36
|
```
|
|
28
37
|
|
|
29
38
|
## 인자: $ARGUMENTS
|
|
@@ -32,29 +41,30 @@ allowed-tools: [Read, Glob, Grep, Bash, WebFetch, AskUserQuestion]
|
|
|
32
41
|
|
|
33
42
|
### Phase 1: 프로젝트 컨텍스트 분석
|
|
34
43
|
|
|
35
|
-
1. **프로젝트
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
requirements.txt → Python
|
|
39
|
-
pyproject.toml → Python (modern)
|
|
40
|
-
Cargo.toml → Rust
|
|
41
|
-
go.mod → Go
|
|
42
|
-
pom.xml / build.gradle → Java
|
|
43
|
-
composer.json → PHP
|
|
44
|
-
Gemfile → Ruby
|
|
44
|
+
1. **프로젝트 분석기 실행**:
|
|
45
|
+
```bash
|
|
46
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/project-analyzer.sh full
|
|
45
47
|
```
|
|
46
48
|
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
49
|
+
결과:
|
|
50
|
+
- projectTypes: nodejs, typescript, python, etc.
|
|
51
|
+
- frameworks: react, express, jest, etc.
|
|
52
|
+
- dependencies: 상위 20개 의존성
|
|
53
|
+
- suggestedCategories: 추천 카테고리
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
2. **설치된 플러그인 확인**:
|
|
54
56
|
- `~/.claude/settings.json`의 `enabledPlugins`
|
|
55
57
|
- `.claude/settings.json`의 프로젝트 플러그인
|
|
56
58
|
- 이미 설치된 플러그인은 추천에서 제외
|
|
57
59
|
|
|
60
|
+
3. **거절 이력 확인**:
|
|
61
|
+
```bash
|
|
62
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/rejection-learner.sh stats
|
|
63
|
+
```
|
|
64
|
+
- 3회 이상 거절된 플러그인 제외
|
|
65
|
+
- 30일 쿨다운 중인 플러그인 제외
|
|
66
|
+
- 차단된 카테고리의 플러그인 제외
|
|
67
|
+
|
|
58
68
|
### Phase 2: 마켓플레이스 스캔
|
|
59
69
|
|
|
60
70
|
1. **설정된 마켓플레이스 조회**:
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: skills.sh 스킬 스카우트 - 스킬 탐색, 추천, 설치 (한글: 스킬찾기, 스킬추천, 스킬설치)
|
|
3
|
+
argument-hint: "[search <query> | recommend | install <id> | list | combos]"
|
|
4
|
+
allowed-tools: [Read, Bash, WebFetch, AskUserQuestion]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh skills"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout skills - skills.sh 스킬 스카우트
|
|
14
|
+
|
|
15
|
+
## skills.sh란?
|
|
16
|
+
|
|
17
|
+
[skills.sh](https://skills.sh)는 Claude Code용 커뮤니티 스킬 마켓플레이스입니다.
|
|
18
|
+
스킬(skill)은 Claude Code의 기능을 확장하는 가벼운 모듈로, 플러그인보다 단순하고 빠르게 설치할 수 있습니다.
|
|
19
|
+
|
|
20
|
+
스킬 스카우트는 skills.sh에서 프로젝트에 적합한 스킬을 발견하고 추천합니다.
|
|
21
|
+
|
|
22
|
+
## 사용법
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
/scout skills # 상태 표시
|
|
26
|
+
/scout skills search <query> # 키워드 검색
|
|
27
|
+
/scout skills recommend # 맞춤 추천
|
|
28
|
+
/scout skills install <id> # 스킬 설치
|
|
29
|
+
/scout skills list # 설치 목록
|
|
30
|
+
/scout skills combos # 시너지 추천
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 인자: $ARGUMENTS
|
|
34
|
+
|
|
35
|
+
## 동작
|
|
36
|
+
|
|
37
|
+
### Phase 1: 카탈로그 동기화
|
|
38
|
+
|
|
39
|
+
skills.sh API에서 전체 스킬 카탈로그를 가져옵니다.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh fetch
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**API 동작:**
|
|
46
|
+
- `GET https://skills.sh/api/skills?limit=500&offset=0` 호출
|
|
47
|
+
- `hasMore` 플래그로 페이지네이션 (0.1초 간격)
|
|
48
|
+
- 결과를 `data/.cache/skills-catalog.json`에 캐시
|
|
49
|
+
- 캐시 TTL: config.yaml `skills_sh.cache_ttl` (기본 3600초)
|
|
50
|
+
- 네트워크 실패 시: 캐시가 있으면 캐시 반환, 없으면 빈 배열
|
|
51
|
+
|
|
52
|
+
### Phase 2: Anthropic 공식 스킬 자동 설치
|
|
53
|
+
|
|
54
|
+
Anthropic이 공식 제공하는 스킬은 사용자 확인 없이 자동 설치합니다.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh auto
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**판별 기준:**
|
|
61
|
+
- `topSource === "anthropics/skills"` 인 스킬만 대상
|
|
62
|
+
- config.yaml `skills_sh.auto_install_official: true` 일 때만 동작
|
|
63
|
+
- npx 사전 확인 (`check_npx`)
|
|
64
|
+
|
|
65
|
+
**설치 방법:**
|
|
66
|
+
- `npx skills add <skill-id>` 실행
|
|
67
|
+
- `~/.claude/skills/` 디렉토리에 설치됨
|
|
68
|
+
- 설치 결과를 `data/.last-skill-install.json`에 기록
|
|
69
|
+
- `data/history.json`의 `skills.installed`에 이력 저장
|
|
70
|
+
|
|
71
|
+
**세션 시작 시 자동 실행:**
|
|
72
|
+
이 기능은 on-session-start 훅에서 호출되어 매 세션마다 새 공식 스킬을 자동으로 설치합니다.
|
|
73
|
+
|
|
74
|
+
### Phase 3: 추천 (커뮤니티 스킬)
|
|
75
|
+
|
|
76
|
+
미설치 스킬을 점수 기반으로 평가하여 추천합니다.
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh recommend 5
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**점수 산출 방식 (0-100점):**
|
|
83
|
+
|
|
84
|
+
#### 인기도 (50% 가중치)
|
|
85
|
+
|
|
86
|
+
스킬의 설치 수(installs/downloads)를 기준으로 정규화합니다.
|
|
87
|
+
|
|
88
|
+
| 설치 수 | 점수 |
|
|
89
|
+
|---------|------|
|
|
90
|
+
| 1000+ | 100 |
|
|
91
|
+
| 500+ | 80 |
|
|
92
|
+
| 100+ | 60 |
|
|
93
|
+
| 50+ | 40 |
|
|
94
|
+
| 10+ | 20 |
|
|
95
|
+
| 10 미만 | 10 |
|
|
96
|
+
|
|
97
|
+
#### 프로젝트 매칭 (30% 가중치)
|
|
98
|
+
|
|
99
|
+
`lib/project-analyzer.sh types`의 결과와 스킬의 이름/태그/설명을 비교합니다.
|
|
100
|
+
매칭 횟수에 비례하여 점수 부여 (최대 100점).
|
|
101
|
+
|
|
102
|
+
#### 소스 신뢰도 (20% 가중치)
|
|
103
|
+
|
|
104
|
+
| 소스 | 점수 |
|
|
105
|
+
|------|------|
|
|
106
|
+
| `anthropics/*` | 100 |
|
|
107
|
+
| `verified/*`, `official/*` | 70 |
|
|
108
|
+
| 커뮤니티 (기타) | 40 |
|
|
109
|
+
|
|
110
|
+
**추천 흐름:**
|
|
111
|
+
1. 카탈로그 fetch (캐시 활용)
|
|
112
|
+
2. 설치된 스킬 제외
|
|
113
|
+
3. 각 스킬 점수 계산
|
|
114
|
+
4. 점수 내림차순 정렬
|
|
115
|
+
5. 상위 N개 반환 (config.yaml `skills_sh.max_recommendations`)
|
|
116
|
+
6. AskUserQuestion (multiSelect)으로 설치 선택
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
questions:
|
|
120
|
+
- question: "추천된 스킬 중 설치할 것을 선택하세요:"
|
|
121
|
+
header: "스킬 추천"
|
|
122
|
+
options:
|
|
123
|
+
- label: "<skill-name> (점수: XX/100)"
|
|
124
|
+
description: "<skill-description>"
|
|
125
|
+
multiSelect: true
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
선택된 각 스킬에 대해:
|
|
129
|
+
```bash
|
|
130
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh install <skill-id>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Phase 4: 키워드 검색
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh search "<query>"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
카탈로그에서 이름, 태그, 설명을 대소문자 무시로 검색합니다.
|
|
140
|
+
매칭된 결과는 점수순으로 정렬됩니다.
|
|
141
|
+
|
|
142
|
+
### Phase 5: 시너지 콤보 추천
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh combos
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
설치된 플러그인(`~/.claude/settings.json`의 `enabledPlugins`)을 기반으로
|
|
149
|
+
보완적인 스킬을 추천합니다.
|
|
150
|
+
|
|
151
|
+
**콤보 매핑:**
|
|
152
|
+
|
|
153
|
+
| 설치된 플러그인 키워드 | 추천 스킬 키워드 |
|
|
154
|
+
|----------------------|----------------|
|
|
155
|
+
| typescript-lsp | typescript-strict, type-coverage, ts-refactor |
|
|
156
|
+
| code-review | pr-description, review-checklist |
|
|
157
|
+
| commit-commands | conventional-commits, changelog-gen |
|
|
158
|
+
| sentry | error-tracking, alert-config |
|
|
159
|
+
| react | react-patterns, component-gen |
|
|
160
|
+
| testing | test-gen, coverage-report |
|
|
161
|
+
|
|
162
|
+
카탈로그에서 추천 스킬 키워드와 매칭되는 실제 스킬을 찾아
|
|
163
|
+
`_reason` (시너지 이유)과 함께 반환합니다.
|
|
164
|
+
|
|
165
|
+
## 상태 확인
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh status
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
표시 항목:
|
|
172
|
+
- 설치된 스킬 수 + 목록
|
|
173
|
+
- 마지막 동기화 시각 (캐시 파일 mtime)
|
|
174
|
+
- skills_sh 설정 요약 (enabled, auto_install_official, cache_ttl, max_recommendations)
|
|
175
|
+
- 마지막 자동 설치 결과 (`.last-skill-install.json`)
|
|
176
|
+
|
|
177
|
+
## 안전 규칙
|
|
178
|
+
|
|
179
|
+
1. **Anthropic 공식만 자동 설치**
|
|
180
|
+
- `topSource: "anthropics/skills"` 인 스킬만 사용자 확인 없이 설치
|
|
181
|
+
- 커뮤니티 스킬은 반드시 AskUserQuestion으로 동의 후 설치
|
|
182
|
+
|
|
183
|
+
2. **npx 사전 확인**
|
|
184
|
+
- 스킬 설치 전 `command -v npx` 확인
|
|
185
|
+
- npx 미설치 시 Node.js 설치 방법 안내 메시지 출력
|
|
186
|
+
|
|
187
|
+
3. **네트워크 안전**
|
|
188
|
+
- curl --max-time 10 제한
|
|
189
|
+
- API 실패 시 캐시 폴백
|
|
190
|
+
- 캐시도 없으면 빈 배열 반환 (에러로 중단하지 않음)
|
|
191
|
+
|
|
192
|
+
4. **이력 추적**
|
|
193
|
+
- 모든 설치를 history.json에 기록
|
|
194
|
+
- 자동 설치 결과를 .last-skill-install.json에 기록
|
|
195
|
+
- 설치 소스 (auto/manual) 구분
|
|
196
|
+
|
|
197
|
+
5. **설정 존중**
|
|
198
|
+
- config.yaml `skills_sh` 섹션의 설정값 우선
|
|
199
|
+
- `enabled: false`이면 전체 비활성
|
|
200
|
+
- `auto_install_official: false`이면 자동 설치 비활성
|
|
201
|
+
|
|
202
|
+
## 예시
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
/scout skills
|
|
206
|
+
→ 설치된 스킬 현황과 상태 표시
|
|
207
|
+
|
|
208
|
+
/scout skills search typescript
|
|
209
|
+
→ "typescript" 관련 스킬 검색 (이름/태그/설명 매칭)
|
|
210
|
+
|
|
211
|
+
/scout skills recommend
|
|
212
|
+
→ 프로젝트 분석 기반 맞춤 추천, multiSelect로 설치
|
|
213
|
+
|
|
214
|
+
/scout skills install conventional-commits
|
|
215
|
+
→ npx skills add conventional-commits 실행
|
|
216
|
+
|
|
217
|
+
/scout skills combos
|
|
218
|
+
→ 설치된 플러그인 기반 시너지 스킬 추천
|
|
219
|
+
|
|
220
|
+
/scout skills list
|
|
221
|
+
→ ~/.claude/skills/ + 플러그인 스킬 목록
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## 에러 처리
|
|
225
|
+
|
|
226
|
+
- **npx 없음**: Node.js 설치 안내 출력
|
|
227
|
+
- **네트워크 실패**: 캐시 폴백 → 빈 결과 반환
|
|
228
|
+
- **빈 카탈로그**: 추천 없이 빈 배열 반환
|
|
229
|
+
- **설치 실패**: 에러 메시지 출력, 다른 스킬 설치는 계속 진행
|
|
230
|
+
- **config.yaml 없음**: 모든 설정 기본값 사용
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 팀 협업 - 팀원 통계 및 추천 공유 (한글: 팀, 팀원, 협업)
|
|
3
|
+
argument-hint: "[members | stats | share | shared | summary]"
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /scout team - 팀 협업
|
|
8
|
+
|
|
9
|
+
팀원별 플러그인 사용 통계와 추천 공유 기능입니다.
|
|
10
|
+
|
|
11
|
+
## 사용법
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/scout team # 팀 요약
|
|
15
|
+
/scout team members # 팀원 목록
|
|
16
|
+
/scout team stats # 팀 통계 갱신
|
|
17
|
+
/scout team share <plugin> # 플러그인 추천 공유
|
|
18
|
+
/scout team shared # 공유된 추천 목록
|
|
19
|
+
/scout team name <name> # 팀 이름 설정
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 인자: $ARGUMENTS
|
|
23
|
+
|
|
24
|
+
## 동작
|
|
25
|
+
|
|
26
|
+
### 팀 요약 (기본)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/team-manager.sh summary
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
팀 전체 현황을 표시합니다:
|
|
33
|
+
- 총 멤버 수, 활성 멤버 수
|
|
34
|
+
- 사용된 플러그인 수
|
|
35
|
+
- 인기 플러그인 TOP 3
|
|
36
|
+
- 공유된 추천
|
|
37
|
+
|
|
38
|
+
### 팀원 목록
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/team-manager.sh members
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 팀 통계 갱신
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/team-manager.sh stats
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
7일 내 활성 멤버, 전체 플러그인 사용량 등을 계산합니다.
|
|
51
|
+
|
|
52
|
+
### 플러그인 추천 공유
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/team-manager.sh share <plugin> "<reason>"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
팀원들에게 플러그인을 추천합니다. 추천 사유를 함께 남기면 좋습니다.
|
|
59
|
+
|
|
60
|
+
### 공유된 추천 목록
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/team-manager.sh shared
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 출력 형식
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
## 팀 요약: [팀 이름]
|
|
70
|
+
|
|
71
|
+
### 멤버
|
|
72
|
+
- 총 멤버: 4명
|
|
73
|
+
- 활성 멤버 (7일 내): 3명
|
|
74
|
+
|
|
75
|
+
### 플러그인 사용
|
|
76
|
+
- 총 사용 플러그인: 12개
|
|
77
|
+
- 인기 플러그인:
|
|
78
|
+
1. commit-commands (4명 사용)
|
|
79
|
+
2. code-review (3명 사용)
|
|
80
|
+
3. typescript-lsp (2명 사용)
|
|
81
|
+
|
|
82
|
+
### 공유 추천
|
|
83
|
+
| 플러그인 | 추천 사유 | 추천자 |
|
|
84
|
+
|----------|----------|--------|
|
|
85
|
+
| eslint-fix | 코드 품질 향상 | kent |
|
|
86
|
+
| prettier | 포맷 통일 | john |
|
|
87
|
+
|
|
88
|
+
### 관리
|
|
89
|
+
- `/scout team name <팀명>` - 팀 이름 설정
|
|
90
|
+
- `/scout team share <plugin> "<사유>"` - 추천 공유
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## 예시
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
/scout team
|
|
97
|
+
→ 팀 요약 표시
|
|
98
|
+
|
|
99
|
+
/scout team share eslint-fix "코드 품질 향상에 필수!"
|
|
100
|
+
→ eslint-fix 플러그인을 팀에 추천
|
|
101
|
+
|
|
102
|
+
/scout team shared
|
|
103
|
+
→ 공유된 추천 목록
|
|
104
|
+
|
|
105
|
+
/scout team name "Frontend Team"
|
|
106
|
+
→ 팀 이름을 "Frontend Team"으로 설정
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 자동 등록
|
|
110
|
+
|
|
111
|
+
세션 시작 시 현재 사용자가 자동으로 팀에 등록됩니다.
|
|
112
|
+
Git 사용자 정보(user.name, user.email)가 함께 저장됩니다.
|
|
113
|
+
|
|
114
|
+
## 관련 명령어
|
|
115
|
+
|
|
116
|
+
- `/scout console` - 콘솔에서 팀 통계 확인
|
|
117
|
+
- `/scout` - 개인 추천 (팀 추천과 병합 가능)
|