mcp-probe-kit 3.0.24 → 3.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 (130) hide show
  1. package/README.md +755 -779
  2. package/build/index.js +38 -40
  3. package/build/lib/agents-md-template.js +32 -32
  4. package/build/lib/skill-bridge.js +12 -12
  5. package/build/resources/index.d.ts +4 -0
  6. package/build/resources/index.js +4 -0
  7. package/build/resources/tool-params-guide.d.ts +571 -0
  8. package/build/resources/tool-params-guide.js +488 -0
  9. package/build/resources/ui-ux-data/guidelines/vercel-web-interface.json +1632 -1632
  10. package/build/resources/ui-ux-data/metadata.json +30 -30
  11. package/build/resources/ui-ux-data/shadcn/blocks.json +2541 -2541
  12. package/build/resources/ui-ux-data/shadcn/components.json +997 -997
  13. package/build/resources/ui-ux-data/themes/presets.json +483 -483
  14. package/build/schemas/index.d.ts +0 -22
  15. package/build/schemas/memory-tools.d.ts +0 -22
  16. package/build/schemas/memory-tools.js +0 -14
  17. package/build/tools/analyze_project.d.ts +1 -0
  18. package/build/tools/analyze_project.js +527 -0
  19. package/build/tools/check_deps.d.ts +13 -0
  20. package/build/tools/check_deps.js +204 -0
  21. package/build/tools/code_insight.js +41 -41
  22. package/build/tools/convert.d.ts +13 -0
  23. package/build/tools/convert.js +599 -0
  24. package/build/tools/css_order.d.ts +13 -0
  25. package/build/tools/css_order.js +81 -0
  26. package/build/tools/debug.d.ts +13 -0
  27. package/build/tools/debug.js +131 -0
  28. package/build/tools/design2code.d.ts +20 -0
  29. package/build/tools/design2code.js +426 -0
  30. package/build/tools/detect_shell.d.ts +6 -0
  31. package/build/tools/detect_shell.js +151 -0
  32. package/build/tools/explain.d.ts +13 -0
  33. package/build/tools/explain.js +390 -0
  34. package/build/tools/fix.d.ts +13 -0
  35. package/build/tools/fix.js +303 -0
  36. package/build/tools/fix_bug.js +161 -161
  37. package/build/tools/gen_mock.d.ts +22 -0
  38. package/build/tools/gen_mock.js +269 -0
  39. package/build/tools/gen_skill.d.ts +13 -0
  40. package/build/tools/gen_skill.js +560 -0
  41. package/build/tools/genapi.d.ts +13 -0
  42. package/build/tools/genapi.js +174 -0
  43. package/build/tools/genchangelog.d.ts +13 -0
  44. package/build/tools/genchangelog.js +250 -0
  45. package/build/tools/gencommit.js +60 -60
  46. package/build/tools/gendoc.d.ts +13 -0
  47. package/build/tools/gendoc.js +232 -0
  48. package/build/tools/genpr.d.ts +13 -0
  49. package/build/tools/genpr.js +194 -0
  50. package/build/tools/genreadme.d.ts +13 -0
  51. package/build/tools/genreadme.js +626 -0
  52. package/build/tools/gensql.d.ts +13 -0
  53. package/build/tools/gensql.js +320 -0
  54. package/build/tools/genui.d.ts +13 -0
  55. package/build/tools/genui.js +803 -0
  56. package/build/tools/index.d.ts +0 -1
  57. package/build/tools/index.js +0 -1
  58. package/build/tools/init_component_catalog.d.ts +22 -0
  59. package/build/tools/init_component_catalog.js +809 -0
  60. package/build/tools/init_project_context.js +432 -432
  61. package/build/tools/init_setting.d.ts +13 -0
  62. package/build/tools/init_setting.js +47 -0
  63. package/build/tools/perf.d.ts +13 -0
  64. package/build/tools/perf.js +409 -0
  65. package/build/tools/render_ui.d.ts +22 -0
  66. package/build/tools/render_ui.js +384 -0
  67. package/build/tools/resolve_conflict.d.ts +13 -0
  68. package/build/tools/resolve_conflict.js +349 -0
  69. package/build/tools/security_scan.d.ts +22 -0
  70. package/build/tools/security_scan.js +323 -0
  71. package/build/tools/split.d.ts +13 -0
  72. package/build/tools/split.js +599 -0
  73. package/build/tools/start_api.d.ts +13 -0
  74. package/build/tools/start_api.js +193 -0
  75. package/build/tools/start_bugfix.js +233 -233
  76. package/build/tools/start_doc.d.ts +13 -0
  77. package/build/tools/start_doc.js +207 -0
  78. package/build/tools/start_feature.js +117 -117
  79. package/build/tools/start_product.js +1 -1
  80. package/build/tools/start_refactor.d.ts +13 -0
  81. package/build/tools/start_refactor.js +188 -0
  82. package/build/tools/start_release.d.ts +13 -0
  83. package/build/tools/start_release.js +167 -0
  84. package/build/tools/start_review.d.ts +13 -0
  85. package/build/tools/start_review.js +175 -0
  86. package/build/tools/start_ui.js +399 -399
  87. package/build/tools/ui-ux-tools.js +290 -290
  88. package/build/utils/__tests__/vercel-guidelines-sync.unit.test.js +12 -12
  89. package/build/utils/themes-sync.js +8 -8
  90. package/package.json +81 -83
  91. package/build/lib/__tests__/memory-orchestration.unit.test.js +0 -88
  92. package/build/lib/__tests__/memory-payload.unit.test.js +0 -35
  93. package/build/lib/cursor-history-client.d.ts +0 -54
  94. package/build/lib/cursor-history-client.js +0 -240
  95. package/build/tools/__tests__/cursor-history.unit.test.d.ts +0 -1
  96. package/build/tools/__tests__/cursor-history.unit.test.js +0 -38
  97. package/build/tools/cursor_read_conversation.d.ts +0 -7
  98. package/build/tools/cursor_read_conversation.js +0 -36
  99. package/docs/.mcp-probe/layout.json +0 -11
  100. package/docs/CNAME +0 -1
  101. package/docs/assets/font/MaterialSymbolsOutlined.codepoints +0 -4102
  102. package/docs/assets/font/MaterialSymbolsOutlined.ttf +0 -0
  103. package/docs/assets/font/noto-sans-sc-400.ttf +0 -0
  104. package/docs/assets/font/noto-sans-sc-700.ttf +0 -0
  105. package/docs/assets/font/noto-sans-sc-900.ttf +0 -0
  106. package/docs/assets/js/i18n.js +0 -375
  107. package/docs/assets/js/tailwind.js +0 -83
  108. package/docs/assets/logo-zh.png +0 -0
  109. package/docs/assets/logo.png +0 -0
  110. package/docs/data/tools.js +0 -523
  111. package/docs/i18n/all-tools/en.json +0 -190
  112. package/docs/i18n/all-tools/ja.json +0 -171
  113. package/docs/i18n/all-tools/ko.json +0 -171
  114. package/docs/i18n/all-tools/zh-CN.json +0 -190
  115. package/docs/i18n/en.json +0 -626
  116. package/docs/i18n/ja.json +0 -602
  117. package/docs/i18n/ko.json +0 -602
  118. package/docs/i18n/zh-CN.json +0 -626
  119. package/docs/index.html +0 -327
  120. package/docs/memory-local-setup.md +0 -315
  121. package/docs/memory-local-setup.zh-CN.md +0 -283
  122. package/docs/pages/all-tools.html +0 -515
  123. package/docs/pages/examples.html +0 -717
  124. package/docs/pages/getting-started.html +0 -964
  125. package/docs/pages/migration.html +0 -308
  126. package/docs/specs/user-auth/design.md +0 -82
  127. package/docs/specs/user-auth/requirements.md +0 -52
  128. package/docs/specs/user-auth/tasks.md +0 -55
  129. /package/build/{lib/__tests__/memory-orchestration.unit.test.d.ts → utils/design-docs-generator.d.ts} +0 -0
  130. /package/build/{lib/__tests__/memory-payload.unit.test.d.ts → utils/design-docs-generator.js} +0 -0
@@ -0,0 +1,174 @@
1
+ import { parseArgs, getString } from "../utils/parseArgs.js";
2
+ // genapi 工具实现
3
+ export async function genapi(args) {
4
+ try {
5
+ // 智能参数解析,支持自然语言输入
6
+ const parsedArgs = parseArgs(args, {
7
+ defaultValues: {
8
+ code: "",
9
+ format: "markdown",
10
+ },
11
+ primaryField: "code", // 纯文本输入默认映射到 code 字段
12
+ fieldAliases: {
13
+ code: ["source", "api", "代码", "endpoint"],
14
+ format: ["output_format", "type", "格式", "输出格式"],
15
+ },
16
+ });
17
+ const code = getString(parsedArgs.code);
18
+ const format = getString(parsedArgs.format) || "markdown"; // markdown, openapi, jsdoc
19
+ const message = `请为以下代码生成 API 文档:
20
+
21
+ 📝 **代码**:
22
+ ${code || "请提供需要生成文档的代码(函数、类、API 端点等)"}
23
+
24
+ 📖 **文档格式**:${format}
25
+
26
+ ---
27
+
28
+ 🎯 **API 文档生成指南**:
29
+
30
+ **基础信息**:
31
+ - API 名称和描述
32
+ - 版本信息
33
+ - 基础 URL
34
+
35
+ **详细文档**(每个端点/函数):
36
+
37
+ 1. **功能描述**
38
+ - 简短说明(一句话)
39
+ - 详细描述(用途、场景)
40
+
41
+ 2. **请求参数**
42
+ | 参数名 | 类型 | 必填 | 描述 | 示例 |
43
+ |--------|------|------|------|------|
44
+ | id | string | 是 | 用户 ID | "12345" |
45
+ | name | string | 否 | 用户名 | "张三" |
46
+
47
+ 3. **返回值**
48
+ - 成功响应(状态码、数据结构、示例)
49
+ - 错误响应(错误码、错误信息)
50
+
51
+ 4. **示例代码**
52
+ \`\`\`typescript
53
+ // 请求示例
54
+ const response = await fetch('/api/users/123');
55
+ const data = await response.json();
56
+
57
+ // 响应示例
58
+ {
59
+ "code": 200,
60
+ "data": {
61
+ "id": "123",
62
+ "name": "张三"
63
+ }
64
+ }
65
+ \`\`\`
66
+
67
+ 5. **注意事项**
68
+ - 权限要求
69
+ - 速率限制
70
+ - 废弃信息
71
+ - 相关链接
72
+
73
+ ---
74
+
75
+ **Markdown 格式模板**:
76
+ \`\`\`markdown
77
+ # API 文档
78
+
79
+ ## 用户管理
80
+
81
+ ### 获取用户信息
82
+
83
+ **接口地址**:\`GET /api/users/:id\`
84
+
85
+ **功能描述**:根据用户 ID 获取用户详细信息
86
+
87
+ **请求参数**:
88
+ | 参数 | 类型 | 必填 | 描述 |
89
+ |------|------|------|------|
90
+ | id | string | 是 | 用户 ID |
91
+
92
+ **返回示例**:
93
+ \`\`\`json
94
+ {
95
+ "code": 200,
96
+ "data": {
97
+ "id": "123",
98
+ "name": "张三",
99
+ "email": "zhangsan@example.com"
100
+ }
101
+ }
102
+ \`\`\`
103
+
104
+ **错误码**:
105
+ - 404: 用户不存在
106
+ - 403: 无权限访问
107
+ \`\`\`
108
+
109
+ ---
110
+
111
+ **OpenAPI 3.0 格式模板**:
112
+ \`\`\`yaml
113
+ openapi: 3.0.0
114
+ info:
115
+ title: User API
116
+ version: 1.0.0
117
+ paths:
118
+ /api/users/{id}:
119
+ get:
120
+ summary: 获取用户信息
121
+ parameters:
122
+ - name: id
123
+ in: path
124
+ required: true
125
+ schema:
126
+ type: string
127
+ responses:
128
+ '200':
129
+ description: 成功
130
+ content:
131
+ application/json:
132
+ schema:
133
+ type: object
134
+ properties:
135
+ code:
136
+ type: integer
137
+ data:
138
+ type: object
139
+ \`\`\`
140
+
141
+ ---
142
+
143
+ ---
144
+
145
+ ## ⚠️ 边界约束
146
+
147
+ - ❌ 仅输出文档,不修改业务代码
148
+ - ❌ 不执行代码或命令
149
+ - ✅ 基于现有接口定义/路由/注释推断
150
+ - ✅ 输出完整的 API 文档
151
+
152
+ 现在请根据上述代码生成完整的 API 文档。`;
153
+ return {
154
+ content: [
155
+ {
156
+ type: "text",
157
+ text: message,
158
+ },
159
+ ],
160
+ };
161
+ }
162
+ catch (error) {
163
+ const errorMessage = error instanceof Error ? error.message : String(error);
164
+ return {
165
+ content: [
166
+ {
167
+ type: "text",
168
+ text: `❌ 生成 API 文档失败: ${errorMessage}`,
169
+ },
170
+ ],
171
+ isError: true,
172
+ };
173
+ }
174
+ }
@@ -0,0 +1,13 @@
1
+ export declare function genchangelog(args: any): Promise<{
2
+ content: {
3
+ type: string;
4
+ text: string;
5
+ }[];
6
+ isError?: undefined;
7
+ } | {
8
+ content: {
9
+ type: string;
10
+ text: string;
11
+ }[];
12
+ isError: boolean;
13
+ }>;
@@ -0,0 +1,250 @@
1
+ import { parseArgs, getString } from "../utils/parseArgs.js";
2
+ // genchangelog 工具实现
3
+ export async function genchangelog(args) {
4
+ try {
5
+ // 智能参数解析,支持自然语言输入
6
+ const parsedArgs = parseArgs(args, {
7
+ defaultValues: {
8
+ version: "",
9
+ from: "",
10
+ to: "HEAD",
11
+ },
12
+ primaryField: "version", // 纯文本输入默认映射到 version 字段
13
+ fieldAliases: {
14
+ version: ["ver", "v", "版本", "版本号"],
15
+ from: ["from_tag", "start", "起始", "起始版本"],
16
+ to: ["to_tag", "end", "结束", "结束版本"],
17
+ },
18
+ });
19
+ const version = getString(parsedArgs.version);
20
+ const from = getString(parsedArgs.from);
21
+ const to = getString(parsedArgs.to) || "HEAD";
22
+ const message = `请生成项目的 CHANGELOG(变更日志):
23
+
24
+ 📝 **版本信息**:
25
+ ${version || "请提供版本号(如:v1.2.0)"}
26
+
27
+ 📋 **Commit 范围**:
28
+ 从 ${from || "上一个 tag"} 到 ${to}
29
+
30
+ ---
31
+
32
+ ## Changelog 生成步骤
33
+
34
+ ### 第一步:获取 Commit 历史
35
+
36
+ 执行以下命令:
37
+ \`\`\`bash
38
+ # 查看 commit 历史
39
+ git log ${from}..${to} --oneline --no-merges
40
+
41
+ # 查看详细信息
42
+ git log ${from}..${to} --pretty=format:"%h - %s (%an)" --no-merges
43
+
44
+ # 查看所有 tags
45
+ git tag -l
46
+
47
+ # 查看贡献者
48
+ git shortlog ${from}..${to} -sn
49
+ \`\`\`
50
+
51
+ ### 第二步:分类 Commits
52
+
53
+ 按类型分组:
54
+ - **✨ Features (feat)**:新功能
55
+ - **🐛 Bug Fixes (fix)**:Bug 修复
56
+ - **📝 Documentation (docs)**:文档变更
57
+ - **💄 Styles (style)**:代码格式
58
+ - **♻️ Refactoring (refactor)**:重构
59
+ - **⚡ Performance (perf)**:性能优化
60
+ - **✅ Tests (test)**:测试相关
61
+ - **🔧 Chores (chore)**:构建/工具变更
62
+ - **💥 BREAKING CHANGES**:破坏性变更
63
+
64
+ ### 第三步:生成 Changelog
65
+
66
+ **格式标准**:[Keep a Changelog](https://keepachangelog.com/)
67
+
68
+ \`\`\`markdown
69
+ # Changelog
70
+
71
+ All notable changes to this project will be documented in this file.
72
+
73
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
74
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
75
+
76
+ ## [版本号] - YYYY-MM-DD
77
+
78
+ ### Added(新增)
79
+ - 新功能 1 (#PR号)
80
+ - 新功能 2 by @contributor
81
+
82
+ ### Changed(变更)
83
+ - 修改的功能 1
84
+ - 修改的功能 2
85
+
86
+ ### Deprecated(废弃)
87
+ - 即将移除的功能
88
+
89
+ ### Removed(移除)
90
+ - 已移除的功能
91
+
92
+ ### Fixed(修复)
93
+ - Bug 修复 1 (#issue号)
94
+ - Bug 修复 2
95
+
96
+ ### Security(安全)
97
+ - 安全漏洞修复
98
+
99
+ ## [上一个版本] - YYYY-MM-DD
100
+
101
+ ...
102
+ \`\`\`
103
+
104
+ ---
105
+
106
+ ## Changelog 模板
107
+
108
+ \`\`\`markdown
109
+ # Changelog
110
+
111
+ ## [${version || "1.2.0"}] - ${new Date().toISOString().split('T')[0]}
112
+
113
+ ### ✨ Added
114
+ - 新增用户认证功能 (#123) [@contributor1]
115
+ - 新增数据导出功能 (#125)
116
+ - 新增邮件通知系统
117
+
118
+ ### 🔄 Changed
119
+ - 优化数据库查询性能 (#130)
120
+ - 更新 UI 设计风格
121
+ - 升级依赖包到最新版本
122
+
123
+ ### 🗑️ Deprecated
124
+ - \`oldAPI()\` 方法即将在 v2.0 中移除,请使用 \`newAPI()\`
125
+
126
+ ### ❌ Removed
127
+ - 移除了废弃的 \`legacyFeature\`
128
+ - 删除了未使用的配置项
129
+
130
+ ### 🐛 Fixed
131
+ - 修复登录页面样式错误 (#128)
132
+ - 修复数据分页显示问题 (#132)
133
+ - 修复内存泄漏问题 (#135)
134
+
135
+ ### 🔒 Security
136
+ - 修复 SQL 注入漏洞 (CVE-2024-XXXX)
137
+ - 更新依赖以修复安全漏洞
138
+
139
+ ### 💥 BREAKING CHANGES
140
+ - API 端点从 \`/api/v1/users\` 改为 \`/api/v2/users\`
141
+ - 配置文件格式从 JSON 改为 YAML
142
+ - 最低 Node.js 版本要求提升到 18.x
143
+
144
+ ### 📚 Documentation
145
+ - 更新 README 文档
146
+ - 添加 API 使用指南
147
+ - 完善贡献指南
148
+
149
+ ### 🏗️ Infrastructure
150
+ - 升级 CI/CD 流程
151
+ - 添加 Docker 支持
152
+ - 配置自动化测试
153
+
154
+ ### 👥 Contributors
155
+ 感谢以下贡献者:
156
+ - @contributor1 - 3 commits
157
+ - @contributor2 - 2 commits
158
+ - @contributor3 - 1 commit
159
+
160
+ **Full Changelog**: https://github.com/owner/repo/compare/v1.1.0...v${version || "1.2.0"}
161
+ \`\`\`
162
+
163
+ ---
164
+
165
+ ## Changelog 最佳实践
166
+
167
+ ### 内容要求
168
+
169
+ 1. **明确说明变更**
170
+ - 用户能理解的语言(避免技术术语)
171
+ - 说明影响范围
172
+ - 提供迁移指南(破坏性变更)
173
+
174
+ 2. **链接相关 Issue/PR**
175
+ - 使用 (#123) 格式
176
+ - 方便追溯详细信息
177
+
178
+ 3. **归功贡献者**
179
+ - 使用 @username 格式
180
+ - 体现团队协作
181
+
182
+ ### 版本规范
183
+
184
+ **语义化版本 (Semantic Versioning)**:
185
+ - **Major (X.0.0)**:破坏性变更
186
+ - **Minor (x.X.0)**:新功能(向后兼容)
187
+ - **Patch (x.x.X)**:Bug 修复
188
+
189
+ ### 发布流程
190
+
191
+ 1. 更新 CHANGELOG.md
192
+ 2. 更新 package.json 版本号
193
+ 3. 创建 Git tag:\`git tag -a v1.2.0 -m "Release v1.2.0"\`
194
+ 4. 推送 tag:\`git push origin v1.2.0\`
195
+ 5. 发布 GitHub Release
196
+
197
+ ---
198
+
199
+ ## 自动化工具
200
+
201
+ **推荐工具**:
202
+ - **standard-version**:自动生成 changelog
203
+ - **conventional-changelog**:基于 commit 生成
204
+ - **semantic-release**:自动发布版本
205
+
206
+ **使用示例**:
207
+ \`\`\`bash
208
+ # 安装
209
+ npm install -D standard-version
210
+
211
+ # 生成 changelog
212
+ npx standard-version
213
+
214
+ # 首次发布
215
+ npx standard-version --first-release
216
+ \`\`\`
217
+
218
+ ---
219
+
220
+ ---
221
+
222
+ ## ⚠️ 边界约束
223
+
224
+ - ❌ 仅输出 CHANGELOG 文本,不自动写入文件
225
+ - ❌ 不执行 git 命令
226
+ - ✅ 输出完整的 CHANGELOG Markdown
227
+
228
+ 现在请根据 commit 历史生成详细的 CHANGELOG.md 内容。`;
229
+ return {
230
+ content: [
231
+ {
232
+ type: "text",
233
+ text: message,
234
+ },
235
+ ],
236
+ };
237
+ }
238
+ catch (error) {
239
+ const errorMessage = error instanceof Error ? error.message : String(error);
240
+ return {
241
+ content: [
242
+ {
243
+ type: "text",
244
+ text: `❌ 生成 Changelog 失败: ${errorMessage}`,
245
+ },
246
+ ],
247
+ isError: true,
248
+ };
249
+ }
250
+ }
@@ -50,66 +50,66 @@ function buildTextGuide(changes) {
50
50
  ],
51
51
  outputs: ["一份规范说明文档,供 AI 直接据此写出最终 commit message"],
52
52
  });
53
- return `${header}请按以下规则生成 Git commit message:
54
-
55
- **定位**
56
- - 本工具返回的是说明文档,不是最终 commit message
57
- - AI 必须根据本说明和变更内容,直接写出最终提交消息
58
- - 不要重复调用 gencommit
59
- - 不要说“工具返回为空”
60
- - 不要忽略本工具约定后自行发挥
61
-
62
- **强约束**
63
- - type 和 emoji 必须使用下方固定映射,不允许自创、不允许替换
64
- - 如果语义接近多个 type,选择最贴近本次主要变更的一种,不输出多个候选
65
- - 最终必须只输出一条 commit message 本体
66
- - 除非用户明确要求,否则不要附加解释、分析过程、前缀说明、代码块外文本
67
- - 如果缺少足够变更信息,先索取变更信息;不要猜测最终 commit message
68
-
69
- **第一步:获取变更信息**
70
- ${changes ? `已提供变更内容:\n${changes}` : `
71
- 1. 执行 \`git status\` 查看修改文件
72
- 2. 执行 \`git diff\` 查看具体变更
73
- 3. 如有暂存文件,执行 \`git diff --staged\`
74
- `}
75
-
76
- **第二步:分析变更**
77
- - 识别变更类型(新功能、修复、重构等)
78
- - 选择对应 emoji
79
- - 提炼一句中文 subject
80
- - 如有必要,在 body 中说明影响模块、关键改动和原因
81
-
82
- **第三步:输出最终 commit message**
83
- - 直接输出最终结果
84
- - 不要附加“根据 gencommit 规则生成如下”这类解释
85
- - 不要输出多条候选,默认只给一条最合适的
86
- - 不要自创新的 type 或 emoji
87
- - 不要把示例原样复用到当前提交
88
-
89
- **格式**
90
- \`\`\`
91
- <type>: <emoji> <subject>
92
-
93
- <body>
94
-
95
- <footer>
96
- \`\`\`
97
-
98
- **允许的 type**
99
- ${ALLOWED_TYPES.map((item) => `- ${item.type} ${item.emoji}: ${item.when}`).join("\n")}
100
-
101
- **硬性规则**
102
- 1. type 后面加冒号和空格,再接 emoji
103
- 2. subject 使用中文,简洁明确,尽量不超过 50 字
104
- 3. body 可选,但有必要时应说明影响范围和关键改动
105
- 4. footer 可选,用于 issue / BREAKING CHANGE
106
- 5. 最终只输出 commit message 本体
107
- 6. 不允许使用固定映射之外的 type / emoji
108
- 7. \`fixed\` 与 \`fix\` 都可用,但语义都表示“修复”;若无兼容性要求,优先用 \`fixed\`
109
- 8. 若本次提交以文档、样式、测试、依赖调整为主,不要误用 \`feat\` 或 \`fixed\`
110
-
111
- **参考示例**
112
- ${EXAMPLES.map((item) => `\`\`\`gitcommit\n${item.fullMessage}\n\`\`\``).join("\n\n")}
53
+ return `${header}请按以下规则生成 Git commit message:
54
+
55
+ **定位**
56
+ - 本工具返回的是说明文档,不是最终 commit message
57
+ - AI 必须根据本说明和变更内容,直接写出最终提交消息
58
+ - 不要重复调用 gencommit
59
+ - 不要说“工具返回为空”
60
+ - 不要忽略本工具约定后自行发挥
61
+
62
+ **强约束**
63
+ - type 和 emoji 必须使用下方固定映射,不允许自创、不允许替换
64
+ - 如果语义接近多个 type,选择最贴近本次主要变更的一种,不输出多个候选
65
+ - 最终必须只输出一条 commit message 本体
66
+ - 除非用户明确要求,否则不要附加解释、分析过程、前缀说明、代码块外文本
67
+ - 如果缺少足够变更信息,先索取变更信息;不要猜测最终 commit message
68
+
69
+ **第一步:获取变更信息**
70
+ ${changes ? `已提供变更内容:\n${changes}` : `
71
+ 1. 执行 \`git status\` 查看修改文件
72
+ 2. 执行 \`git diff\` 查看具体变更
73
+ 3. 如有暂存文件,执行 \`git diff --staged\`
74
+ `}
75
+
76
+ **第二步:分析变更**
77
+ - 识别变更类型(新功能、修复、重构等)
78
+ - 选择对应 emoji
79
+ - 提炼一句中文 subject
80
+ - 如有必要,在 body 中说明影响模块、关键改动和原因
81
+
82
+ **第三步:输出最终 commit message**
83
+ - 直接输出最终结果
84
+ - 不要附加“根据 gencommit 规则生成如下”这类解释
85
+ - 不要输出多条候选,默认只给一条最合适的
86
+ - 不要自创新的 type 或 emoji
87
+ - 不要把示例原样复用到当前提交
88
+
89
+ **格式**
90
+ \`\`\`
91
+ <type>: <emoji> <subject>
92
+
93
+ <body>
94
+
95
+ <footer>
96
+ \`\`\`
97
+
98
+ **允许的 type**
99
+ ${ALLOWED_TYPES.map((item) => `- ${item.type} ${item.emoji}: ${item.when}`).join("\n")}
100
+
101
+ **硬性规则**
102
+ 1. type 后面加冒号和空格,再接 emoji
103
+ 2. subject 使用中文,简洁明确,尽量不超过 50 字
104
+ 3. body 可选,但有必要时应说明影响范围和关键改动
105
+ 4. footer 可选,用于 issue / BREAKING CHANGE
106
+ 5. 最终只输出 commit message 本体
107
+ 6. 不允许使用固定映射之外的 type / emoji
108
+ 7. \`fixed\` 与 \`fix\` 都可用,但语义都表示“修复”;若无兼容性要求,优先用 \`fixed\`
109
+ 8. 若本次提交以文档、样式、测试、依赖调整为主,不要误用 \`feat\` 或 \`fixed\`
110
+
111
+ **参考示例**
112
+ ${EXAMPLES.map((item) => `\`\`\`gitcommit\n${item.fullMessage}\n\`\`\``).join("\n\n")}
113
113
  `;
114
114
  }
115
115
  export async function gencommit(args) {
@@ -0,0 +1,13 @@
1
+ export declare function gendoc(args: any): Promise<{
2
+ content: {
3
+ type: string;
4
+ text: string;
5
+ }[];
6
+ isError?: undefined;
7
+ } | {
8
+ content: {
9
+ type: string;
10
+ text: string;
11
+ }[];
12
+ isError: boolean;
13
+ }>;