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.
Files changed (87) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +244 -0
  3. package/monol-plugin-scout-pkg/CLAUDE.md +125 -8
  4. package/monol-plugin-scout-pkg/api/mock/categories.json +81 -0
  5. package/monol-plugin-scout-pkg/api/mock/insights.json +111 -0
  6. package/monol-plugin-scout-pkg/api/mock/marketplace.json +501 -0
  7. package/monol-plugin-scout-pkg/api/mock/trending.json +96 -0
  8. package/monol-plugin-scout-pkg/commands/console.md +79 -0
  9. package/monol-plugin-scout-pkg/commands/frequency.md +32 -0
  10. package/monol-plugin-scout-pkg/commands/install.md +32 -0
  11. package/monol-plugin-scout-pkg/commands/priority.md +30 -0
  12. package/monol-plugin-scout-pkg/commands/quiet.md +32 -0
  13. package/monol-plugin-scout-pkg/commands/schedule.md +32 -0
  14. package/monol-plugin-scout-pkg/commands/scout.md +8 -5
  15. package/monol-plugin-scout-pkg/commands/skills.md +160 -0
  16. package/monol-plugin-scout-pkg/commands/team.md +32 -0
  17. package/monol-plugin-scout-pkg/commands/timing.md +32 -0
  18. package/monol-plugin-scout-pkg/commands/trust.md +85 -0
  19. package/monol-plugin-scout-pkg/commands/trusted-install.md +98 -0
  20. package/monol-plugin-scout-pkg/commands/uninstall.md +31 -0
  21. package/monol-plugin-scout-pkg/config.yaml +57 -0
  22. package/monol-plugin-scout-pkg/data/.cache/676d5ab664292155e5f509c69d4edae1 +10 -0
  23. package/monol-plugin-scout-pkg/data/.session +8 -0
  24. package/monol-plugin-scout-pkg/data/analytics.json +102 -0
  25. package/monol-plugin-scout-pkg/data/history.json +67 -11
  26. package/monol-plugin-scout-pkg/data/logs/scout.log +1 -0
  27. package/monol-plugin-scout-pkg/data/schedules.json +17 -0
  28. package/monol-plugin-scout-pkg/data/team.json +53 -0
  29. package/monol-plugin-scout-pkg/data/usage.json +100 -7
  30. package/monol-plugin-scout-pkg/docs/ARCHITECTURE.md +201 -0
  31. package/monol-plugin-scout-pkg/hooks/generate-insights.sh +102 -0
  32. package/monol-plugin-scout-pkg/hooks/hooks.json +36 -1
  33. package/monol-plugin-scout-pkg/hooks/on-session-end.sh +136 -0
  34. package/monol-plugin-scout-pkg/hooks/on-session-start.sh +43 -0
  35. package/monol-plugin-scout-pkg/hooks/on-stop.md +79 -0
  36. package/monol-plugin-scout-pkg/hooks/open-console.sh +111 -0
  37. package/monol-plugin-scout-pkg/hooks/open-dashboard.sh +61 -0
  38. package/monol-plugin-scout-pkg/hooks/track-usage.sh +59 -0
  39. package/monol-plugin-scout-pkg/lib/ai-recommender.sh +505 -0
  40. package/monol-plugin-scout-pkg/lib/cache.sh +194 -0
  41. package/monol-plugin-scout-pkg/lib/data-validator.sh +360 -0
  42. package/monol-plugin-scout-pkg/lib/error-handler.sh +296 -0
  43. package/monol-plugin-scout-pkg/lib/logger.sh +263 -0
  44. package/monol-plugin-scout-pkg/lib/plugin-manager.sh +239 -0
  45. package/monol-plugin-scout-pkg/lib/priority-scorer.sh +262 -0
  46. package/monol-plugin-scout-pkg/lib/profile-learner.sh +339 -0
  47. package/monol-plugin-scout-pkg/lib/project-analyzer.sh +281 -0
  48. package/monol-plugin-scout-pkg/lib/recommendation-controller.sh +290 -0
  49. package/monol-plugin-scout-pkg/lib/rejection-learner.sh +232 -0
  50. package/monol-plugin-scout-pkg/lib/scheduler.sh +275 -0
  51. package/monol-plugin-scout-pkg/lib/skill-scout.sh +729 -0
  52. package/monol-plugin-scout-pkg/lib/sync.sh +221 -0
  53. package/monol-plugin-scout-pkg/lib/team-learner.sh +450 -0
  54. package/monol-plugin-scout-pkg/lib/team-manager.sh +369 -0
  55. package/monol-plugin-scout-pkg/lib/trend-learner.sh +428 -0
  56. package/monol-plugin-scout-pkg/lib/trust-manager.sh +261 -0
  57. package/monol-plugin-scout-pkg/lib/trusted-installer.sh +738 -0
  58. package/monol-plugin-scout-pkg/plugin.json +3 -2
  59. package/monol-plugin-scout-pkg/skills/audit.md +6 -0
  60. package/monol-plugin-scout-pkg/skills/cleanup.md +6 -0
  61. package/monol-plugin-scout-pkg/skills/compare.md +6 -0
  62. package/monol-plugin-scout-pkg/skills/console.md +315 -0
  63. package/monol-plugin-scout-pkg/skills/explore.md +6 -0
  64. package/monol-plugin-scout-pkg/skills/fork.md +6 -0
  65. package/monol-plugin-scout-pkg/skills/frequency.md +93 -0
  66. package/monol-plugin-scout-pkg/skills/install.md +127 -0
  67. package/monol-plugin-scout-pkg/skills/priority.md +77 -0
  68. package/monol-plugin-scout-pkg/skills/quiet.md +73 -0
  69. package/monol-plugin-scout-pkg/skills/schedule.md +95 -0
  70. package/monol-plugin-scout-pkg/skills/scout.md +27 -17
  71. package/monol-plugin-scout-pkg/skills/skills.md +230 -0
  72. package/monol-plugin-scout-pkg/skills/team.md +117 -0
  73. package/monol-plugin-scout-pkg/skills/timing.md +97 -0
  74. package/monol-plugin-scout-pkg/skills/trust.md +120 -0
  75. package/monol-plugin-scout-pkg/skills/trusted-install.md +264 -0
  76. package/monol-plugin-scout-pkg/skills/uninstall.md +100 -0
  77. package/monol-plugin-scout-pkg/web/components/activity-chart.js +208 -0
  78. package/monol-plugin-scout-pkg/web/components/index.js +27 -0
  79. package/monol-plugin-scout-pkg/web/components/insight-card.js +365 -0
  80. package/monol-plugin-scout-pkg/web/components/overview.js +154 -0
  81. package/monol-plugin-scout-pkg/web/components/plugin-list.js +242 -0
  82. package/monol-plugin-scout-pkg/web/components/stats-card.js +126 -0
  83. package/monol-plugin-scout-pkg/web/components/team-list.js +346 -0
  84. package/monol-plugin-scout-pkg/web/console.html +2098 -0
  85. package/monol-plugin-scout-pkg/web/dashboard.html +2106 -0
  86. package/monol-plugin-scout-pkg/web/manifest.json +29 -0
  87. 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> # 플러그인 비교 → 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 참조
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 # 플러그인 기반 보완 스킬 추천