@blueking/bkui-knowledge 0.0.1-beta.1 → 0.0.1-beta.11
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.md +166 -58
- package/bin/bkui-knowledge.js +229 -86
- package/knowledge/manifest.json +38 -1
- package/knowledge/skills/.template/README.md +1 -1
- package/knowledge/skills/bk-security-redlines/SKILL.md +47 -0
- package/knowledge/skills/bk-security-redlines/references/auth-check.md +73 -0
- package/knowledge/skills/bk-security-redlines/references/data-encryption.md +78 -0
- package/knowledge/skills/bk-security-redlines/references/input-validation.md +96 -0
- package/knowledge/skills/bk-skill-creator/SKILL.md +37 -0
- package/knowledge/skills/bk-skill-creator/references/common-mistakes.md +43 -0
- package/knowledge/skills/bk-skill-creator/references/quick-start.md +42 -0
- package/knowledge/skills/bk-skill-creator/references/skill-checklist.md +93 -0
- package/knowledge/skills/bk-skill-creator/references/structure-guide.md +88 -0
- package/knowledge/skills/bk-skill-creator/references/writing-tips.md +153 -0
- package/knowledge/skills/bkui-quick-start/SKILL.md +52 -0
- package/knowledge/skills/bkui-quick-start/references/components-list.md +17 -0
- package/knowledge/skills/bkui-quick-start/references/skills-index.md +26 -0
- package/knowledge/skills/external/vue-skills/LICENSE +21 -0
- package/knowledge/skills/external/vue-skills/README.md +69 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/SKILL.md +42 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/codeactions-save-performance.md +79 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/data-attributes-config.md +74 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/deep-watch-numeric.md +102 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/define-model-update-event.md +79 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/duplicate-plugin-detection.md +102 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/fallthrough-attributes.md +63 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/hmr-vue-ssr.md +124 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/module-resolution-bundler.md +81 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/pinia-store-mocking.md +159 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/script-setup-jsdoc.md +85 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/strict-css-modules.md +68 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/unplugin-auto-import-conflicts.md +97 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/volar-3-breaking-changes.md +66 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/vue-directive-comments.md +73 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/vue-router-typed-params.md +81 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/vue-tsc-strict-templates.md +69 -0
- package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/with-defaults-union-types.md +102 -0
- package/knowledge/skills/web-security-guide/SKILL.md +48 -0
- package/knowledge/skills/web-security-guide/references/access-control.md +123 -0
- package/knowledge/skills/web-security-guide/references/auth-session.md +99 -0
- package/knowledge/skills/web-security-guide/references/csrf.md +59 -0
- package/knowledge/skills/web-security-guide/references/data-exposure.md +108 -0
- package/knowledge/skills/web-security-guide/references/deserialization.md +59 -0
- package/knowledge/skills/web-security-guide/references/injection.md +357 -0
- package/knowledge/skills/web-security-guide/references/logging-monitoring.md +47 -0
- package/knowledge/skills/web-security-guide/references/security-config.md +73 -0
- package/knowledge/skills/web-security-guide/references/ssrf.md +55 -0
- package/knowledge/skills/web-security-guide/references/xss.md +134 -0
- package/package.json +3 -3
- package/server/mcp-core.js +48 -33
package/README.md
CHANGED
|
@@ -10,20 +10,57 @@
|
|
|
10
10
|
|
|
11
11
|
只需添加 MCP 服务配置:
|
|
12
12
|
|
|
13
|
+
### Cursor(默认)
|
|
14
|
+
|
|
13
15
|
```json
|
|
14
16
|
{
|
|
15
17
|
"mcpServers": {
|
|
16
18
|
"bkui-knowledge": {
|
|
17
19
|
"command": "npx",
|
|
18
|
-
"args": ["-y", "@blueking/bkui-knowledge"]
|
|
20
|
+
"args": ["-y", "@blueking/bkui-knowledge", "${workspaceFolder}"]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### CodeBuddy
|
|
27
|
+
|
|
28
|
+
在 CodeBuddy 设置 > MCP 标签页中添加:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"bkui-knowledge": {
|
|
33
|
+
"command": "npx",
|
|
34
|
+
"args": ["-y", "@blueking/bkui-knowledge", "--ide=codebuddy"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
> 💡 通过 `--ide` 参数指定目标 IDE,不指定时默认使用 Cursor
|
|
40
|
+
|
|
41
|
+
### 本地开发
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"mcpServers": {
|
|
46
|
+
"bkui-knowledge": {
|
|
47
|
+
"command": "node",
|
|
48
|
+
"args": [
|
|
49
|
+
"/path/to/bkui-knowledge/bin/bkui-knowledge.js",
|
|
50
|
+
"${workspaceFolder}"
|
|
51
|
+
]
|
|
19
52
|
}
|
|
20
53
|
}
|
|
21
54
|
}
|
|
22
55
|
```
|
|
23
56
|
|
|
57
|
+
> ⚠️ 必须传递项目路径,否则 skills 无法同步到正确位置
|
|
58
|
+
|
|
24
59
|
**特性:**
|
|
25
|
-
|
|
26
|
-
- ✅
|
|
60
|
+
|
|
61
|
+
- ✅ 支持 Cursor 和 CodeBuddy 两种 IDE
|
|
62
|
+
- ✅ 首次启动自动同步推荐 skills
|
|
63
|
+
- ✅ 自动生成规则文件(自动注入 AI 上下文)
|
|
27
64
|
- ✅ 自动检测版本更新,增量同步
|
|
28
65
|
- ✅ 零 Token 消耗(skills 不经过 AI 上下文)
|
|
29
66
|
- ✅ 离线可用(skills 已在本地)
|
|
@@ -36,15 +73,17 @@
|
|
|
36
73
|
|
|
37
74
|
MCP 服务启动时,skills 会自动同步到用户项目:
|
|
38
75
|
|
|
39
|
-
1. **首次启动**:自动同步推荐的 skills
|
|
76
|
+
1. **首次启动**:自动同步推荐的 skills
|
|
40
77
|
2. **后续启动**:检测版本差异,自动增量更新
|
|
41
|
-
3.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
78
|
+
3. **同步位置**(根据 `--ide` 参数):
|
|
79
|
+
|
|
80
|
+
| IDE | Skills | Version |
|
|
81
|
+
| ------------- | -------------------- | ------------------------------------ |
|
|
82
|
+
| Cursor (默认) | `.cursor/skills/` | `.cursor/.bkui-knowledge-version` |
|
|
83
|
+
| CodeBuddy | `.codebuddy/skills/` | `.codebuddy/.bkui-knowledge-version` |
|
|
46
84
|
|
|
47
85
|
**更新机制**:
|
|
86
|
+
|
|
48
87
|
- skills 内置在 npm 包中
|
|
49
88
|
- 更新时:修改代码 → `npm publish` 发布新版本
|
|
50
89
|
- 用户使用 `npx -y` 会自动拉取最新版本
|
|
@@ -55,14 +94,15 @@ MCP 服务启动时,skills 会自动同步到用户项目:
|
|
|
55
94
|
|
|
56
95
|
## 使用方式
|
|
57
96
|
|
|
58
|
-
### 推荐:@BKUI-EXPERT (设计稿还原 / 写组件)
|
|
97
|
+
### 推荐:@bkui-knowledge/BKUI-EXPERT 或 /bkui-knowledge/BKUI-EXPERT (设计稿还原 / 写组件)
|
|
59
98
|
|
|
60
99
|
```
|
|
61
100
|
[粘贴设计稿图片 或 描述需求]
|
|
62
|
-
/
|
|
101
|
+
/bkui-knowledge/BKUI-EXPERT
|
|
63
102
|
```
|
|
64
103
|
|
|
65
104
|
**效果:**
|
|
105
|
+
|
|
66
106
|
1. 自动加载 `bkui-builder` 规则
|
|
67
107
|
2. 自动获取相关组件的 API
|
|
68
108
|
3. 按规范生成代码
|
|
@@ -70,9 +110,9 @@ MCP 服务启动时,skills 会自动同步到用户项目:
|
|
|
70
110
|
|
|
71
111
|
### @ 方式 (Prompts)
|
|
72
112
|
|
|
73
|
-
| 命令
|
|
74
|
-
|
|
75
|
-
| `@BKUI-EXPERT` | 设计稿还原专家模式,引导 AI 按步骤执行 | **写组件 / 还原设计稿** |
|
|
113
|
+
| 命令 | 作用 | 推荐场景 |
|
|
114
|
+
| -------------------------------------------------------------- | -------------------------------------- | ----------------------- |
|
|
115
|
+
| `@bkui-knowledge/BKUI-EXPERT` or `/bkui-knowledge/BKUI-EXPERT` | 设计稿还原专家模式,引导 AI 按步骤执行 | **写组件 / 还原设计稿** |
|
|
76
116
|
|
|
77
117
|
### 直接对话 + 明确指定
|
|
78
118
|
|
|
@@ -93,13 +133,13 @@ MCP 服务启动时,skills 会自动同步到用户项目:
|
|
|
93
133
|
|
|
94
134
|
### 工具 (Tools)
|
|
95
135
|
|
|
96
|
-
| 工具
|
|
97
|
-
|
|
98
|
-
| `get_knowledge_index` | 获取完整索引
|
|
99
|
-
| `get_skill`
|
|
100
|
-
| `get_component_api`
|
|
101
|
-
| `batch_load`
|
|
102
|
-
| `sync_skills`
|
|
136
|
+
| 工具 | 作用 | 层级 |
|
|
137
|
+
| --------------------- | -------------------------------- | ----- |
|
|
138
|
+
| `get_knowledge_index` | 获取完整索引 | L0 |
|
|
139
|
+
| `get_skill` | 获取技能文档 (Markdown + assets) | L1 |
|
|
140
|
+
| `get_component_api` | 获取组件 API (JSON) | L2 |
|
|
141
|
+
| `batch_load` | 批量加载多个资源 | L1+L2 |
|
|
142
|
+
| `sync_skills` | 查看 skills 同步状态和信息 | - |
|
|
103
143
|
|
|
104
144
|
### 组件示例 (Resources) - L3 层
|
|
105
145
|
|
|
@@ -122,33 +162,37 @@ AI: [获取 resource: example://table/basic]
|
|
|
122
162
|
|
|
123
163
|
### 技能 (Skills)
|
|
124
164
|
|
|
125
|
-
| ID
|
|
126
|
-
|
|
127
|
-
| `bkui-builder`
|
|
128
|
-
| `api-standard`
|
|
129
|
-
| `pinia-setup`
|
|
130
|
-
| `permission-directive`
|
|
131
|
-
| `vue-composables`
|
|
132
|
-
| `vite-migration`
|
|
133
|
-
| `bundle-optimization`
|
|
134
|
-
| `virtual-list`
|
|
135
|
-
| `unit-testing`
|
|
136
|
-
| `bkui-cheatsheet`
|
|
137
|
-
| `code-review`
|
|
138
|
-
| `js-security-check`
|
|
139
|
-
| `nodejs-security-check` | Node.js 安全审查
|
|
165
|
+
| ID | 名称 | 场景 |
|
|
166
|
+
| ----------------------- | -------------------------- | ------------------------ |
|
|
167
|
+
| `bkui-builder` | 设计稿还原专家 | UI 开发 |
|
|
168
|
+
| `api-standard` | 统一网络请求 | HTTP 封装 |
|
|
169
|
+
| `pinia-setup` | 全局状态管理 | Pinia |
|
|
170
|
+
| `permission-directive` | 前端权限控制 (IAM) | 权限管理 |
|
|
171
|
+
| `vue-composables` | Vue 3 Composables 最佳实践 | 组合式函数 |
|
|
172
|
+
| `vite-migration` | Webpack 到 Vite 迁移 | 构建工具 |
|
|
173
|
+
| `bundle-optimization` | Vite 构建优化 | 性能 |
|
|
174
|
+
| `virtual-list` | 长列表虚拟滚动 | 性能 |
|
|
175
|
+
| `unit-testing` | 组件单元测试 | 质量 |
|
|
176
|
+
| `bkui-cheatsheet` | BKUI 组件速查 | 快速参考 |
|
|
177
|
+
| `code-review` | 代码评审专家 | 代码审查 |
|
|
178
|
+
| `js-security-check` | JavaScript 安全审查 | 安全 |
|
|
179
|
+
| `nodejs-security-check` | Node.js 安全审查 | 安全 |
|
|
180
|
+
| `vue-best-practices` | Vue 3 开发最佳实践 (外部) | TypeScript/Volar/vue-tsc |
|
|
181
|
+
| `bk-skill-creator` | Skill 创建指南 | 知识沉淀 |
|
|
182
|
+
| `bk-security-redlines` | 蓝鲸代码安全三大红线 | 安全审查 |
|
|
183
|
+
| `web-security-guide` | Web 安全漏洞学习指南 | OWASP 十大漏洞 |
|
|
140
184
|
|
|
141
185
|
### 页面模版 (在 bkui-builder 的 assets/ 中)
|
|
142
186
|
|
|
143
|
-
| 文件
|
|
144
|
-
|
|
187
|
+
| 文件 | 描述 |
|
|
188
|
+
| ------------------------------- | ------------------- |
|
|
145
189
|
| `layouts/admin-layout-left.vue` | 左右布局 (管理后台) |
|
|
146
|
-
| `layouts/admin-layout-top.vue`
|
|
147
|
-
| `layouts/admin-layout-dark.vue` | 暗色主题布局
|
|
148
|
-
| `pages/table-page.vue`
|
|
149
|
-
| `pages/dashboard-page.vue`
|
|
150
|
-
| `pages/detail-page.vue`
|
|
151
|
-
| `pages/wizard-form.vue`
|
|
190
|
+
| `layouts/admin-layout-top.vue` | 上下布局 (门户页) |
|
|
191
|
+
| `layouts/admin-layout-dark.vue` | 暗色主题布局 |
|
|
192
|
+
| `pages/table-page.vue` | 表格页 (CRUD) |
|
|
193
|
+
| `pages/dashboard-page.vue` | 仪表盘 |
|
|
194
|
+
| `pages/detail-page.vue` | 详情页 |
|
|
195
|
+
| `pages/wizard-form.vue` | 分步表单 |
|
|
152
196
|
|
|
153
197
|
> 调用 `get_skill({ skillId: 'bkui-builder' })` 时会自动列出可用模版
|
|
154
198
|
|
|
@@ -165,11 +209,13 @@ AI: [获取 resource: example://table/basic]
|
|
|
165
209
|
工具描述中已包含以下规则,AI 会自动遵守:
|
|
166
210
|
|
|
167
211
|
### 强制规范
|
|
212
|
+
|
|
168
213
|
- 组件库: `bkui-vue` (前缀 `bk-`)
|
|
169
214
|
- 语法: Vue 3 `<script setup lang="ts">`
|
|
170
215
|
- 样式: MagicBox 原子类 (`mt10`, `mb20`, `flex-row`)
|
|
171
216
|
|
|
172
217
|
### 常见错误 (必须避免)
|
|
218
|
+
|
|
173
219
|
```
|
|
174
220
|
❌ <bk-navigation :default-open-keys> → ✅ default-open
|
|
175
221
|
❌ <bk-menu :default-open-keys> → ✅ :opened-keys
|
|
@@ -235,17 +281,70 @@ bkui-knowledge/
|
|
|
235
281
|
|
|
236
282
|
---
|
|
237
283
|
|
|
284
|
+
## 外部技能 (External Skills)
|
|
285
|
+
|
|
286
|
+
本项目集成了社区优秀的 Agent Skills 作为外部依赖:
|
|
287
|
+
|
|
288
|
+
| 技能 | 来源 | 描述 |
|
|
289
|
+
| -------------------- | ----------------------------------------------------- | --------------------------------------------------- |
|
|
290
|
+
| `vue-best-practices` | [hyf0/vue-skills](https://github.com/hyf0/vue-skills) | Vue 3 TypeScript/vue-tsc/Volar 最佳实践 (17 条规则) |
|
|
291
|
+
|
|
292
|
+
### 更新外部技能
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
# 使用脚本更新
|
|
296
|
+
./scripts/update-external-skills.sh
|
|
297
|
+
|
|
298
|
+
# 或手动更新
|
|
299
|
+
git submodule update --remote --merge
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### 首次克隆项目
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# 克隆时初始化子模块
|
|
306
|
+
git clone --recurse-submodules https://github.com/xxx/bkui-knowledge.git
|
|
307
|
+
|
|
308
|
+
# 或克隆后初始化
|
|
309
|
+
git submodule init
|
|
310
|
+
git submodule update
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
238
315
|
## 贡献知识
|
|
239
316
|
|
|
240
317
|
欢迎团队成员一起沉淀知识!所有贡献的内容都会自动遵循渐进式披露架构。
|
|
241
318
|
|
|
242
|
-
###
|
|
319
|
+
### 使用 bk-skill-creator(推荐)
|
|
320
|
+
|
|
321
|
+
在 Cursor 中直接让 AI 帮你创建 skill:
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
用户: 我想创建一个关于 [主题] 的 skill
|
|
325
|
+
AI: [自动加载 bk-skill-creator 技能,引导你完成创建流程]
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
或者显式调用:
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
用户: 调用 get_skill 获取 bk-skill-creator,然后帮我创建一个新的 skill
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
**bk-skill-creator 会自动:**
|
|
335
|
+
|
|
336
|
+
- 引导你使用正确的模板
|
|
337
|
+
- 确保 SKILL.md ≤ 2KB
|
|
338
|
+
- 提醒更新 manifest.json 和 README.md
|
|
339
|
+
- 执行验证脚本检查规范
|
|
340
|
+
|
|
341
|
+
### 手动创建
|
|
243
342
|
|
|
244
343
|
```bash
|
|
245
344
|
# 1. 使用模板创建新 Skill
|
|
246
345
|
cp -r knowledge/skills/.template knowledge/skills/your-skill-id
|
|
247
346
|
|
|
248
|
-
# 2. 编辑核心文档(保持 ≤
|
|
347
|
+
# 2. 编辑核心文档(保持 ≤ 2KB)
|
|
249
348
|
vim knowledge/skills/your-skill-id/SKILL.md
|
|
250
349
|
|
|
251
350
|
# 3. 添加详细内容到 references/
|
|
@@ -254,13 +353,13 @@ vim knowledge/skills/your-skill-id/references/advanced.md
|
|
|
254
353
|
# 4. 更新索引
|
|
255
354
|
vim knowledge/manifest.json
|
|
256
355
|
|
|
257
|
-
# 5.
|
|
258
|
-
|
|
356
|
+
# 5. 验证规范
|
|
357
|
+
bash scripts/validate-skill.sh your-skill-id
|
|
259
358
|
```
|
|
260
359
|
|
|
261
360
|
### 重要原则
|
|
262
361
|
|
|
263
|
-
- ✅ **SKILL.md 必须 ≤
|
|
362
|
+
- ✅ **SKILL.md 必须 ≤ 2KB**(核心规则)
|
|
264
363
|
- ✅ **详细内容放 references/**(按需加载)
|
|
265
364
|
- ✅ **代码资产放 assets/**(用户确认后加载)
|
|
266
365
|
|
|
@@ -282,6 +381,7 @@ npm run test:server # 测试 MCP 服务器功能
|
|
|
282
381
|
```
|
|
283
382
|
|
|
284
383
|
**注意**:
|
|
384
|
+
|
|
285
385
|
- `npm test` 是运行测试套件(自动完成),用于验证规范
|
|
286
386
|
|
|
287
387
|
详细说明见:[tests/README.md](./tests/README.md)
|
|
@@ -291,26 +391,34 @@ npm run test:server # 测试 MCP 服务器功能
|
|
|
291
391
|
## 常见问题
|
|
292
392
|
|
|
293
393
|
### Q: 如何查看所有可用资源?
|
|
294
|
-
|
|
394
|
+
|
|
395
|
+
A: 让 AI 调用 `get_knowledge_index()`,规则已自动注入到对应 IDE 的 rules 目录
|
|
295
396
|
|
|
296
397
|
### Q: 设计稿还原效果不好?
|
|
398
|
+
|
|
297
399
|
A: 使用 `@BKUI-EXPERT`,它会引导 AI 按完整流程执行
|
|
298
400
|
|
|
299
401
|
### Q: 知识库更新了怎么办?
|
|
300
|
-
|
|
402
|
+
|
|
403
|
+
A: 发布新版本 npm 包后,用户下次启动 IDE 时 `npx -y` 会自动拉取最新版本
|
|
301
404
|
|
|
302
405
|
### Q: skills 没有同步成功?
|
|
303
|
-
|
|
406
|
+
|
|
407
|
+
A: 检查对应 IDE 的 skills 目录是否存在(Cursor: `.cursor/skills/`,CodeBuddy: `.codebuddy/skills/`),或查看 IDE 的 MCP 日志
|
|
408
|
+
|
|
409
|
+
### Q: 如何切换到 CodeBuddy?
|
|
410
|
+
|
|
411
|
+
A: 在 MCP 配置的 args 中添加 `--ide=codebuddy` 参数
|
|
304
412
|
|
|
305
413
|
---
|
|
306
414
|
|
|
307
415
|
## Token 消耗对比
|
|
308
416
|
|
|
309
|
-
| 方案
|
|
310
|
-
|
|
311
|
-
| 全量注入
|
|
312
|
-
| 纯按需加载
|
|
313
|
-
| **渐进式披露**
|
|
314
|
-
| **npx 自动同步 skills** | 0
|
|
417
|
+
| 方案 | 初始化 | 按需加载 | 总计 |
|
|
418
|
+
| ----------------------- | ------- | -------- | --------------- |
|
|
419
|
+
| 全量注入 | ~15,000 | 0 | ~15,000 |
|
|
420
|
+
| 纯按需加载 | ~200 | ~3,000 | ~3,200 |
|
|
421
|
+
| **渐进式披露** | ~200 | ~2,000 | **~2,200** ✅ |
|
|
422
|
+
| **npx 自动同步 skills** | 0 | ~2,000 | **~2,000** ✅✅ |
|
|
315
423
|
|
|
316
424
|
> 💡 使用 npx 模式时,推荐的 skills 自动同步到本地,AI 无需读取内容,节省更多 token
|