@blueking/bkui-knowledge 0.0.1-beta.1 → 0.0.1-beta.10

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 (50) hide show
  1. package/README.md +166 -58
  2. package/bin/bkui-knowledge.js +147 -82
  3. package/knowledge/manifest.json +38 -1
  4. package/knowledge/skills/.template/README.md +1 -1
  5. package/knowledge/skills/bk-security-redlines/SKILL.md +47 -0
  6. package/knowledge/skills/bk-security-redlines/references/auth-check.md +73 -0
  7. package/knowledge/skills/bk-security-redlines/references/data-encryption.md +78 -0
  8. package/knowledge/skills/bk-security-redlines/references/input-validation.md +96 -0
  9. package/knowledge/skills/bk-skill-creator/SKILL.md +37 -0
  10. package/knowledge/skills/bk-skill-creator/references/common-mistakes.md +43 -0
  11. package/knowledge/skills/bk-skill-creator/references/quick-start.md +42 -0
  12. package/knowledge/skills/bk-skill-creator/references/skill-checklist.md +93 -0
  13. package/knowledge/skills/bk-skill-creator/references/structure-guide.md +88 -0
  14. package/knowledge/skills/bk-skill-creator/references/writing-tips.md +153 -0
  15. package/knowledge/skills/bkui-quick-start/SKILL.md +52 -0
  16. package/knowledge/skills/bkui-quick-start/references/components-list.md +17 -0
  17. package/knowledge/skills/bkui-quick-start/references/skills-index.md +26 -0
  18. package/knowledge/skills/external/vue-skills/LICENSE +21 -0
  19. package/knowledge/skills/external/vue-skills/README.md +69 -0
  20. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/SKILL.md +42 -0
  21. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/codeactions-save-performance.md +79 -0
  22. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/data-attributes-config.md +74 -0
  23. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/deep-watch-numeric.md +102 -0
  24. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/define-model-update-event.md +79 -0
  25. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/duplicate-plugin-detection.md +102 -0
  26. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/fallthrough-attributes.md +63 -0
  27. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/hmr-vue-ssr.md +124 -0
  28. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/module-resolution-bundler.md +81 -0
  29. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/pinia-store-mocking.md +159 -0
  30. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/script-setup-jsdoc.md +85 -0
  31. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/strict-css-modules.md +68 -0
  32. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/unplugin-auto-import-conflicts.md +97 -0
  33. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/volar-3-breaking-changes.md +66 -0
  34. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/vue-directive-comments.md +73 -0
  35. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/vue-router-typed-params.md +81 -0
  36. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/vue-tsc-strict-templates.md +69 -0
  37. package/knowledge/skills/external/vue-skills/skills/vue-best-practices/rules/with-defaults-union-types.md +102 -0
  38. package/knowledge/skills/web-security-guide/SKILL.md +48 -0
  39. package/knowledge/skills/web-security-guide/references/access-control.md +123 -0
  40. package/knowledge/skills/web-security-guide/references/auth-session.md +99 -0
  41. package/knowledge/skills/web-security-guide/references/csrf.md +59 -0
  42. package/knowledge/skills/web-security-guide/references/data-exposure.md +108 -0
  43. package/knowledge/skills/web-security-guide/references/deserialization.md +59 -0
  44. package/knowledge/skills/web-security-guide/references/injection.md +357 -0
  45. package/knowledge/skills/web-security-guide/references/logging-monitoring.md +47 -0
  46. package/knowledge/skills/web-security-guide/references/security-config.md +73 -0
  47. package/knowledge/skills/web-security-guide/references/ssrf.md +55 -0
  48. package/knowledge/skills/web-security-guide/references/xss.md +134 -0
  49. package/package.json +3 -3
  50. package/server/mcp-core.js +48 -33
@@ -107,6 +107,43 @@
107
107
  "category": "security",
108
108
  "path": "nodejs-security-check/SKILL.md",
109
109
  "tags": ["security", "nodejs", "backend", "ssrf", "sql-injection"]
110
+ },
111
+ {
112
+ "id": "bkui-quick-start",
113
+ "name": "BKUI 快速入门",
114
+ "category": "engineering",
115
+ "path": "bkui-quick-start/SKILL.md",
116
+ "tags": ["bkui", "规范", "索引", "入门"]
117
+ },
118
+ {
119
+ "id": "vue-best-practices",
120
+ "name": "Vue 3 开发最佳实践",
121
+ "category": "engineering",
122
+ "path": "external/vue-skills/skills/vue-best-practices/SKILL.md",
123
+ "tags": ["vue3", "typescript", "vue-tsc", "volar", "vite", "pinia"],
124
+ "external": true,
125
+ "source": "https://github.com/hyf0/vue-skills"
126
+ },
127
+ {
128
+ "id": "bk-skill-creator",
129
+ "name": "Skill 创建指南",
130
+ "category": "engineering",
131
+ "path": "bk-skill-creator/SKILL.md",
132
+ "tags": ["skill", "knowledge", "template", "guide"]
133
+ },
134
+ {
135
+ "id": "bk-security-redlines",
136
+ "name": "蓝鲸代码安全三大红线",
137
+ "category": "security",
138
+ "path": "bk-security-redlines/SKILL.md",
139
+ "tags": ["security", "input-validation", "auth", "encryption", "redlines"]
140
+ },
141
+ {
142
+ "id": "web-security-guide",
143
+ "name": "Web 安全漏洞学习指南",
144
+ "category": "security",
145
+ "path": "web-security-guide/SKILL.md",
146
+ "tags": ["security", "owasp", "vulnerability", "injection", "xss", "csrf", "ssrf"]
110
147
  }
111
148
  ]
112
149
  },
@@ -663,5 +700,5 @@
663
700
  ]
664
701
  },
665
702
 
666
- "recommendedSkills": ["bkui-builder", "bkui-cheatsheet", "code-review", "js-security-check"]
703
+ "recommendedSkills": ["bkui-quick-start", "bkui-builder", "bkui-cheatsheet", "vue-best-practices", "code-review", "js-security-check"]
667
704
  }
@@ -23,7 +23,7 @@ wc -c knowledge/skills/your-skill-id/SKILL.md
23
23
 
24
24
  ## 文件说明
25
25
 
26
- - **SKILL.md**: 核心文档,**必须 ≤ 3KB**
26
+ - **SKILL.md**: 核心文档,**必须 ≤ 2KB**
27
27
  - **references/**: 详细参考文档,按需加载
28
28
  - **assets/**: 代码模板、脚本等资产
29
29
  - **README.md**: 对内说明(不会被 AI 加载)
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: security/bk-security-redlines
3
+ name: 蓝鲸代码安全三大红线
4
+ category: security
5
+ description: 基于 IEG 安全规范,覆盖输入校验、鉴权、数据加密三大高危领域
6
+ tags: [security, input-validation, auth, encryption, redlines]
7
+ updated_at: 2026-01-23
8
+ ---
9
+
10
+ # 蓝鲸代码安全三大红线
11
+
12
+ ## ⚠️ 核心规则
13
+
14
+ ### 红线 1:外部输入未校验
15
+
16
+ 外部输入进入**高危操作**前,必须完成**服务端强约束校验**(类型/长度/格式/白名单),不可绕过。
17
+
18
+ **高危操作**:命令执行、模板解释/eval、文件路径、请求目标、SQL/NoSQL 构造、渲染解析、协议输出
19
+
20
+ ### 红线 2:敏感接口未鉴权
21
+
22
+ 高危能力或敏感资源接口必须同时实施**身份认证 + 权限校验**,缺一即违规。
23
+
24
+ **禁止**:接口无认证、仅登录不校验权限、依赖前端字段/URL/IP 判权、服务间调用无鉴权
25
+
26
+ ### 红线 3:敏感数据未加密
27
+
28
+ 敏感数据(密码/Token/AKSK/私钥/PII)在存储、传输、日志、导出任一环节保护不当即违规。
29
+
30
+ **禁止**:硬编码凭证、明文存储、异常回显细节、日志记录敏感字段、URL 携带 token
31
+
32
+ ## 常见错误
33
+
34
+ | 错误做法 | 正确做法 |
35
+ |---------|---------|
36
+ | ❌ 仅前端/网关校验 | ✅ 服务端强约束校验 |
37
+ | ❌ 仅判空/黑名单 | ✅ 白名单 + 类型/长度/格式 |
38
+ | ❌ 内网可达即放通 | ✅ 服务间调用也需鉴权 |
39
+ | ❌ 日志记录完整请求 | ✅ 脱敏后记录 |
40
+
41
+ ## 📦 按需加载资源
42
+
43
+ | 资源 | URI | 说明 |
44
+ |-----|-----|------|
45
+ | 输入校验详解 | `skill://bk-security-redlines/references/input-validation.md` | 7 类高危操作场景 |
46
+ | 鉴权检查详解 | `skill://bk-security-redlines/references/auth-check.md` | 8 类鉴权缺失场景 |
47
+ | 数据加密详解 | `skill://bk-security-redlines/references/data-encryption.md` | 8 类加密缺失场景 |
@@ -0,0 +1,73 @@
1
+ # 红线 2:敏感接口未鉴权 - 详解
2
+
3
+ ## 定义
4
+
5
+ 凡提供高危能力或访问敏感资源的接口,必须在服务端实施完整鉴权:
6
+
7
+ - **身份认证**:确认"你是谁"
8
+ - **权限校验**:确认"你能做什么"
9
+
10
+ 任一缺失即违规。
11
+
12
+ ---
13
+
14
+ ## 8 类鉴权缺失场景
15
+
16
+ ### 2.1 接口缺失身份认证
17
+
18
+ **业务场景**:
19
+ - 新增 API
20
+ - 后台管理接口
21
+ - 内部运维接口
22
+ - RPC/SDK 入口
23
+ - 仅凭"内网可达"放通
24
+
25
+ ### 2.2 接口缺失权限校验
26
+
27
+ **业务场景**:
28
+ - 仅校验登录不校验角色/租户/项目/资源范围
29
+ - 后台管理操作未做 RBAC/ABAC
30
+
31
+ ### 2.3 鉴权依赖不可信要素
32
+
33
+ **业务场景**:
34
+ - `is_admin` 等前端字段判权
35
+ - URL 前缀隔离
36
+ - 仅网关策略
37
+ - 仅 IP 白名单
38
+
39
+ ### 2.4 服务间调用缺失鉴权
40
+
41
+ **业务场景**:
42
+ - 服务间调用
43
+ - 内部 SDK
44
+ - 代调用
45
+ - 组件联动
46
+
47
+ ### 2.5 资源访问缺失对象鉴权
48
+
49
+ **业务场景**:
50
+ - 仅凭 id/task_id/file_id/cluster_id/app_id 直接读写资源
51
+ - 未校验当前用户是否有权访问该资源
52
+
53
+ ### 2.6 回调消息缺失验源
54
+
55
+ **业务场景**:
56
+ - 回调接口
57
+ - Webhook
58
+ - 消息消费
59
+ - 事件触发入口
60
+
61
+ ### 2.7 会话操作缺失 CSRF 防护
62
+
63
+ **业务场景**:
64
+ - Cookie 会话的敏感操作
65
+ - 未使用 CSRF Token
66
+ - 未校验 Origin/Referer
67
+
68
+ ### 2.8 调试运维缺失鉴权
69
+
70
+ **业务场景**:
71
+ - debug/admin/metrics/health 端点
72
+ - 运维开关
73
+ - 临时接口
@@ -0,0 +1,78 @@
1
+ # 红线 3:敏感数据未加密 - 详解
2
+
3
+ ## 定义
4
+
5
+ 敏感数据在代码、存储、传输、日志、异常输出、导出/备份等任一环节保护不当即违规。
6
+
7
+ ## 敏感数据范围
8
+
9
+ - 密码/Token/AKSK/连接串/私钥/加密密钥
10
+ - 权限票据
11
+ - 个人敏感信息(PII)
12
+ - 内部系统地址与关键配置
13
+
14
+ ---
15
+
16
+ ## 8 类加密缺失场景
17
+
18
+ ### 3.1 敏感信息硬编码暴露
19
+
20
+ **业务场景**:
21
+ - 代码常量/默认配置/示例文件/CI 脚本中写入:
22
+ - 密码
23
+ - Token
24
+ - AK/SK
25
+ - 连接串
26
+ - 私钥
27
+ - 加密密钥
28
+
29
+ ### 3.2 敏感信息明文存储
30
+
31
+ **业务场景**:
32
+ - 数据库字段明文存 token/密码/私钥
33
+ - 配置文件明文凭证
34
+ - 缓存/搜索系统写入明文敏感字段
35
+
36
+ ### 3.3 异常回显泄露细节
37
+
38
+ **业务场景**:
39
+ - API 返回堆栈、SQL、文件路径
40
+ - API 返回内部域名、配置内容、密钥片段
41
+ - 将异常信息原样透传给调用方
42
+
43
+ ### 3.4 日志链路泄露敏感
44
+
45
+ **业务场景**:
46
+ - 全量记录 request/response
47
+ - 记录 Authorization/Cookie/Token
48
+ - trace/span/metrics 写入 PII/凭证
49
+
50
+ ### 3.5 票据出现在 URL/前端
51
+
52
+ **业务场景**:
53
+ - token 放 query 参数
54
+ - 跳转携带票据
55
+ - localStorage/sessionStorage 存长效 token/敏感字段
56
+
57
+ ### 3.6 敏感传输缺少加密
58
+
59
+ **业务场景**:
60
+ - HTTP 明文传 token/凭证/PII
61
+ - 跳过证书校验
62
+ - RPC/MQ 链路未加密传输敏感字段
63
+
64
+ ### 3.7 导出备份暴露敏感
65
+
66
+ **业务场景**:
67
+ - 导出 zip/csv 含凭证/配置/PII
68
+ - dump/日志包上传对象存储
69
+ - 权限过宽、无过期控制或可公开访问
70
+
71
+ ### 3.8 密码学使用不规范
72
+
73
+ **业务场景**:
74
+ - 自研加密算法
75
+ - 弱算法(MD5/SHA1 用于密码、DES/RC4 等)
76
+ - 固定 IV/盐
77
+ - 同密钥多用途
78
+ - 密钥落配置/日志或在接口返回中泄漏
@@ -0,0 +1,96 @@
1
+ # 红线 1:外部输入未校验 - 详解
2
+
3
+ ## 定义
4
+
5
+ 外部输入在进入**高危操作**之前,未完成合理校验即违规。
6
+
7
+ ## 外部输入范围
8
+
9
+ - HTTP 请求参数/Header/Cookie/Body/JSON
10
+ - 文件名及文件内容
11
+ - 环境变量、配置下发内容
12
+ - DB 可写字段
13
+ - 蓝鲸其他产品/组件/平台通过服务间调用、回调/Webhook、MQ/事件总线、任务参数等传入的数据
14
+
15
+ > ⚠️ **互信不等于可信**,一律视为外部输入
16
+
17
+ ## 合理校验标准
18
+
19
+ 必须同时满足:
20
+
21
+ 1. **服务端校验**:发生在服务端/执行端,且在高危使用点之前
22
+ 2. **强约束**:类型/长度/格式/范围/枚举或白名单/字符集与归一化一致性
23
+ 3. **不可绕过**:不得因编码差异、大小写、分隔符、重复参数、路径归一化差异等被绕过
24
+ 4. **不依赖外部假设**:不得以"内网/互信/网关/前端已校验/仅管理员可用"等作为免检理由
25
+
26
+ ## 不合理校验(视为违规)
27
+
28
+ - 仅判空
29
+ - 仅黑名单
30
+ - 仅简单正则
31
+ - 仅前端校验
32
+ - 仅网关策略
33
+ - 仅依赖来源 IP
34
+
35
+ ---
36
+
37
+ ## 7 类高危操作场景
38
+
39
+ ### 1.1 外部输入用于命令执行
40
+
41
+ **业务场景**:
42
+ - shell/exec/subprocess/Runtime.exec/ProcessBuilder/child_process
43
+ - 任务调度执行
44
+ - 脚本调用
45
+ - 运维命令封装
46
+
47
+ ### 1.2 外部输入进入模板解释
48
+
49
+ **业务场景**:
50
+ - eval/exec
51
+ - 脚本引擎
52
+ - 动态 import/反射调用
53
+ - 表达式引擎
54
+ - 反序列化入口
55
+ - 模版渲染
56
+
57
+ ### 1.3 外部输入影响文件路径
58
+
59
+ **业务场景**:
60
+ - 文件写入、文件读取/下载
61
+ - 上传落盘、导出落盘
62
+ - 临时文件、缓存文件
63
+ - 移动/重命名
64
+ - 解压/解包(zip/tar)
65
+ - 符号链接/硬链接导致的覆盖写(symlink/link attack)
66
+
67
+ ### 1.4 外部输入控制请求目标
68
+
69
+ **业务场景**:
70
+ - http client 请求(URL/Host/Port 由输入影响)
71
+ - 回调地址
72
+ - 代理转发
73
+ - 跳转地址
74
+
75
+ ### 1.5 外部输入参与查询构造
76
+
77
+ **业务场景**:
78
+ - 拼接 SQL/NoSQL 条件
79
+ - 管道
80
+ - 排序字段/表名等结构化查询构造
81
+
82
+ ### 1.6 外部输入进入渲染解析
83
+
84
+ **业务场景**:
85
+ - XML 解析(上传/导入 XML、SOAP、SAML、Office 文档内嵌 XML 等)并可触发外部实体/DTD
86
+ - HTML/模板渲染
87
+ - 富文本预览
88
+ - Markdown 渲染
89
+ - 前端危险渲染通道(存储型/反射型/DOM 型 XSS)
90
+
91
+ ### 1.7 外部输入注入协议输出
92
+
93
+ **业务场景**:
94
+ - HTTP Header/响应拼接(Response Splitting)
95
+ - 正则/解析器导致 ReDoS
96
+ - 解析歧义绕过校验(URL/路径/Header 解析差异)
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: engineering/bk-skill-creator
3
+ name: Skill 创建指南
4
+ category: engineering
5
+ description: 指导如何创建符合渐进式披露架构的 skill 文档
6
+ tags: [skill, knowledge, template, guide]
7
+ updated_at: 2026-01-23
8
+ ---
9
+
10
+ # Skill 创建指南
11
+
12
+ ## ⚠️ 核心规则
13
+
14
+ 1. **SKILL.md ≤ 2KB**: 超出内容必须移到 `references/`
15
+ 2. **必须包含 Front Matter**: id, name, category, description, tags, updated_at
16
+ 3. **按需加载引导**: 详细内容通过 `skill://` URI 引用
17
+ 4. **存放位置**: 所有 skill 必须放在 `bkui-knowledge/knowledge/skills/` 目录下
18
+
19
+ ## 快速开始
20
+
21
+ ```bash
22
+ cp -r knowledge/skills/.template knowledge/skills/your-skill-id
23
+ vim knowledge/skills/your-skill-id/SKILL.md
24
+ bash scripts/validate-skill.sh your-skill-id
25
+ ```
26
+
27
+ 详细步骤: `skill://bk-skill-creator/references/quick-start.md`
28
+
29
+ ## 📦 按需加载资源
30
+
31
+ | 资源 | URI |
32
+ |-----|-----|
33
+ | 快速开始 | `skill://bk-skill-creator/references/quick-start.md` |
34
+ | 目录结构 | `skill://bk-skill-creator/references/structure-guide.md` |
35
+ | 常见错误 | `skill://bk-skill-creator/references/common-mistakes.md` |
36
+ | 检查清单 | `skill://bk-skill-creator/references/skill-checklist.md` |
37
+ | 写作技巧 | `skill://bk-skill-creator/references/writing-tips.md` |
@@ -0,0 +1,43 @@
1
+ # 常见错误
2
+
3
+ ## 错误对照表
4
+
5
+ | 错误 | 正确做法 |
6
+ |-----|---------|
7
+ | ❌ SKILL.md 内容过多 | ✅ 只保留核心规则,详细内容移到 references/ |
8
+ | ❌ 忘记更新索引 | ✅ 同时更新 manifest.json 和 README.md |
9
+ | ❌ 缺少 Front Matter | ✅ 必须包含 YAML 头部元数据 |
10
+ | ❌ 文件大小超限 | ✅ 使用 `bash scripts/validate-skill.sh` 验证 |
11
+ | ❌ 缺少按需加载引导 | ✅ 在 SKILL.md 末尾添加资源列表 |
12
+
13
+ ## 详细说明
14
+
15
+ ### SKILL.md 内容过多
16
+
17
+ **问题**: 将所有内容都放在 SKILL.md 中,导致文件超过 2KB 限制。
18
+
19
+ **解决**:
20
+ - 只保留核心规则和快速开始
21
+ - 详细步骤、示例、错误说明等移到 `references/` 目录
22
+ - 通过 `skill://` URI 引用详细内容
23
+
24
+ ### 忘记更新索引
25
+
26
+ **问题**: 创建了 skill 但忘记在 manifest.json 和 README.md 中注册。
27
+
28
+ **解决**:
29
+ - 在 `knowledge/manifest.json` 的 `skills.items` 中添加条目
30
+ - 在 `README.md` 的技能表格中添加一行
31
+ - 使用验证脚本检查是否已正确注册
32
+
33
+ ### 缺少 Front Matter
34
+
35
+ **问题**: SKILL.md 文件开头没有 YAML 格式的元数据。
36
+
37
+ **解决**: 必须在文件开头添加 Front Matter,包含:
38
+ - `id`: skill 的唯一标识符
39
+ - `name`: skill 的显示名称
40
+ - `category`: 分类(engineering/performance/quality)
41
+ - `description`: 简短描述
42
+ - `tags`: 标签数组
43
+ - `updated_at`: 更新日期
@@ -0,0 +1,42 @@
1
+ # 快速开始详细步骤
2
+
3
+ ## 完整流程
4
+
5
+ ```bash
6
+ # 进入 bkui-knowledge 项目根目录
7
+ cd /path/to/bkui-knowledge
8
+
9
+ # 1. 复制模板到 knowledge/skills 目录
10
+ cp -r knowledge/skills/.template knowledge/skills/your-skill-id
11
+
12
+ # 2. 编辑 SKILL.md(保持精简)
13
+ vim knowledge/skills/your-skill-id/SKILL.md
14
+
15
+ # 3. 详细内容放 references/
16
+ vim knowledge/skills/your-skill-id/references/advanced.md
17
+
18
+ # 4. 更新索引
19
+ vim knowledge/manifest.json # skills.items 添加条目
20
+ vim README.md # 技能表格添加一行
21
+
22
+ # 5. 验证
23
+ bash scripts/validate-skill.sh your-skill-id
24
+ ```
25
+
26
+ ## 目录结构示例
27
+
28
+ ```
29
+ bkui-knowledge/
30
+ └── knowledge/
31
+ └── skills/
32
+ ├── .template/ # 模板目录
33
+ └── your-skill-id/ # 新 skill 放这里
34
+ ├── SKILL.md # 主文件 (≤2KB)
35
+ └── references/ # 详细内容
36
+ ```
37
+
38
+ ## 注意事项
39
+
40
+ - SKILL.md 必须控制在 2KB 以内
41
+ - 详细内容应放在 references/ 目录
42
+ - 创建后记得更新 manifest.json 和 README.md
@@ -0,0 +1,93 @@
1
+ # Skill 提交检查清单
2
+
3
+ ## 自动验证
4
+
5
+ 使用验证脚本一键检查:
6
+
7
+ ```bash
8
+ bash scripts/validate-skill.sh your-skill-id
9
+ ```
10
+
11
+ **验证项**:
12
+ - 文件大小是否 ≤ 2KB
13
+ - 是否包含 Front Matter
14
+ - 是否有按需加载引导
15
+ - 是否在 manifest.json 中注册
16
+
17
+ ## 手动检查清单
18
+
19
+ ### 1. SKILL.md 文件
20
+
21
+ - [ ] 文件大小 ≤ 2KB(`wc -c knowledge/skills/your-skill-id/SKILL.md`)
22
+ - [ ] 包含完整 Front Matter:
23
+ ```yaml
24
+ ---
25
+ id: category/your-skill-id
26
+ name: 技能名称
27
+ category: engineering | performance | quality | security
28
+ description: 一句话描述
29
+ tags: [tag1, tag2]
30
+ updated_at: YYYY-MM-DD
31
+ ---
32
+ ```
33
+ - [ ] 包含"核心规则"章节
34
+ - [ ] 包含"快速开始"章节
35
+ - [ ] 如有 references/ 或 assets/,包含按需加载资源列表
36
+
37
+ ### 2. 索引更新
38
+
39
+ - [ ] `manifest.json` 已添加条目:
40
+ ```json
41
+ {
42
+ "id": "your-skill-id",
43
+ "name": "技能名称",
44
+ "category": "engineering",
45
+ "path": "your-skill-id/SKILL.md",
46
+ "tags": ["tag1", "tag2"]
47
+ }
48
+ ```
49
+ - [ ] `README.md` 技能表格已添加一行
50
+
51
+ ### 3. 内容质量
52
+
53
+ - [ ] 核心规则精简(3-5 条)
54
+ - [ ] 快速开始示例可运行
55
+ - [ ] 详细内容已拆分到 references/
56
+ - [ ] 代码示例遵循团队规范
57
+
58
+ ## 常见问题排查
59
+
60
+ ### Q: 验证脚本报错 "未在 manifest.json 中找到"
61
+
62
+ 检查 `manifest.json` 中的 `id` 字段是否与 skill 目录名一致。
63
+
64
+ ### Q: 文件大小超过 2KB
65
+
66
+ 1. 识别核心内容(必读的规则)
67
+ 2. 将详细说明移到 `references/`
68
+ 3. 在 SKILL.md 末尾添加资源引导
69
+
70
+ ### Q: 按需加载资源格式
71
+
72
+ 正确格式:`skill://skill-id/references/xxx.md`
73
+
74
+ ```markdown
75
+ ## 📦 按需加载资源
76
+
77
+ | 资源 | URI |
78
+ |-----|-----|
79
+ | 高级用法 | `skill://your-skill-id/references/advanced.md` |
80
+ ```
81
+
82
+ ## 测试方式
83
+
84
+ ```bash
85
+ # 1. 运行所有测试
86
+ npm test
87
+
88
+ # 2. 单独测试 Skills 规范
89
+ npm run test:skills
90
+
91
+ # 3. 在 Cursor 中调用测试
92
+ # 对话中输入:请调用 get_skill({ skillId: 'your-skill-id' })
93
+ ```
@@ -0,0 +1,88 @@
1
+ # Skill 目录结构详解
2
+
3
+ ## 标准结构
4
+
5
+ ```
6
+ knowledge/skills/your-skill-id/
7
+ ├── SKILL.md # 【必须】核心文档 (≤ 2KB)
8
+ ├── references/ # 【可选】详细参考文档
9
+ │ ├── advanced.md # 高级用法
10
+ │ ├── examples.md # 示例代码
11
+ │ └── troubleshooting.md # 问题排查
12
+ ├── assets/ # 【可选】代码资产
13
+ │ ├── templates/ # 模板文件
14
+ │ ├── scripts/ # 工具脚本
15
+ │ └── configs/ # 配置文件
16
+ └── README.md # 【可选】对内说明(不会被 AI 加载)
17
+ ```
18
+
19
+ ## 各目录用途
20
+
21
+ ### SKILL.md(必须)
22
+
23
+ - **用途**: 核心指令,AI 首先加载的文档
24
+ - **大小限制**: ≤ 2KB
25
+ - **内容要求**:
26
+ - Front Matter 元数据
27
+ - 核心规则(3-5 条)
28
+ - 快速开始示例
29
+ - 按需加载资源引导
30
+
31
+ ### references/(可选)
32
+
33
+ - **用途**: 详细参考文档,按需加载
34
+ - **大小限制**: 每个文件 ≤ 5KB
35
+ - **命名建议**:
36
+ - `advanced.md` - 高级用法
37
+ - `examples.md` - 完整示例
38
+ - `troubleshooting.md` - 问题排查
39
+ - `checklist.md` - 检查清单
40
+
41
+ ### assets/(可选)
42
+
43
+ - **用途**: 代码模板、脚本、配置文件
44
+ - **大小限制**: 无限制(用户确认后加载)
45
+ - **命名建议**:
46
+ - `template.vue` / `template.ts` - 代码模板
47
+ - `config.ts` - 配置示例
48
+ - `helper.js` - 工具脚本
49
+
50
+ ## 现有 Skill 结构示例
51
+
52
+ ### bkui-builder(复杂示例)
53
+
54
+ ```
55
+ bkui-builder/
56
+ ├── SKILL.md
57
+ ├── references/
58
+ │ ├── checklist.md
59
+ │ ├── code-snippets.md
60
+ │ └── visual-mapping.md
61
+ └── assets/
62
+ ├── layouts/
63
+ │ ├── admin-layout-dark.vue
64
+ │ ├── admin-layout-left.vue
65
+ │ └── admin-layout-top.vue
66
+ └── pages/
67
+ ├── table-page.vue
68
+ └── dashboard-page.vue
69
+ ```
70
+
71
+ ### api-standard(简单示例)
72
+
73
+ ```
74
+ api-standard/
75
+ ├── SKILL.md
76
+ ├── references/
77
+ │ ├── full-implementation.md
78
+ │ └── protocol-migration.md
79
+ └── assets/
80
+ └── http.ts
81
+ ```
82
+
83
+ ## 文件命名规范
84
+
85
+ 1. **skill-id**: 使用 kebab-case,如 `bk-skill-creator`
86
+ 2. **SKILL.md**: 必须大写,固定名称
87
+ 3. **references/**: 使用 kebab-case,如 `structure-guide.md`
88
+ 4. **assets/**: 使用原始文件扩展名,如 `.vue`, `.ts`