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,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 추천 빈도 설정 (한글: 빈도, 횟수, 추천빈도)
|
|
3
|
+
argument-hint: "[session | daily | cooldown] <value>"
|
|
4
|
+
allowed-tools: [Read, Bash]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh frequency"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout frequency - 추천 빈도 설정
|
|
14
|
+
|
|
15
|
+
skills/frequency.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 현재 빈도 설정 조회
|
|
22
|
+
2. session/daily/cooldown 값 변경
|
|
23
|
+
3. history.json preferences 업데이트
|
|
24
|
+
|
|
25
|
+
## 예시
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/scout frequency # 현재 설정 확인
|
|
29
|
+
/scout frequency session 2 # 세션당 2회
|
|
30
|
+
/scout frequency daily 5 # 하루 5회
|
|
31
|
+
/scout frequency cooldown 60 # 1시간 간격
|
|
32
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 플러그인 설치 (한글: 설치, 플러그인설치)
|
|
3
|
+
argument-hint: "<plugin-name[@marketplace]>"
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh install"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout install - 플러그인 설치
|
|
14
|
+
|
|
15
|
+
skills/install.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 플러그인 존재 및 거절 이력 확인
|
|
22
|
+
2. AskUserQuestion으로 설치 확인
|
|
23
|
+
3. 승인 시 `lib/plugin-manager.sh install` 실행
|
|
24
|
+
4. 거절 시 `lib/rejection-learner.sh record` 실행
|
|
25
|
+
|
|
26
|
+
## 예시
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
/scout install typescript-lsp
|
|
30
|
+
/scout install code-review@monol
|
|
31
|
+
/scout install --list
|
|
32
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 우선순위 분석 (한글: 우선순위, 점수)
|
|
3
|
+
argument-hint: "<plugin-name>"
|
|
4
|
+
allowed-tools: [Read, Bash]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh priority"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout priority - 우선순위 분석
|
|
14
|
+
|
|
15
|
+
skills/priority.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 플러그인 점수 계산
|
|
22
|
+
2. 요소별 상세 분석
|
|
23
|
+
3. 종합 점수 및 등급 표시
|
|
24
|
+
|
|
25
|
+
## 예시
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/scout priority eslint-fix
|
|
29
|
+
/scout priority typescript-lsp
|
|
30
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 무음 모드 - 추천 알림 비활성화 (한글: 무음, 조용히, 알림끄기)
|
|
3
|
+
argument-hint: "[on | off | status]"
|
|
4
|
+
allowed-tools: [Read, Bash]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh quiet"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout quiet - 무음 모드
|
|
14
|
+
|
|
15
|
+
skills/quiet.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 현재 무음 모드 상태 확인
|
|
22
|
+
2. on/off/toggle로 모드 변경
|
|
23
|
+
3. 변경 사항 history.json에 저장
|
|
24
|
+
|
|
25
|
+
## 예시
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/scout quiet # 상태 확인
|
|
29
|
+
/scout quiet on # 무음 모드 활성화
|
|
30
|
+
/scout quiet off # 무음 모드 비활성화
|
|
31
|
+
/scout quiet toggle # 토글
|
|
32
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 스케줄 관리 (한글: 예약, 스케줄, 정기작업)
|
|
3
|
+
argument-hint: "[list | add | remove | run]"
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh schedule"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout schedule - 스케줄 관리
|
|
14
|
+
|
|
15
|
+
skills/schedule.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 예약된 작업 목록 조회
|
|
22
|
+
2. 작업 추가/삭제
|
|
23
|
+
3. 대기 중인 작업 실행
|
|
24
|
+
|
|
25
|
+
## 예시
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/scout schedule # 목록
|
|
29
|
+
/scout schedule add cleanup weekly # 주간 정리 추가
|
|
30
|
+
/scout schedule remove abc123 # 삭제
|
|
31
|
+
/scout schedule run # 대기 작업 실행
|
|
32
|
+
```
|
|
@@ -19,11 +19,14 @@ allowed-tools: [Read, Glob, Grep, Bash, WebFetch, AskUserQuestion]
|
|
|
19
19
|
## 서브커맨드
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
/scout compare <a> <b>
|
|
23
|
-
/scout cleanup
|
|
24
|
-
/scout explore [category]
|
|
25
|
-
/scout audit
|
|
26
|
-
/scout fork <src> <name>
|
|
22
|
+
/scout compare <a> <b> # 플러그인 비교 → compare.md 참조
|
|
23
|
+
/scout cleanup # 미사용 플러그인 정리 → cleanup.md 참조
|
|
24
|
+
/scout explore [category] # 마켓플레이스 탐색 → explore.md 참조
|
|
25
|
+
/scout audit # 보안/업데이트 점검 → audit.md 참조
|
|
26
|
+
/scout fork <src> <name> # 플러그인 포크 → fork.md 참조
|
|
27
|
+
/scout trusted-install [on|off|status|check|run] # 신뢰된 자동 설치 → trusted-install.md 참조
|
|
28
|
+
/scout trust [@author|remove|list|export] # 신뢰 작성자 관리 → trust.md 참조
|
|
29
|
+
/scout skills [search|recommend|install|list|combos] # skills.sh 스킬 탐색 → skills.md 참조
|
|
27
30
|
```
|
|
28
31
|
|
|
29
32
|
## 인자: $ARGUMENTS
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: skills.sh 스킬 탐색 및 설치 (한글: 스킬, 스킬찾기, 스킬스카우트)
|
|
3
|
+
argument-hint: "[search <query> | recommend | install <id> | list | combos]"
|
|
4
|
+
allowed-tools: [Read, Bash, WebFetch, AskUserQuestion]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /scout skills - skills.sh 스킬 탐색 및 설치
|
|
8
|
+
|
|
9
|
+
skills.sh 마켓플레이스에서 스킬을 탐색, 추천, 설치합니다.
|
|
10
|
+
|
|
11
|
+
## 사용법
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/scout skills # 설치된 스킬 + 상태 표시
|
|
15
|
+
/scout skills search <query> # 키워드로 스킬 검색
|
|
16
|
+
/scout skills recommend # 프로젝트 기반 맞춤 추천
|
|
17
|
+
/scout skills install <id> # 스킬 설치
|
|
18
|
+
/scout skills list # 설치된 스킬 목록
|
|
19
|
+
/scout skills combos # 시너지 콤보 추천
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 인자: $ARGUMENTS
|
|
23
|
+
|
|
24
|
+
## 동작
|
|
25
|
+
|
|
26
|
+
### Phase 1: 카탈로그 동기화
|
|
27
|
+
|
|
28
|
+
skills.sh API에서 스킬 카탈로그를 가져옵니다.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh fetch
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- 캐시 TTL 내이면 로컬 캐시 사용 (기본 1시간)
|
|
35
|
+
- 네트워크 실패 시 캐시 폴백, 캐시 없으면 빈 배열 반환
|
|
36
|
+
|
|
37
|
+
### Phase 2: Anthropic 공식 스킬 자동 설치
|
|
38
|
+
|
|
39
|
+
`topSource: "anthropics/skills"` 인 스킬은 사용자 확인 없이 자동 설치합니다.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh auto
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- config.yaml `skills_sh.auto_install_official: true` 일 때만 동작
|
|
46
|
+
- 이미 설치된 스킬은 건너뜀
|
|
47
|
+
- 설치 결과를 `.last-skill-install.json`에 기록
|
|
48
|
+
|
|
49
|
+
### Phase 3: 커뮤니티 스킬 추천
|
|
50
|
+
|
|
51
|
+
미설치 커뮤니티 스킬을 점수로 평가하여 추천합니다.
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh recommend 5
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**점수 계산 (0-100)**:
|
|
58
|
+
|
|
59
|
+
| 가중치 | 요소 | 설명 |
|
|
60
|
+
|--------|------|------|
|
|
61
|
+
| 50% | 인기도 (installs) | 설치 수 기반 정규화 |
|
|
62
|
+
| 30% | 프로젝트 매칭 | 이름/태그 vs 프로젝트 언어/프레임워크 |
|
|
63
|
+
| 20% | 소스 신뢰도 | anthropics/* = 100, verified = 70, community = 40 |
|
|
64
|
+
|
|
65
|
+
AskUserQuestion으로 multiSelect 제시:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
questions:
|
|
69
|
+
- question: "추천된 스킬 중 설치할 것을 선택하세요:"
|
|
70
|
+
header: "스킬 추천"
|
|
71
|
+
options:
|
|
72
|
+
- label: "<skill-name> (점수: XX)"
|
|
73
|
+
description: "<description>"
|
|
74
|
+
# ... 추천된 스킬 목록
|
|
75
|
+
multiSelect: true
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
선택된 스킬에 대해 `lib/skill-scout.sh install <id>` 실행.
|
|
79
|
+
|
|
80
|
+
### Phase 4: 시너지 콤보 추천
|
|
81
|
+
|
|
82
|
+
설치된 플러그인 기반으로 보완 스킬을 추천합니다.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh combos
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
콤보 매핑:
|
|
89
|
+
|
|
90
|
+
| 설치된 플러그인 | 추천 스킬 |
|
|
91
|
+
|----------------|----------|
|
|
92
|
+
| typescript-lsp | typescript-strict, type-coverage, ts-refactor |
|
|
93
|
+
| code-review | pr-description, review-checklist |
|
|
94
|
+
| commit-commands | conventional-commits, changelog-gen |
|
|
95
|
+
| sentry | error-tracking, alert-config |
|
|
96
|
+
| react 관련 | react-patterns, component-gen |
|
|
97
|
+
| testing 관련 | test-gen, coverage-report |
|
|
98
|
+
|
|
99
|
+
## 서브커맨드 상세
|
|
100
|
+
|
|
101
|
+
### search <query>
|
|
102
|
+
|
|
103
|
+
키워드로 스킬을 검색합니다. 이름, 태그, 설명에서 대소문자 무시 매칭.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh search "$query"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
결과를 점수순으로 정렬하여 표시.
|
|
110
|
+
|
|
111
|
+
### recommend
|
|
112
|
+
|
|
113
|
+
프로젝트 컨텍스트를 분석하여 맞춤 추천. `lib/project-analyzer.sh types`로 프로젝트 타입 감지.
|
|
114
|
+
|
|
115
|
+
### install <id>
|
|
116
|
+
|
|
117
|
+
특정 스킬을 `npx skills add <id>`로 설치.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh install "$id"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### list
|
|
124
|
+
|
|
125
|
+
설치된 스킬 목록과 상태를 표시.
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/skill-scout.sh status
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### combos
|
|
132
|
+
|
|
133
|
+
설치된 플러그인 기반 시너지 스킬 추천.
|
|
134
|
+
|
|
135
|
+
## 예시
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
/scout skills
|
|
139
|
+
→ 설치된 스킬 현황 + 상태 표시
|
|
140
|
+
|
|
141
|
+
/scout skills search typescript
|
|
142
|
+
→ "typescript" 키워드로 스킬 검색
|
|
143
|
+
|
|
144
|
+
/scout skills recommend
|
|
145
|
+
→ 프로젝트 분석 후 맞춤 스킬 추천 (multiSelect)
|
|
146
|
+
|
|
147
|
+
/scout skills install conventional-commits
|
|
148
|
+
→ conventional-commits 스킬 설치
|
|
149
|
+
|
|
150
|
+
/scout skills combos
|
|
151
|
+
→ 설치된 플러그인 기반 시너지 추천
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## 안전 규칙
|
|
155
|
+
|
|
156
|
+
1. **Anthropic 공식만 자동 설치** - `topSource: "anthropics/skills"` 스킬만 무확인 설치
|
|
157
|
+
2. **커뮤니티 스킬은 확인 필요** - AskUserQuestion으로 사용자 동의 후 설치
|
|
158
|
+
3. **npx 사전 확인** - npx 미설치 시 설치 방법 안내
|
|
159
|
+
4. **네트워크 실패 안전** - 캐시 폴백, 빈 결과 반환 (에러로 중단하지 않음)
|
|
160
|
+
5. **설치 이력 기록** - history.json에 모든 설치 이력 저장
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 팀 협업 - 팀원 통계 및 추천 공유 (한글: 팀, 팀원, 협업)
|
|
3
|
+
argument-hint: "[members | stats | share | shared | summary]"
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh team"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout team - 팀 협업
|
|
14
|
+
|
|
15
|
+
skills/team.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 팀 데이터 초기화 (없으면)
|
|
22
|
+
2. 요청된 하위 명령어 실행
|
|
23
|
+
3. 결과 포맷팅하여 출력
|
|
24
|
+
|
|
25
|
+
## 예시
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/scout team # 팀 요약
|
|
29
|
+
/scout team members # 팀원 목록
|
|
30
|
+
/scout team share eslint # 추천 공유
|
|
31
|
+
/scout team shared # 공유 추천 목록
|
|
32
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 스마트 타이밍 설정 (한글: 타이밍, 추천시점)
|
|
3
|
+
argument-hint: "[after-commit | after-pr | always] [on | off]"
|
|
4
|
+
allowed-tools: [Read, Bash]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh timing"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout timing - 스마트 타이밍 설정
|
|
14
|
+
|
|
15
|
+
skills/timing.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 현재 타이밍 설정 조회
|
|
22
|
+
2. after-commit/after-pr 설정 변경
|
|
23
|
+
3. history.json smartTiming 업데이트
|
|
24
|
+
|
|
25
|
+
## 예시
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/scout timing # 현재 설정 확인
|
|
29
|
+
/scout timing after-commit on # 커밋 후에만 추천
|
|
30
|
+
/scout timing after-pr on # PR 후에만 추천
|
|
31
|
+
/scout timing always # 항상 추천
|
|
32
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 신뢰 작성자 관리 (한글: 신뢰, 트러스트)
|
|
3
|
+
argument-hint: "[@author | remove @author | list | export]"
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /scout trust — 신뢰 작성자 관리
|
|
8
|
+
|
|
9
|
+
신뢰 작성자(trusted authors) 목록을 관리합니다. 신뢰 목록에 포함된 작성자의 플러그인은 자동 설치 시 추가 확인 없이 승인됩니다.
|
|
10
|
+
|
|
11
|
+
## 사용법
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/scout trust @author # 신뢰 작성자 추가
|
|
15
|
+
/scout trust add @author # 신뢰 작성자 추가 (명시적)
|
|
16
|
+
/scout trust remove @author # 신뢰 작성자 제거
|
|
17
|
+
/scout trust list # 신뢰 목록 조회
|
|
18
|
+
/scout trust export # 감사 로그 내보내기
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 인자: $ARGUMENTS
|
|
22
|
+
|
|
23
|
+
| 인자 | 설명 |
|
|
24
|
+
|------|------|
|
|
25
|
+
| `@author` 또는 `add @author` | 해당 작성자를 신뢰 목록에 추가 |
|
|
26
|
+
| `remove @author` | 해당 작성자를 신뢰 목록에서 제거 |
|
|
27
|
+
| `list` | 현재 신뢰 작성자 전체 목록 표시 |
|
|
28
|
+
| `export` | 신뢰 관련 감사 로그를 JSON으로 내보내기 |
|
|
29
|
+
|
|
30
|
+
## 동작
|
|
31
|
+
|
|
32
|
+
### Phase 1: 인자 파싱
|
|
33
|
+
|
|
34
|
+
- `$ARGUMENTS`가 비어 있으면 `list` 서브커맨드로 처리
|
|
35
|
+
- `@`로 시작하거나 `add`로 시작하면 추가 흐름
|
|
36
|
+
- `remove`로 시작하면 제거 흐름
|
|
37
|
+
- `list`, `export`는 해당 서브커맨드 실행
|
|
38
|
+
|
|
39
|
+
### Phase 2: 추가 (add)
|
|
40
|
+
|
|
41
|
+
1. `config.yaml`의 `auto_install.trusted_authors` 배열 확인
|
|
42
|
+
2. 이미 존재하면 안내 후 종료
|
|
43
|
+
3. **AskUserQuestion**으로 사용자에게 확인:
|
|
44
|
+
> "@{author}"을(를) 신뢰 작성자로 추가하시겠습니까? 이 작성자의 플러그인은 자동 설치 시 추가 확인 없이 승인됩니다.
|
|
45
|
+
4. 승인 시 `lib/trust-manager.sh add <author>` 실행
|
|
46
|
+
5. 결과 출력
|
|
47
|
+
|
|
48
|
+
### Phase 3: 제거 (remove)
|
|
49
|
+
|
|
50
|
+
1. "Anthropic"은 보호된 작성자로 제거 불가 → 오류 메시지
|
|
51
|
+
2. 존재하지 않으면 안내 후 종료
|
|
52
|
+
3. `lib/trust-manager.sh remove <author>` 실행
|
|
53
|
+
4. 결과 출력
|
|
54
|
+
|
|
55
|
+
### Phase 4: 목록 (list)
|
|
56
|
+
|
|
57
|
+
1. `lib/trust-manager.sh list` 실행
|
|
58
|
+
2. 결과를 정리하여 출력
|
|
59
|
+
|
|
60
|
+
### Phase 5: 감사 내보내기 (export)
|
|
61
|
+
|
|
62
|
+
1. `lib/trust-manager.sh export` 실행
|
|
63
|
+
2. 내보내기 파일 경로를 사용자에게 안내
|
|
64
|
+
|
|
65
|
+
## 예시
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
# 작성자 추가
|
|
69
|
+
/scout trust @vercel
|
|
70
|
+
→ "@vercel"을(를) 신뢰 작성자로 추가하시겠습니까? [확인 후 추가]
|
|
71
|
+
|
|
72
|
+
# 작성자 제거
|
|
73
|
+
/scout trust remove @vercel
|
|
74
|
+
→ Removed "vercel" from trusted authors.
|
|
75
|
+
|
|
76
|
+
# 목록 조회
|
|
77
|
+
/scout trust list
|
|
78
|
+
→ === Trusted Authors ===
|
|
79
|
+
1. Anthropic
|
|
80
|
+
2. vercel
|
|
81
|
+
|
|
82
|
+
# 감사 로그 내보내기
|
|
83
|
+
/scout trust export
|
|
84
|
+
→ Audit exported to: data/trust-audit-export.json
|
|
85
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 신뢰된 플러그인 자동 설치 관리 (한글: 자동설치, 신뢰설치)
|
|
3
|
+
argument-hint: "[on | off | status | check | run]"
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /scout trusted-install - 신뢰된 자동 설치
|
|
8
|
+
|
|
9
|
+
skills/trusted-install.md를 참조하여 동작합니다.
|
|
10
|
+
|
|
11
|
+
## 인자: $ARGUMENTS
|
|
12
|
+
|
|
13
|
+
## 동작 요약
|
|
14
|
+
|
|
15
|
+
### `on` — Opt-in (활성화)
|
|
16
|
+
|
|
17
|
+
1. AskUserQuestion으로 사용자 확인:
|
|
18
|
+
```yaml
|
|
19
|
+
questions:
|
|
20
|
+
- question: "신뢰된 저자(Anthropic 등)의 공식 플러그인을 자동 설치하시겠습니까?"
|
|
21
|
+
header: "Trusted Auto-Install 활성화"
|
|
22
|
+
options:
|
|
23
|
+
- label: "활성화"
|
|
24
|
+
description: "세션 시작 시 새 공식 플러그인을 자동 설치합니다"
|
|
25
|
+
- label: "취소"
|
|
26
|
+
description: "변경하지 않습니다"
|
|
27
|
+
multiSelect: false
|
|
28
|
+
```
|
|
29
|
+
2. 사용자가 "활성화"를 선택하면:
|
|
30
|
+
```bash
|
|
31
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/trusted-installer.sh enable
|
|
32
|
+
```
|
|
33
|
+
3. 활성화 결과를 안내
|
|
34
|
+
|
|
35
|
+
### `off` — Opt-out (비활성화)
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/trusted-installer.sh disable
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### `status` — 현재 설정 및 마지막 실행 결과
|
|
42
|
+
|
|
43
|
+
1. config.yaml의 auto_install 설정 표시
|
|
44
|
+
2. history.json의 preferences.trustedAutoInstall 상태 표시
|
|
45
|
+
3. .last-auto-install.json의 마지막 실행 결과 표시:
|
|
46
|
+
```bash
|
|
47
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/trusted-installer.sh status
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### `check` — 드라이런 (설치 없이 확인)
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/trusted-installer.sh check
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
출력:
|
|
57
|
+
- 현재 활성/비활성 상태
|
|
58
|
+
- 신뢰된 저자 목록
|
|
59
|
+
- 설치 후보 플러그인 (설치되지 않은 것만)
|
|
60
|
+
- 신규 출시된 플러그인 (이전 캐시 대비)
|
|
61
|
+
- 현재 설치된 플러그인 수
|
|
62
|
+
|
|
63
|
+
### `run` — 즉시 실행 (수동)
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
bash ${CLAUDE_PLUGIN_ROOT}/lib/trusted-installer.sh run
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
활성화 상태에서만 동작. 비활성화 상태면 안내 메시지 출력.
|
|
70
|
+
|
|
71
|
+
## 예시
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
/scout trusted-install on
|
|
75
|
+
→ AskUserQuestion으로 확인 후 활성화
|
|
76
|
+
|
|
77
|
+
/scout trusted-install off
|
|
78
|
+
→ 즉시 비활성화
|
|
79
|
+
|
|
80
|
+
/scout trusted-install status
|
|
81
|
+
→ 설정 상태 + 마지막 실행 결과
|
|
82
|
+
|
|
83
|
+
/scout trusted-install check
|
|
84
|
+
→ 설치 후보 목록 표시 (변경 없음)
|
|
85
|
+
|
|
86
|
+
/scout trusted-install run
|
|
87
|
+
→ 누락된 공식 플러그인 설치 실행
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## 안전 규칙
|
|
91
|
+
|
|
92
|
+
1. **명시적 opt-in 필수** — `on` 시 반드시 사용자 확인 (AskUserQuestion)
|
|
93
|
+
2. **이중 확인** — config.yaml + history.json 둘 다 true여야 동작
|
|
94
|
+
3. **신뢰된 저자만** — config.yaml `trusted_authors`에 등록된 저자만 대상
|
|
95
|
+
4. **LSP 필터링** — LSP 플러그인은 프로젝트 언어 매칭 시에만 설치
|
|
96
|
+
5. **충돌 감지** — 동일 기능 플러그인 중복 설치 방지
|
|
97
|
+
6. **오프라인 폴백** — 마켓플레이스 접근 불가 시 캐시 사용, 실패 시 조용히 종료
|
|
98
|
+
7. **settings.json 백업** — 설치 전 자동 백업 (plugin-manager.sh)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 플러그인 제거 (한글: 제거, 삭제, 언인스톨)
|
|
3
|
+
argument-hint: "<plugin-name>"
|
|
4
|
+
allowed-tools: [Read, Bash, AskUserQuestion]
|
|
5
|
+
hooks:
|
|
6
|
+
Stop:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "bash ${CLAUDE_PLUGIN_ROOT}/hooks/track-usage.sh uninstall"
|
|
10
|
+
timeout: 5
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# /scout uninstall - 플러그인 제거
|
|
14
|
+
|
|
15
|
+
skills/uninstall.md를 참조하여 동작합니다.
|
|
16
|
+
|
|
17
|
+
## 인자: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
## 동작 요약
|
|
20
|
+
|
|
21
|
+
1. 설치 여부 및 사용량 확인
|
|
22
|
+
2. AskUserQuestion으로 제거 확인
|
|
23
|
+
3. 승인 시 `lib/plugin-manager.sh uninstall` 실행
|
|
24
|
+
4. 비활성화만 선택 시 `lib/plugin-manager.sh disable` 실행
|
|
25
|
+
|
|
26
|
+
## 예시
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
/scout uninstall old-formatter
|
|
30
|
+
/scout remove unused-plugin
|
|
31
|
+
```
|
|
@@ -58,6 +58,19 @@ cleanup:
|
|
|
58
58
|
# 자동 정리 (false = 수동 확인)
|
|
59
59
|
auto_remove: false
|
|
60
60
|
|
|
61
|
+
# 거절 학습 설정
|
|
62
|
+
rejection_learning:
|
|
63
|
+
# 활성화
|
|
64
|
+
enabled: true
|
|
65
|
+
# 재추천 쿨다운 (일)
|
|
66
|
+
cooldown_days: 30
|
|
67
|
+
# 영구 차단 임계값 (회)
|
|
68
|
+
block_threshold: 3
|
|
69
|
+
# 카테고리 차단 임계값 (회)
|
|
70
|
+
category_block_threshold: 5
|
|
71
|
+
# 거절 이유 추적
|
|
72
|
+
track_reasons: true
|
|
73
|
+
|
|
61
74
|
# 캐시 설정
|
|
62
75
|
cache:
|
|
63
76
|
enabled: true
|
|
@@ -74,3 +87,47 @@ notifications:
|
|
|
74
87
|
security_updates: true
|
|
75
88
|
# 업데이트 가능 알림
|
|
76
89
|
available_updates: true
|
|
90
|
+
|
|
91
|
+
# ============================================================================
|
|
92
|
+
# 서버 동기화 설정 (monol-server)
|
|
93
|
+
# ============================================================================
|
|
94
|
+
# 동기화 활성화 (false로 비활성화)
|
|
95
|
+
sync_enabled: true
|
|
96
|
+
|
|
97
|
+
# monol-server URL
|
|
98
|
+
sync_server_url: "http://localhost:3030"
|
|
99
|
+
|
|
100
|
+
# 팀 ID (선택사항, 팀 대시보드용)
|
|
101
|
+
sync_team: ""
|
|
102
|
+
|
|
103
|
+
# 요청 타임아웃 (초)
|
|
104
|
+
sync_timeout: 5
|
|
105
|
+
|
|
106
|
+
# ============================================================================
|
|
107
|
+
# 신뢰된 자동 설치 (Trusted Auto-Install)
|
|
108
|
+
# ============================================================================
|
|
109
|
+
auto_install:
|
|
110
|
+
enabled: false # /scout trusted-install on 으로 opt-in
|
|
111
|
+
trusted_authors: ["Anthropic"]
|
|
112
|
+
marketplace: "claude-plugins-official"
|
|
113
|
+
lsp_language_filter: true # LSP는 프로젝트 언어 매칭 필요
|
|
114
|
+
scope: "user"
|
|
115
|
+
# 오프라인 폴백
|
|
116
|
+
cache_catalog: true # marketplace 카탈로그 로컬 캐시
|
|
117
|
+
cache_ttl: 86400 # 24시간
|
|
118
|
+
# 신규 출시 감지
|
|
119
|
+
detect_new_releases: true # 이전 vs 현재 비교
|
|
120
|
+
# 충돌 감지
|
|
121
|
+
check_conflicts: true # 동일 기능 플러그인 감지
|
|
122
|
+
|
|
123
|
+
# ============================================================================
|
|
124
|
+
# skills.sh 통합
|
|
125
|
+
# ============================================================================
|
|
126
|
+
skills_sh:
|
|
127
|
+
enabled: true
|
|
128
|
+
api_base: "https://skills.sh/api"
|
|
129
|
+
auto_install_official: true # topSource: anthropics/* 자동 설치
|
|
130
|
+
cache_ttl: 3600 # 1시간 캐시
|
|
131
|
+
max_recommendations: 5
|
|
132
|
+
# 시너지 추천
|
|
133
|
+
combo_suggestions: true # 플러그인 기반 보완 스킬 추천
|