create-zhin-app 1.0.32 → 1.0.35

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 CHANGED
@@ -290,8 +290,9 @@ zhin new my-awesome-plugin
290
290
 
291
291
  ```bash
292
292
  # 编辑插件文件
293
- # plugins/my-awesome-plugin/app/index.ts # 插件逻辑
294
- # plugins/my-awesome-plugin/client/ # 客户端页面
293
+ # plugins/my-awesome-plugin/src/index.ts # 插件逻辑
294
+ # plugins/my-awesome-plugin/skills/my-awesome-plugin/SKILL.md # AI 技能说明(可选完善)
295
+ # plugins/my-awesome-plugin/client/ # 控制台客户端页面
295
296
 
296
297
  # 保存后自动热重载 ⚡
297
298
  ```
package/lib/index.js CHANGED
@@ -150,6 +150,26 @@ async function main() {
150
150
  if (options.installGlobalCli === undefined) {
151
151
  options.installGlobalCli = false;
152
152
  }
153
+ // 开发技能安装选项
154
+ if (options.devSkills === undefined && !options.yes) {
155
+ console.log('');
156
+ console.log(chalk.blue('🛠️ Zhin 插件开发技能'));
157
+ console.log(chalk.gray('安装一组 AI 技能,帮助你通过 AI 助手高质量地开发、测试和发布 Zhin 插件'));
158
+ console.log(chalk.gray('包含:插件初始化、功能开发、测试编写、质量审查、发布指南'));
159
+ const { devSkills } = await inquirer.prompt([
160
+ {
161
+ type: 'confirm',
162
+ name: 'devSkills',
163
+ message: '是否安装 Zhin 插件开发技能?(推荐)',
164
+ default: true
165
+ }
166
+ ]);
167
+ options.devSkills = devSkills;
168
+ }
169
+ // -y 模式下默认安装开发技能
170
+ if (options.devSkills === undefined) {
171
+ options.devSkills = true;
172
+ }
153
173
  if (!name?.trim()) {
154
174
  console.error(chalk.red('项目名称不能为空'));
155
175
  process.exit(1);
@@ -218,11 +238,22 @@ async function main() {
218
238
  }
219
239
  console.log(` ${chalk.yellow('⚠ API Key 已保存到')} ${chalk.cyan('.env')} ${chalk.yellow('文件')}`);
220
240
  }
241
+ // 显示开发技能信息
242
+ if (options.devSkills) {
243
+ console.log('');
244
+ console.log(chalk.blue('🛠️ 插件开发技能:'));
245
+ console.log(` ${chalk.gray('•')} ${chalk.cyan('plugin-init')} ${chalk.gray('初始化插件项目结构')}`);
246
+ console.log(` ${chalk.gray('•')} ${chalk.cyan('plugin-develop')} ${chalk.gray('开发插件功能(命令、中间件、AI 工具等)')}`);
247
+ console.log(` ${chalk.gray('•')} ${chalk.cyan('plugin-test')} ${chalk.gray('编写和运行测试用例')}`);
248
+ console.log(` ${chalk.gray('•')} ${chalk.cyan('plugin-quality')} ${chalk.gray('代码质量审查与规范检查')}`);
249
+ console.log(` ${chalk.gray('•')} ${chalk.cyan('plugin-publish')} ${chalk.gray('发布到 npm 和插件市场')}`);
250
+ console.log(` ${chalk.gray('位置:')} ${chalk.cyan('skills/')} ${chalk.gray('目录')}`);
251
+ }
221
252
  console.log('');
222
253
  console.log('📝 下一步操作:');
223
254
  console.log(` ${chalk.cyan(`cd ${realName}`)}`);
224
255
  if (options.database?.dialect === 'sqlite') {
225
- console.log(` ${chalk.cyan('pnpm approve-builds sqlite3')} ${chalk.gray('# 批准 sqlite3 原生模块构建如遇错误,请检查系统是否已安装C++编译器(g++)')}`);
256
+ console.log(` ${chalk.gray('# SQLite 使用 Node 内置 node:sqlite,请使用 Node.js 22.5+(推荐 24+)')}`);
226
257
  }
227
258
  // 根据是否全局安装 CLI,显示不同的命令
228
259
  if (options.installGlobalCli) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -10,16 +10,11 @@ export interface InitOptions {
10
10
  ai?: AISetupConfig;
11
11
  adapters?: AdapterSetupResult;
12
12
  installGlobalCli?: boolean;
13
+ devSkills?: boolean;
13
14
  }
14
15
  export interface DatabaseConfig {
15
16
  dialect: 'sqlite' | 'mysql' | 'pg' | 'mongodb' | 'redis';
16
17
  [key: string]: any;
17
18
  }
18
- export declare const DATABASE_PACKAGES: {
19
- readonly sqlite: "sqlite3";
20
- readonly mysql: "mysql2";
21
- readonly pg: "pg";
22
- readonly mongodb: "mongodb";
23
- readonly redis: "redis";
24
- };
19
+ export declare const DATABASE_PACKAGES: Record<DatabaseConfig['dialect'], string | undefined>;
25
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAMnF,CAAC"}
package/lib/types.js CHANGED
@@ -1,6 +1,6 @@
1
- // 数据库配置映射
1
+ // 数据库配置映射(SQLite 使用 Node 内置 node:sqlite,无需额外安装)
2
2
  export const DATABASE_PACKAGES = {
3
- sqlite: 'sqlite3',
3
+ sqlite: undefined,
4
4
  mysql: 'mysql2',
5
5
  pg: 'pg',
6
6
  mongodb: 'mongodb',
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoBA,UAAU;AACV,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACN,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqBA,gDAAgD;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAA0D;IACtF,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAC;AAQ5D,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4gBnH"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAC;AAQ5D,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyhBnH"}
package/lib/workspace.js CHANGED
@@ -74,7 +74,7 @@ export async function createWorkspace(projectPath, projectName, options) {
74
74
  'pm2': 'latest'
75
75
  },
76
76
  pnpm: {
77
- onlyBuiltDependencies: ['esbuild', 'sqlite3']
77
+ onlyBuiltDependencies: ['esbuild']
78
78
  },
79
79
  engines: {
80
80
  node: '>=18.0.0'
@@ -105,6 +105,18 @@ export async function createWorkspace(projectPath, projectName, options) {
105
105
  if (fs.existsSync(githubPath)) {
106
106
  await fs.copy(githubPath, path.join(githubDir, 'SKILL.md'));
107
107
  }
108
+ // 创建插件开发技能(可选)
109
+ if (options.devSkills) {
110
+ const devSkillNames = ['plugin-init', 'plugin-develop', 'plugin-test', 'plugin-quality', 'plugin-publish'];
111
+ for (const skillName of devSkillNames) {
112
+ const skillDir = path.join(projectPath, 'skills', skillName);
113
+ await fs.ensureDir(skillDir);
114
+ const skillSrcPath = path.join(__dirname, '../template/skills', skillName, 'SKILL.md');
115
+ if (fs.existsSync(skillSrcPath)) {
116
+ await fs.copy(skillSrcPath, path.join(skillDir, 'SKILL.md'));
117
+ }
118
+ }
119
+ }
108
120
  // 创建 plugins 目录
109
121
  await fs.ensureDir(path.join(projectPath, 'plugins'));
110
122
  await fs.writeFile(path.join(projectPath, 'plugins', '.gitkeep'), '');
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "create-zhin-app",
3
- "version": "1.0.32",
3
+ "version": "1.0.35",
4
4
  "description": "Create a new zhin bot project",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "create-zhin": "./lib/index.js"
8
8
  },
9
9
  "files": [
10
- "lib"
10
+ "lib",
11
+ "template"
11
12
  ],
12
13
  "dependencies": {
13
14
  "fs-extra": "^11.3.2",
@@ -19,7 +20,7 @@
19
20
  "@types/node": "^24.3.0",
20
21
  "@types/fs-extra": "^11.0.4",
21
22
  "@types/inquirer": "^9.0.7",
22
- "typescript": "^5.3.0"
23
+ "typescript": "^5.9.3"
23
24
  },
24
25
  "engines": {
25
26
  "node": "^20.19.0 || >=22.12.0"
@@ -0,0 +1,223 @@
1
+ ---
2
+ name: plugin-init
3
+ description: "初始化 Zhin.js 插件项目。Use when asked to create a new plugin, scaffold plugin structure, or set up a plugin project. 引导生成符合 Zhin 规范的目录结构、package.json、tsconfig、入口文件和 README。"
4
+ keywords:
5
+ - 创建插件
6
+ - 新建插件
7
+ - 初始化
8
+ - scaffold
9
+ - 脚手架
10
+ - plugin init
11
+ - new plugin
12
+ tags:
13
+ - development
14
+ - plugin
15
+ - scaffold
16
+ ---
17
+
18
+ # Zhin 插件初始化
19
+
20
+ 引导创建一个符合 Zhin.js 规范的新插件,确保目录结构、命名、配置和入口代码全部合规。
21
+
22
+ ## 适用场景
23
+
24
+ - 用户说"帮我创建一个插件"、"新建插件"、"初始化一个 xxx 插件"
25
+ - 需要从零搭建插件包结构
26
+
27
+ ## 初始化流程
28
+
29
+ ### 第 1 步:确认插件信息
30
+
31
+ 向用户确认:
32
+
33
+ 1. **插件名称**:kebab-case,如 `my-plugin`、`group-manager`
34
+ 2. **插件类型**:普通插件 / 服务插件 / 适配器插件
35
+ 3. **核心功能**:命令、中间件、事件、定时任务、AI 工具、Web 页面
36
+ 4. **是否需要数据库**
37
+ 5. **是否需要控制台前端**
38
+
39
+ ### 第 2 步:生成目录结构
40
+
41
+ **命名规范:**
42
+ - npm 包名:社区插件 `zhin.js-{name}`,官方插件 `@zhin.js/{name}`
43
+ - 目录位于 `plugins/{name}/`
44
+
45
+ **最小结构(单文件插件):**
46
+
47
+ ```
48
+ plugins/{name}/
49
+ ├── package.json
50
+ ├── tsconfig.json
51
+ ├── README.md
52
+ ├── CHANGELOG.md
53
+ ├── src/
54
+ │ └── index.ts
55
+ ├── tests/
56
+ │ └── index.test.ts
57
+ └── skills/
58
+ └── {name}/
59
+ └── SKILL.md
60
+ ```
61
+
62
+ **模块化结构(多功能插件):**
63
+
64
+ ```
65
+ plugins/{name}/
66
+ ├── package.json
67
+ ├── tsconfig.json
68
+ ├── README.md
69
+ ├── CHANGELOG.md
70
+ ├── src/
71
+ │ ├── index.ts # 入口装配(只做注册,不堆业务)
72
+ │ ├── commands/ # 命令处理
73
+ │ ├── middlewares/ # 中间件
74
+ │ ├── events/ # 事件监听
75
+ │ ├── services/ # 业务服务 / Context 注册
76
+ │ ├── models/ # 数据库模型
77
+ │ └── crons/ # 定时任务
78
+ ├── client/ # 控制台前端(可选)
79
+ │ ├── index.tsx
80
+ │ ├── tsconfig.json
81
+ │ └── pages/
82
+ ├── tests/
83
+ │ ├── index.test.ts
84
+ │ ├── commands.test.ts
85
+ │ └── services.test.ts
86
+ ├── tools/ # AI 工具声明(可选,*.tool.md)
87
+ ├── skills/
88
+ │ └── {name}/
89
+ │ └── SKILL.md
90
+ └── lib/ # 编译产物(gitignore)
91
+ ```
92
+
93
+ ### 第 3 步:生成 package.json
94
+
95
+ ```json
96
+ {
97
+ "name": "zhin.js-{name}",
98
+ "version": "0.1.0",
99
+ "type": "module",
100
+ "main": "./lib/index.js",
101
+ "types": "./lib/index.d.ts",
102
+ "exports": {
103
+ ".": {
104
+ "types": "./lib/index.d.ts",
105
+ "development": "./src/index.ts",
106
+ "import": "./lib/index.js"
107
+ },
108
+ "./package.json": "./package.json"
109
+ },
110
+ "files": ["src", "lib", "client", "dist", "skills", "tools", "README.md"],
111
+ "scripts": {
112
+ "build": "tsc",
113
+ "dev": "tsc --watch",
114
+ "test": "vitest run",
115
+ "test:watch": "vitest",
116
+ "test:coverage": "vitest run --coverage",
117
+ "prepublishOnly": "pnpm build"
118
+ },
119
+ "keywords": ["zhin.js", "plugin", "{name}"],
120
+ "peerDependencies": {
121
+ "zhin.js": "latest"
122
+ }
123
+ }
124
+ ```
125
+
126
+ ### 第 4 步:生成入口文件
127
+
128
+ **入口 src/index.ts 只做装配,不堆业务:**
129
+
130
+ ```typescript
131
+ import { usePlugin } from 'zhin.js'
132
+
133
+ const plugin = usePlugin()
134
+ const { addCommand, addMiddleware, useContext, logger } = plugin
135
+
136
+ // 配置声明
137
+ // const getConfig = plugin.declareConfig('my-plugin', Schema.object({...}))
138
+
139
+ // 注册命令、中间件、事件等
140
+ // import './commands/index.js'
141
+ // import './services/index.js'
142
+
143
+ logger.info('{Name} 插件已加载')
144
+ ```
145
+
146
+ **关键约定:**
147
+ - `usePlugin()` 只在模块顶层调用
148
+ - TS 文件间互导使用 `.js` 扩展名
149
+ - 从 `zhin.js` 统一导入框架 API
150
+ - `useContext()` 回调返回清理函数
151
+
152
+ ### 第 5 步:生成 tsconfig.json
153
+
154
+ ```json
155
+ {
156
+ "compilerOptions": {
157
+ "target": "ES2022",
158
+ "module": "ESNext",
159
+ "moduleResolution": "bundler",
160
+ "outDir": "./lib",
161
+ "rootDir": "./src",
162
+ "strict": true,
163
+ "declaration": true,
164
+ "declarationMap": true,
165
+ "sourceMap": true,
166
+ "esModuleInterop": true,
167
+ "skipLibCheck": true,
168
+ "jsx": "react-jsx",
169
+ "jsxImportSource": "zhin.js"
170
+ },
171
+ "include": ["src/**/*"],
172
+ "exclude": ["lib", "node_modules", "client", "tests"]
173
+ }
174
+ ```
175
+
176
+ ### 第 6 步:生成测试文件
177
+
178
+ 在 `tests/index.test.ts` 中生成基础测试骨架:
179
+
180
+ ```typescript
181
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest'
182
+ import { Plugin } from '@zhin.js/core'
183
+
184
+ describe('{Name} Plugin', () => {
185
+ let plugin: Plugin
186
+ let root: Plugin
187
+
188
+ beforeEach(() => {
189
+ root = new Plugin('/test/root.ts')
190
+ plugin = new Plugin('/plugins/{name}/src/index.ts', root)
191
+ })
192
+
193
+ afterEach(async () => {
194
+ if (plugin?.started) await plugin.stop()
195
+ })
196
+
197
+ it('should create instance', () => {
198
+ expect(plugin).toBeInstanceOf(Plugin)
199
+ })
200
+
201
+ it('should start and stop', async () => {
202
+ await plugin.start()
203
+ expect(plugin.started).toBe(true)
204
+ await plugin.stop()
205
+ expect(plugin.started).toBe(false)
206
+ })
207
+ })
208
+ ```
209
+
210
+ ### 第 7 步:生成 README.md
211
+
212
+ 包含:安装、配置、使用示例、命令列表、AI 工具列表、开发说明。
213
+
214
+ ## 检查清单
215
+
216
+ - [ ] 包名符合 `zhin.js-{name}` 或 `@zhin.js/{name}` 格式
217
+ - [ ] `type: "module"` 已设置
218
+ - [ ] `exports` 字段包含 development 条件导出
219
+ - [ ] `files` 包含 `src`、`lib`、`skills`
220
+ - [ ] `peerDependencies` 包含 `zhin.js`
221
+ - [ ] 入口文件使用 `usePlugin()` 且在模块顶层
222
+ - [ ] 测试文件存在且可运行
223
+ - [ ] README 包含安装和使用说明
@@ -0,0 +1,200 @@
1
+ ---
2
+ name: plugin-publish
3
+ description: "发布 Zhin.js 插件到 npm 和 Zhin 插件市场。Use when asked to publish a plugin, prepare for release, check publish readiness, or submit to the Zhin plugin marketplace. 引导完成发布前检查、版本管理和提交流程。"
4
+ keywords:
5
+ - 发布
6
+ - publish
7
+ - npm
8
+ - 插件市场
9
+ - marketplace
10
+ - release
11
+ - 版本
12
+ - version
13
+ - changeset
14
+ tags:
15
+ - development
16
+ - plugin
17
+ - publish
18
+ - release
19
+ ---
20
+
21
+ # Zhin 插件发布
22
+
23
+ 引导将 Zhin.js 插件发布到 npm 和 Zhin 插件市场,确保包结构、元数据和质量符合社区标准。
24
+
25
+ ## 适用场景
26
+
27
+ - 用户说"发布插件"、"提交到插件市场"、"准备发版"
28
+ - 插件开发完成需要分享给社区
29
+ - 需要检查插件是否满足发布条件
30
+
31
+ ## 发布前检查清单
32
+
33
+ ### 第 1 步:包元数据检查
34
+
35
+ 验证 `package.json` 必需字段:
36
+
37
+ ```json
38
+ {
39
+ "name": "zhin.js-{name}", // ✅ 社区前缀
40
+ "version": "0.1.0", // ✅ 语义化版本
41
+ "type": "module", // ✅ ESM
42
+ "description": "插件简介", // ✅ 非空描述
43
+ "main": "./lib/index.js", // ✅ 入口指向编译产物
44
+ "types": "./lib/index.d.ts", // ✅ 类型声明
45
+ "exports": {
46
+ ".": {
47
+ "types": "./lib/index.d.ts",
48
+ "development": "./src/index.ts", // ✅ 开发条件导出
49
+ "import": "./lib/index.js"
50
+ },
51
+ "./package.json": "./package.json"
52
+ },
53
+ "files": [ // ✅ 发布文件白名单
54
+ "src", "lib", "client", "dist",
55
+ "skills", "tools",
56
+ "README.md", "CHANGELOG.md"
57
+ ],
58
+ "keywords": ["zhin.js", "plugin"], // ✅ 包含 zhin.js 关键词
59
+ "peerDependencies": {
60
+ "zhin.js": ">=x.x.x" // ✅ 声明框架兼容版本
61
+ },
62
+ "license": "MIT", // ✅ 开源协议
63
+ "repository": { "url": "..." }, // 推荐:仓库地址
64
+ "homepage": "...", // 推荐:文档地址
65
+ "author": "..." // 推荐:作者信息
66
+ }
67
+ ```
68
+
69
+ **插件市场识别条件:**
70
+ - `name` 以 `zhin.js-` 开头(社区)或 `@zhin.js/` 开头(官方)
71
+ - `keywords` 包含 `zhin.js`
72
+ - `peerDependencies` 包含 `zhin.js`
73
+
74
+ ### 第 2 步:代码质量检查
75
+
76
+ ```bash
77
+ # 1. 类型检查
78
+ pnpm build # 确保 tsc 编译通过,无类型错误
79
+
80
+ # 2. 运行测试
81
+ pnpm test # 确保所有测试通过
82
+
83
+ # 3. 覆盖率检查
84
+ pnpm test:coverage # 确保覆盖率达标
85
+ ```
86
+
87
+ **质量底线:**
88
+ - [ ] `tsc` 编译零错误
89
+ - [ ] 所有测试通过
90
+ - [ ] 语句覆盖率 ≥ 60%
91
+ - [ ] 无 `any` 类型滥用
92
+ - [ ] 无未处理的 TODO/FIXME 阻塞发布
93
+
94
+ ### 第 3 步:文档检查
95
+
96
+ **README.md 必须包含:**
97
+ - [ ] 插件功能简介
98
+ - [ ] 安装步骤(`pnpm add zhin.js-{name}`)
99
+ - [ ] 配置说明(配置项及默认值)
100
+ - [ ] 命令列表(如有)
101
+ - [ ] AI 工具说明(如有)
102
+ - [ ] 使用示例
103
+
104
+ **CHANGELOG.md 必须包含:**
105
+ - [ ] 当前版本的变更记录
106
+ - [ ] 遵循 [Keep a Changelog](https://keepachangelog.com/) 格式
107
+
108
+ **关键词:** 有 `skills/` 目录时,确认 SKILL.md 的 description 准确描述插件能力。
109
+
110
+ ### 第 4 步:构建产物检查
111
+
112
+ ```bash
113
+ # 确保 lib/ 目录存在且完整
114
+ ls lib/
115
+
116
+ # 检查将要发布的文件
117
+ npm pack --dry-run
118
+ ```
119
+
120
+ 确认 `npm pack` 输出的文件列表:
121
+ - ✅ 包含 `lib/`(编译后的 JS + d.ts)
122
+ - ✅ 包含 `src/`(源码,供开发模式使用)
123
+ - ✅ 包含 `skills/`(AI 技能描述)
124
+ - ✅ 包含 `README.md`、`CHANGELOG.md`
125
+ - ❌ 不包含 `node_modules/`、`tests/`、`.env`
126
+ - ❌ 不包含 `coverage/`、`.DS_Store`
127
+
128
+ ### 第 5 步:版本管理
129
+
130
+ **语义化版本规则:**
131
+ - `patch` (0.1.0 → 0.1.1):bug 修复、文档更新
132
+ - `minor` (0.1.0 → 0.2.0):新增功能、新增命令
133
+ - `major` (0.1.0 → 1.0.0):破坏性变更、API 不兼容
134
+
135
+ ```bash
136
+ # 更新版本号
137
+ npm version patch # 或 minor / major
138
+
139
+ # 使用 Changesets(如项目已配置)
140
+ pnpm changeset # 创建变更记录
141
+ pnpm changeset version # 更新版本
142
+ ```
143
+
144
+ ### 第 6 步:发布
145
+
146
+ ```bash
147
+ # 发布到 npm
148
+ npm publish --access public
149
+
150
+ # 如果是 scoped 包(@zhin.js/xxx),需要 --access public
151
+ npm publish --access public
152
+ ```
153
+
154
+ **首次发布:**
155
+ 1. 确认已登录 npm:`npm whoami`
156
+ 2. 如未登录:`npm login`
157
+ 3. 确认包名未被占用:`npm view zhin.js-{name}`
158
+
159
+ ### 第 7 步:发布后验证
160
+
161
+ ```bash
162
+ # 1. 等待 npm 索引更新(通常 1-2 分钟)
163
+
164
+ # 2. 在新项目中测试安装
165
+ pnpm add zhin.js-{name}
166
+
167
+ # 3. 确认插件可正常加载
168
+ # 在 zhin.config 中添加插件名,启动 bot 验证
169
+ ```
170
+
171
+ ## 常见问题
172
+
173
+ ### 包名已被占用
174
+ - 社区插件前缀固定为 `zhin.js-`
175
+ - 如果被占用,考虑更具体的名称如 `zhin.js-music-search`
176
+
177
+ ### 发布时 files 不对
178
+ - 检查 `.gitignore` 和 `.npmignore`
179
+ - 使用 `npm pack --dry-run` 预检
180
+
181
+ ### peerDependencies 版本范围
182
+ - 使用 `>=x.x.x` 而不是精确版本
183
+ - 确保与当前 zhin.js 最新版本兼容
184
+
185
+ ## 检查清单(发布门禁)
186
+
187
+ - [ ] `name` 遵循 `zhin.js-{name}` 命名规范
188
+ - [ ] `keywords` 包含 `zhin.js`
189
+ - [ ] `peerDependencies` 声明 `zhin.js`
190
+ - [ ] `type: "module"` 已设置
191
+ - [ ] `exports` 包含 types + development + import
192
+ - [ ] `files` 白名单正确(含 src、lib、skills)
193
+ - [ ] `tsc` 编译通过
194
+ - [ ] 所有测试通过
195
+ - [ ] 覆盖率达标(≥ 60% statements)
196
+ - [ ] README.md 完整
197
+ - [ ] CHANGELOG.md 更新
198
+ - [ ] SKILL.md description 准确(如有 skills/)
199
+ - [ ] `npm pack --dry-run` 文件列表正确
200
+ - [ ] 版本号已更新
@@ -0,0 +1,208 @@
1
+ ---
2
+ name: plugin-quality
3
+ description: "审查和改进 Zhin.js 插件质量。Use when asked to review plugin code, check code quality, audit plugin structure, refactor plugin, or improve plugin before publishing. 引导检查插件的结构规范性、代码健壮性、性能和安全性。"
4
+ keywords:
5
+ - 代码审查
6
+ - 质量检查
7
+ - review
8
+ - 审计
9
+ - 重构
10
+ - refactor
11
+ - 代码规范
12
+ - lint
13
+ - quality
14
+ tags:
15
+ - development
16
+ - quality
17
+ - review
18
+ ---
19
+
20
+ # Zhin 插件质量审查
21
+
22
+ 对 Zhin.js 插件进行全面质量审查,检查结构规范性、代码风格、性能问题和安全隐患,确保达到发布标准。
23
+
24
+ ## 适用场景
25
+
26
+ - 用户说"检查一下插件质量"、"审查代码"、"发布前看看有没有问题"
27
+ - 插件开发完成,准备发布前的质量把关
28
+ - 重构现有插件使其更规范
29
+
30
+ ## 审查维度
31
+
32
+ ### 1. 结构规范性
33
+
34
+ **检查项:**
35
+
36
+ | 项目 | 要求 | 严重程度 |
37
+ |------|------|----------|
38
+ | usePlugin() 位置 | 模块顶层调用 | 🔴 严重 |
39
+ | 导入路径 | TS 文件间使用 `.js` 扩展名 | 🔴 严重 |
40
+ | 框架导入 | 统一从 `zhin.js` 导入 | 🟡 中等 |
41
+ | 入口职责 | index.ts 只做装配,不堆业务 | 🟡 中等 |
42
+ | 目录布局 | 命令/中间件/服务分目录(多功能时) | 🟢 建议 |
43
+ | package.json | type:module、exports、files | 🔴 严重 |
44
+
45
+ **常见错误:**
46
+
47
+ ```typescript
48
+ // ❌ usePlugin 在 async 内调用
49
+ async function setup() {
50
+ const plugin = usePlugin() // 上下文可能丢失
51
+ }
52
+
53
+ // ✅ 模块顶层
54
+ const plugin = usePlugin()
55
+
56
+ // ❌ 缺少 .js 扩展名
57
+ import { foo } from './bar'
58
+
59
+ // ✅ 正确
60
+ import { foo } from './bar.js'
61
+
62
+ // ❌ 从内部包导入
63
+ import { Plugin } from '@zhin.js/core'
64
+
65
+ // ✅ 统一导入
66
+ import { Plugin } from 'zhin.js'
67
+ ```
68
+
69
+ ### 2. 生命周期管理
70
+
71
+ **检查项:**
72
+
73
+ | 项目 | 要求 | 严重程度 |
74
+ |------|------|----------|
75
+ | useContext 清理 | 回调返回清理函数 | 🔴 严重 |
76
+ | 定时器清理 | setInterval/setTimeout 有 clearInterval | 🔴 严重 |
77
+ | 事件监听清理 | 外部 EventEmitter 监听有移除 | 🟡 中等 |
78
+ | 连接清理 | WebSocket/HTTP 连接有断开逻辑 | 🔴 严重 |
79
+
80
+ **常见泄漏模式:**
81
+
82
+ ```typescript
83
+ // ❌ 没有清理
84
+ useContext('database', (db) => {
85
+ const timer = setInterval(() => { /* ... */ }, 1000)
86
+ // 插件卸载后 timer 仍在运行!
87
+ })
88
+
89
+ // ✅ 返回清理函数
90
+ useContext('database', (db) => {
91
+ const timer = setInterval(() => { /* ... */ }, 1000)
92
+ return () => clearInterval(timer)
93
+ })
94
+ ```
95
+
96
+ ### 3. 类型安全
97
+
98
+ **检查项:**
99
+
100
+ | 项目 | 要求 | 严重程度 |
101
+ |------|------|----------|
102
+ | 无 `any` 滥用 | 除必要的类型断言外不使用 any | 🟡 中等 |
103
+ | 类型声明完整 | Context 扩展、命令参数有类型 | 🟡 中等 |
104
+ | 严格模式 | tsconfig.json 开启 strict | 🟢 建议 |
105
+
106
+ ### 4. 安全性
107
+
108
+ **检查项:**
109
+
110
+ | 项目 | 要求 | 严重程度 |
111
+ |------|------|----------|
112
+ | 无硬编码凭据 | token/password/secret 不在源码中 | 🔴 严重 |
113
+ | 用户输入校验 | 命令参数、API 入参有校验 | 🟡 中等 |
114
+ | SQL 注入防护 | 使用参数化查询 | 🔴 严重 |
115
+ | 路径遍历防护 | 文件操作验证路径 | 🔴 严重 |
116
+ | eval/Function | 不使用 eval 或 new Function | 🔴 严重 |
117
+
118
+ ### 5. 性能
119
+
120
+ **检查项:**
121
+
122
+ | 项目 | 要求 | 严重程度 |
123
+ |------|------|----------|
124
+ | 无阻塞操作 | 不在中间件中执行同步重操作 | 🟡 中等 |
125
+ | 合理缓存 | 高频查询结果有缓存策略 | 🟢 建议 |
126
+ | 内存泄漏 | WeakMap/WeakRef 用于大量对象引用 | 🟡 中等 |
127
+ | 批量操作 | 数据库操作避免 N+1 查询 | 🟢 建议 |
128
+
129
+ ### 6. 文档与测试
130
+
131
+ **检查项:**
132
+
133
+ | 项目 | 要求 | 严重程度 |
134
+ |------|------|----------|
135
+ | README 完整 | 安装、配置、使用、命令列表 | 🔴 严重 |
136
+ | CHANGELOG | 版本变更记录 | 🟡 中等 |
137
+ | 测试存在 | 核心功能有测试 | 🔴 严重 |
138
+ | 覆盖率 | ≥ 60% statements | 🟡 中等 |
139
+
140
+ ## 审查流程
141
+
142
+ ### 第 1 步:快速扫描
143
+
144
+ ```bash
145
+ # 检查结构
146
+ ls -la src/ tests/ client/ skills/
147
+
148
+ # 检查类型
149
+ pnpm build 2>&1 | grep error
150
+
151
+ # 检查测试
152
+ pnpm test
153
+
154
+ # 检查安全关键词
155
+ grep -rn "eval\|Function(\|exec(\|execSync\|password\|secret\|token" src/
156
+ ```
157
+
158
+ ### 第 2 步:逐文件审查
159
+
160
+ 对每个源文件检查:
161
+ 1. 导入路径是否正确
162
+ 2. usePlugin/useContext 使用是否正确
163
+ 3. 资源是否有清理路径
164
+ 4. 用户输入是否有校验
165
+
166
+ ### 第 3 步:输出审查报告
167
+
168
+ 格式:
169
+
170
+ ```
171
+ ## 插件质量审查报告
172
+
173
+ ### 概要
174
+ - 插件名:xxx
175
+ - 审查文件数:N
176
+ - 问题总数:X(严重 A / 中等 B / 建议 C)
177
+
178
+ ### 🔴 严重问题
179
+ 1. [文件:行号] 问题描述 → 建议修复方式
180
+
181
+ ### 🟡 中等问题
182
+ 1. [文件:行号] 问题描述 → 建议修复方式
183
+
184
+ ### 🟢 改进建议
185
+ 1. [文件:行号] 建议内容
186
+
187
+ ### 发布就绪度
188
+ - ✅/❌ 结构规范
189
+ - ✅/❌ 生命周期安全
190
+ - ✅/❌ 类型完整
191
+ - ✅/❌ 安全无风险
192
+ - ✅/❌ 测试通过
193
+ - ✅/❌ 文档完整
194
+ ```
195
+
196
+ ## 检查清单(总结)
197
+
198
+ - [ ] usePlugin() 在模块顶层
199
+ - [ ] 导入路径使用 .js 扩展名
200
+ - [ ] 所有 useContext 回调返回清理函数
201
+ - [ ] 无硬编码凭据
202
+ - [ ] 无 eval/Function 使用
203
+ - [ ] 用户输入有校验
204
+ - [ ] tsc 编译无错误
205
+ - [ ] 测试全部通过
206
+ - [ ] 覆盖率 ≥ 60%
207
+ - [ ] README 完整
208
+ - [ ] CHANGELOG 更新
@@ -0,0 +1,274 @@
1
+ ---
2
+ name: plugin-test
3
+ description: "为 Zhin.js 插件编写和运行测试。Use when asked to write tests, add test coverage, generate test cases, or verify plugin behavior. 引导编写符合 Zhin 插件测试规范的 Vitest 测试用例。"
4
+ keywords:
5
+ - 测试
6
+ - test
7
+ - vitest
8
+ - 测试用例
9
+ - test case
10
+ - 覆盖率
11
+ - coverage
12
+ - 单元测试
13
+ - unit test
14
+ tags:
15
+ - development
16
+ - testing
17
+ - quality
18
+ ---
19
+
20
+ # Zhin 插件测试
21
+
22
+ 引导为 Zhin.js 插件编写高质量测试用例,确保功能正确、回归安全,并达到发布所需的覆盖率。
23
+
24
+ ## 适用场景
25
+
26
+ - 用户说"帮我写测试"、"增加测试覆盖率"、"测试这个命令"
27
+ - 新功能需要配套测试
28
+ - 发布前需要验证测试通过
29
+
30
+ ## 测试环境
31
+
32
+ Zhin 项目使用 **Vitest**,全局 API 已注入(`describe`、`it`、`expect`、`vi` 等)。
33
+
34
+ ```bash
35
+ # 运行测试
36
+ pnpm test # 单次运行
37
+ pnpm test:watch # 监听模式
38
+ pnpm test:coverage # 覆盖率报告
39
+ ```
40
+
41
+ ## 测试分类与模板
42
+
43
+ ### 1. 插件生命周期测试
44
+
45
+ ```typescript
46
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest'
47
+ import { Plugin } from '@zhin.js/core'
48
+
49
+ describe('MyPlugin Lifecycle', () => {
50
+ let plugin: Plugin
51
+ let root: Plugin
52
+
53
+ beforeEach(() => {
54
+ root = new Plugin('/test/root.ts')
55
+ plugin = new Plugin('/plugins/my-plugin/src/index.ts', root)
56
+ })
57
+
58
+ afterEach(async () => {
59
+ if (plugin?.started) await plugin.stop()
60
+ })
61
+
62
+ it('should create instance', () => {
63
+ expect(plugin).toBeInstanceOf(Plugin)
64
+ expect(plugin.name).toBe('my-plugin')
65
+ })
66
+
67
+ it('should start and stop', async () => {
68
+ await plugin.start()
69
+ expect(plugin.started).toBe(true)
70
+ await plugin.stop()
71
+ expect(plugin.started).toBe(false)
72
+ })
73
+
74
+ it('should emit lifecycle events', async () => {
75
+ const mounted = vi.fn()
76
+ const disposed = vi.fn()
77
+ plugin.on('mounted', mounted)
78
+ plugin.on('dispose', disposed)
79
+
80
+ await plugin.start()
81
+ expect(mounted).toHaveBeenCalled()
82
+
83
+ await plugin.stop()
84
+ expect(disposed).toHaveBeenCalled()
85
+ })
86
+ })
87
+ ```
88
+
89
+ ### 2. 命令测试
90
+
91
+ ```typescript
92
+ import { describe, it, expect } from 'vitest'
93
+ import { MessageCommand } from '@zhin.js/core'
94
+
95
+ describe('Commands', () => {
96
+ it('should parse parameters', () => {
97
+ const cmd = new MessageCommand('hello <name:text> [count:number=1]')
98
+ // 验证命令定义正确
99
+ expect(cmd.name).toBe('hello')
100
+ })
101
+
102
+ it('should execute command action', async () => {
103
+ const cmd = new MessageCommand('greet <name:text>')
104
+ .action(async (message, result) => {
105
+ return `Hello, ${result.params.name}!`
106
+ })
107
+
108
+ // 模拟消息和匹配结果
109
+ const mockMessage = { $raw: 'greet World' } as any
110
+ const mockResult = { params: { name: 'World' } } as any
111
+
112
+ // 直接调用 action 回调验证输出
113
+ const callback = cmd['_action']
114
+ if (callback) {
115
+ const output = await callback(mockMessage, mockResult)
116
+ expect(output).toBe('Hello, World!')
117
+ }
118
+ })
119
+ })
120
+ ```
121
+
122
+ ### 3. 中间件测试
123
+
124
+ ```typescript
125
+ import { describe, it, expect, vi } from 'vitest'
126
+
127
+ describe('Middleware', () => {
128
+ it('should call next in order', async () => {
129
+ const order: number[] = []
130
+
131
+ const middleware1 = async (msg: any, next: () => Promise<void>) => {
132
+ order.push(1)
133
+ await next()
134
+ order.push(4)
135
+ }
136
+ const middleware2 = async (msg: any, next: () => Promise<void>) => {
137
+ order.push(2)
138
+ await next()
139
+ order.push(3)
140
+ }
141
+
142
+ // 模拟中间件链
143
+ const mockMsg = { $raw: 'test' } as any
144
+ await middleware1(mockMsg, () => middleware2(mockMsg, async () => {}))
145
+
146
+ expect(order).toEqual([1, 2, 3, 4])
147
+ })
148
+
149
+ it('should intercept message when not calling next', async () => {
150
+ const afterSpy = vi.fn()
151
+
152
+ const filter = async (msg: any, next: () => Promise<void>) => {
153
+ if (msg.$raw.includes('spam')) return // 拦截
154
+ await next()
155
+ }
156
+
157
+ const mockMsg = { $raw: 'this is spam' } as any
158
+ await filter(mockMsg, afterSpy)
159
+
160
+ expect(afterSpy).not.toHaveBeenCalled()
161
+ })
162
+ })
163
+ ```
164
+
165
+ ### 4. 服务 / Context 测试
166
+
167
+ ```typescript
168
+ import { describe, it, expect, vi } from 'vitest'
169
+
170
+ describe('MyService', () => {
171
+ it('should initialize correctly', async () => {
172
+ // 测试服务创建逻辑(不依赖框架注入)
173
+ const service = new MyService({ port: 3000 })
174
+ expect(service.port).toBe(3000)
175
+ })
176
+
177
+ it('should cleanup on dispose', async () => {
178
+ const service = new MyService({})
179
+ const cleanupSpy = vi.spyOn(service, 'cleanup')
180
+
181
+ await service.cleanup()
182
+ expect(cleanupSpy).toHaveBeenCalled()
183
+ })
184
+ })
185
+ ```
186
+
187
+ ### 5. AI 工具测试
188
+
189
+ ```typescript
190
+ import { describe, it, expect } from 'vitest'
191
+ import { ZhinTool } from '@zhin.js/core'
192
+
193
+ describe('AI Tools', () => {
194
+ it('should build tool correctly', () => {
195
+ const tool = new ZhinTool('calculator')
196
+ .desc('计算表达式')
197
+ .param('expression', { type: 'string', description: '表达式' }, true)
198
+ .execute(async (args) => String(eval(args.expression)))
199
+
200
+ const built = tool.toTool()
201
+ expect(built.name).toBe('calculator')
202
+ expect(built.description).toBe('计算表达式')
203
+ expect(built.parameters.required).toContain('expression')
204
+ })
205
+
206
+ it('should execute tool', async () => {
207
+ const tool = new ZhinTool('add')
208
+ .desc('加法')
209
+ .param('a', { type: 'number', description: '数字a' }, true)
210
+ .param('b', { type: 'number', description: '数字b' }, true)
211
+ .execute(async ({ a, b }) => a + b)
212
+
213
+ const built = tool.toTool()
214
+ const result = await built.execute({ a: 1, b: 2 })
215
+ expect(result).toBe(3)
216
+ })
217
+ })
218
+ ```
219
+
220
+ ### 6. 定时任务测试
221
+
222
+ ```typescript
223
+ import { describe, it, expect, vi } from 'vitest'
224
+
225
+ describe('Cron Jobs', () => {
226
+ it('should define valid cron expression', () => {
227
+ // 验证 cron 表达式格式
228
+ const expression = '0 9 * * 1-5'
229
+ const parts = expression.split(' ')
230
+ expect(parts).toHaveLength(5)
231
+ })
232
+
233
+ it('should execute cron callback', async () => {
234
+ const callback = vi.fn()
235
+
236
+ // 直接测试回调逻辑
237
+ await callback()
238
+ expect(callback).toHaveBeenCalled()
239
+ })
240
+ })
241
+ ```
242
+
243
+ ## 覆盖率目标
244
+
245
+ 发布到插件市场前建议的最低覆盖率:
246
+
247
+ | 指标 | 最低 | 推荐 |
248
+ |------|------|------|
249
+ | 语句覆盖 (Statements) | 60% | 80%+ |
250
+ | 分支覆盖 (Branches) | 50% | 70%+ |
251
+ | 函数覆盖 (Functions) | 70% | 90%+ |
252
+ | 行覆盖 (Lines) | 60% | 80%+ |
253
+
254
+ ## 测试命名规范
255
+
256
+ ```
257
+ tests/
258
+ ├── index.test.ts # 插件生命周期
259
+ ├── commands.test.ts # 命令逻辑
260
+ ├── middlewares.test.ts # 中间件逻辑
261
+ ├── services.test.ts # 服务/Context 逻辑
262
+ ├── tools.test.ts # AI 工具逻辑
263
+ └── integration.test.ts # 集成测试(可选)
264
+ ```
265
+
266
+ ## 检查清单
267
+
268
+ - [ ] 每个命令有对应的参数解析和输出测试
269
+ - [ ] 中间件有正序和拦截测试
270
+ - [ ] 服务有初始化和清理测试
271
+ - [ ] AI 工具有构建和执行测试
272
+ - [ ] 所有测试通过 `pnpm test`
273
+ - [ ] 覆盖率满足发布要求
274
+ - [ ] 没有跳过(`.skip`)或仅运行(`.only`)的测试