mcp-probe-kit 1.8.0 → 1.8.1
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 +44 -2
- package/docs/BEST_PRACTICES.md +9 -0
- package/docs/HOW_TO_TRIGGER.html +68 -69
- package/docs/HOW_TO_TRIGGER.md +41 -2
- package/package.json +1 -1
- package/docs/specs/add-feature/design.md +0 -608
- package/docs/specs/add-feature/requirements.md +0 -175
- package/docs/specs/add-feature/tasks.md +0 -111
- package/docs/specs/design2code/README.md +0 -0
- package/docs/specs/design2code/requirements.md +0 -0
- package/docs/specs/estimate/design.md +0 -209
- package/docs/specs/estimate/requirements.md +0 -140
- package/docs/specs/estimate/tasks.md +0 -66
- package/docs/specs/fix-bug/design.md +0 -259
- package/docs/specs/fix-bug/requirements.md +0 -132
- package/docs/specs/fix-bug/tasks.md +0 -66
- package/docs/specs/gen-mock/design.md +0 -241
- package/docs/specs/gen-mock/requirements.md +0 -137
- package/docs/specs/gen-mock/tasks.md +0 -66
- package/docs/specs/init-project-context/design.md +0 -515
- package/docs/specs/init-project-context/requirements.md +0 -144
- package/docs/specs/init-project-context/tasks.md +0 -93
- package/docs/specs/security-scan/design.md +0 -152
- package/docs/specs/security-scan/requirements.md +0 -150
- package/docs/specs/security-scan/tasks.md +0 -67
- package/docs/specs/start-bugfix/design.md +0 -42
- package/docs/specs/start-bugfix/requirements.md +0 -70
- package/docs/specs/start-bugfix/tasks.md +0 -21
- package/docs/specs/start-feature/design.md +0 -41
- package/docs/specs/start-feature/requirements.md +0 -90
- package/docs/specs/start-feature/tasks.md +0 -21
- package/docs/specs/start-review/requirements.md +0 -0
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
# 需求文档:gen_mock
|
|
2
|
-
|
|
3
|
-
## 功能概述
|
|
4
|
-
|
|
5
|
-
`gen_mock` 是一个 MCP 工具,用于根据数据结构或 API 定义生成 Mock 数据。支持多种数据格式和自定义规则。
|
|
6
|
-
|
|
7
|
-
## 术语定义
|
|
8
|
-
|
|
9
|
-
- **Mock_Data**: 模拟数据,用于测试和开发的假数据
|
|
10
|
-
- **Schema**: 数据结构定义,描述数据的字段和类型
|
|
11
|
-
- **Faker**: 假数据生成库,生成逼真的随机数据
|
|
12
|
-
- **Seed**: 随机种子,用于生成可重复的数据
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## 需求列表
|
|
17
|
-
|
|
18
|
-
### 需求 1: 根据 TypeScript 接口生成 Mock
|
|
19
|
-
|
|
20
|
-
**用户故事:** 作为开发者,我想要根据 TypeScript 接口生成 Mock 数据,以便快速进行前端开发。
|
|
21
|
-
|
|
22
|
-
#### 验收标准
|
|
23
|
-
|
|
24
|
-
1. WHEN 用户提供 TypeScript interface THEN 工具 SHALL 生成符合接口的 Mock 数据
|
|
25
|
-
2. THE 工具 SHALL 识别以下类型:
|
|
26
|
-
- 基础类型:string, number, boolean
|
|
27
|
-
- 复合类型:array, object
|
|
28
|
-
- 特殊类型:Date, enum, union
|
|
29
|
-
3. THE 工具 SHALL 根据字段名智能生成数据(如 email 生成邮箱格式)
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
### 需求 2: 根据 JSON Schema 生成 Mock
|
|
34
|
-
|
|
35
|
-
**用户故事:** 作为开发者,我想要根据 JSON Schema 生成 Mock 数据,以便测试 API。
|
|
36
|
-
|
|
37
|
-
#### 验收标准
|
|
38
|
-
|
|
39
|
-
1. WHEN 用户提供 JSON Schema THEN 工具 SHALL 生成符合 Schema 的数据
|
|
40
|
-
2. THE 工具 SHALL 支持 JSON Schema Draft-07 规范
|
|
41
|
-
3. THE 工具 SHALL 处理 required、enum、pattern 等约束
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
### 需求 3: 支持自定义生成规则
|
|
46
|
-
|
|
47
|
-
**用户故事:** 作为开发者,我想要自定义数据生成规则,以便生成符合业务场景的数据。
|
|
48
|
-
|
|
49
|
-
#### 验收标准
|
|
50
|
-
|
|
51
|
-
1. THE 工具 SHALL 支持以下自定义规则:
|
|
52
|
-
- 指定字段的固定值
|
|
53
|
-
- 指定字段的取值范围
|
|
54
|
-
- 指定字段的格式(正则)
|
|
55
|
-
- 指定数组长度
|
|
56
|
-
2. THE 工具 SHALL 支持中文数据生成
|
|
57
|
-
3. THE 工具 SHALL 支持指定 locale(zh-CN, en-US 等)
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
### 需求 4: 批量生成数据
|
|
62
|
-
|
|
63
|
-
**用户故事:** 作为开发者,我想要批量生成多条 Mock 数据,以便进行压力测试。
|
|
64
|
-
|
|
65
|
-
#### 验收标准
|
|
66
|
-
|
|
67
|
-
1. WHEN 用户指定 count 参数 THEN 工具 SHALL 生成指定数量的数据
|
|
68
|
-
2. THE 工具 SHALL 支持生成 1-1000 条数据
|
|
69
|
-
3. THE 工具 SHALL 确保批量数据的多样性
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
### 需求 5: 输出多种格式
|
|
74
|
-
|
|
75
|
-
**用户故事:** 作为开发者,我想要输出不同格式的 Mock 数据,以便适应不同使用场景。
|
|
76
|
-
|
|
77
|
-
#### 验收标准
|
|
78
|
-
|
|
79
|
-
1. THE 工具 SHALL 支持以下输出格式:
|
|
80
|
-
- JSON
|
|
81
|
-
- TypeScript 对象
|
|
82
|
-
- JavaScript 对象
|
|
83
|
-
- CSV(表格数据)
|
|
84
|
-
2. THE 工具 SHALL 默认输出 JSON 格式
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
### 需求 6: 生成关联数据
|
|
89
|
-
|
|
90
|
-
**用户故事:** 作为开发者,我想要生成有关联关系的数据,以便模拟真实的数据库场景。
|
|
91
|
-
|
|
92
|
-
#### 验收标准
|
|
93
|
-
|
|
94
|
-
1. THE 工具 SHALL 支持外键关联
|
|
95
|
-
2. THE 工具 SHALL 支持一对多、多对多关系
|
|
96
|
-
3. THE 工具 SHALL 确保关联数据的一致性
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## 非功能需求
|
|
101
|
-
|
|
102
|
-
### 性能要求
|
|
103
|
-
- 生成 100 条数据应小于 500ms
|
|
104
|
-
|
|
105
|
-
### 数据质量要求
|
|
106
|
-
- 生成的数据应符合字段语义
|
|
107
|
-
- 支持可重复生成(通过 seed)
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 输入输出规格
|
|
112
|
-
|
|
113
|
-
### 输入参数
|
|
114
|
-
|
|
115
|
-
| 参数名 | 类型 | 必填 | 默认值 | 描述 |
|
|
116
|
-
|--------|------|------|--------|------|
|
|
117
|
-
| schema | string | 是 | - | 数据结构定义(TS interface 或 JSON Schema) |
|
|
118
|
-
| count | number | 否 | 1 | 生成数量 |
|
|
119
|
-
| format | string | 否 | json | 输出格式 |
|
|
120
|
-
| locale | string | 否 | zh-CN | 语言区域 |
|
|
121
|
-
| seed | number | 否 | - | 随机种子 |
|
|
122
|
-
|
|
123
|
-
### 输出格式
|
|
124
|
-
|
|
125
|
-
```typescript
|
|
126
|
-
{
|
|
127
|
-
content: [{
|
|
128
|
-
type: "text",
|
|
129
|
-
text: "生成的 Mock 数据"
|
|
130
|
-
}]
|
|
131
|
-
}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
*文档版本: 1.0.0*
|
|
137
|
-
*创建时间: 2025-01-14*
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# 任务清单:gen_mock
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
实现 `gen_mock` MCP 工具,用于根据数据结构生成 Mock 数据。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 任务列表
|
|
10
|
-
|
|
11
|
-
### 阶段 1: 创建工具文件
|
|
12
|
-
|
|
13
|
-
- [x] 1.1 创建 `src/tools/gen_mock.ts` 文件
|
|
14
|
-
- 创建文件结构
|
|
15
|
-
- 定义接口类型
|
|
16
|
-
- 实现参数验证
|
|
17
|
-
- 实现主函数框架
|
|
18
|
-
- _需求: 1.1-1.3, 4.1-4.3_
|
|
19
|
-
|
|
20
|
-
- [x] 1.2 编写提示词模板
|
|
21
|
-
- 实现 PROMPT_TEMPLATE 常量
|
|
22
|
-
- 包含字段语义识别规则
|
|
23
|
-
- 包含类型映射表
|
|
24
|
-
- 包含输出格式模板
|
|
25
|
-
- 包含中英文数据示例
|
|
26
|
-
- _需求: 1.1-6.3_
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
### 阶段 2: 注册工具
|
|
31
|
-
|
|
32
|
-
- [x] 2.1 在 `src/tools/index.ts` 中导出工具
|
|
33
|
-
- 添加 export 语句
|
|
34
|
-
|
|
35
|
-
- [x] 2.2 在 `src/index.ts` 中注册工具
|
|
36
|
-
- 添加工具定义(name, description, inputSchema)
|
|
37
|
-
- 添加工具处理逻辑(switch case)
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
### 阶段 3: 测试验证
|
|
42
|
-
|
|
43
|
-
- [x] 3.1 编译项目
|
|
44
|
-
- 运行 `npm run build`
|
|
45
|
-
- 确保无编译错误
|
|
46
|
-
|
|
47
|
-
- [ ] 3.2 功能测试
|
|
48
|
-
- 测试 TypeScript interface 输入
|
|
49
|
-
- 测试 JSON Schema 输入
|
|
50
|
-
- 测试批量生成
|
|
51
|
-
- 测试不同输出格式
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 文件变更清单
|
|
56
|
-
|
|
57
|
-
| 文件 | 操作 | 说明 |
|
|
58
|
-
|------|------|------|
|
|
59
|
-
| src/tools/gen_mock.ts | 新建 | 工具实现 |
|
|
60
|
-
| src/tools/index.ts | 修改 | 添加导出 |
|
|
61
|
-
| src/index.ts | 修改 | 注册工具 |
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
*任务版本: 1.0.0*
|
|
66
|
-
*创建时间: 2025-01-14*
|
|
@@ -1,515 +0,0 @@
|
|
|
1
|
-
# 设计文档:init_project_context
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
`init_project_context` 工具采用"指令生成器"模式,返回详细的项目分析指南,由 AI 执行实际的分析和文档生成工作。
|
|
6
|
-
|
|
7
|
-
## 设计原则
|
|
8
|
-
|
|
9
|
-
### 1. 指令生成器模式
|
|
10
|
-
- 工具不直接操作文件系统
|
|
11
|
-
- 返回结构化的指令文本
|
|
12
|
-
- AI 根据指令执行操作
|
|
13
|
-
|
|
14
|
-
### 2. 提示词设计原则
|
|
15
|
-
- **清晰性**: 每个步骤都有明确的目标和操作
|
|
16
|
-
- **结构化**: 使用 Markdown 格式,层级分明
|
|
17
|
-
- **通用性**: 兼容多种 AI 模型
|
|
18
|
-
- **可执行性**: 每个步骤都是可操作的
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 架构设计
|
|
23
|
-
|
|
24
|
-
### 工具结构
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
src/tools/init_project_context.ts
|
|
28
|
-
├── initProjectContext(args) # 主函数
|
|
29
|
-
│ ├── 解析参数
|
|
30
|
-
│ ├── 构建指南文本
|
|
31
|
-
│ └── 返回结果
|
|
32
|
-
└── 常量定义
|
|
33
|
-
├── DEFAULT_DOCS_DIR # 默认文档目录
|
|
34
|
-
└── PROMPT_TEMPLATE # 提示词模板
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### 数据流
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
用户调用工具
|
|
41
|
-
↓
|
|
42
|
-
解析参数(docs_dir)
|
|
43
|
-
↓
|
|
44
|
-
构建指南文本(替换占位符)
|
|
45
|
-
↓
|
|
46
|
-
返回 MCP 响应
|
|
47
|
-
↓
|
|
48
|
-
AI 执行指南中的步骤
|
|
49
|
-
↓
|
|
50
|
-
生成 docs/project-context.md
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 提示词模板设计
|
|
56
|
-
|
|
57
|
-
### 模板结构
|
|
58
|
-
|
|
59
|
-
```markdown
|
|
60
|
-
# 项目上下文初始化指南
|
|
61
|
-
|
|
62
|
-
## 🎯 任务目标
|
|
63
|
-
[明确说明要完成的任务]
|
|
64
|
-
|
|
65
|
-
## 📋 执行步骤
|
|
66
|
-
[分步骤的详细指南]
|
|
67
|
-
|
|
68
|
-
### 步骤 1: [步骤名称]
|
|
69
|
-
[具体操作说明]
|
|
70
|
-
|
|
71
|
-
### 步骤 2: [步骤名称]
|
|
72
|
-
[具体操作说明]
|
|
73
|
-
|
|
74
|
-
...
|
|
75
|
-
|
|
76
|
-
## 📝 文档模板
|
|
77
|
-
[标准化的文档模板]
|
|
78
|
-
|
|
79
|
-
## ✅ 检查清单
|
|
80
|
-
[质量验证清单]
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### 提示词设计要点
|
|
84
|
-
|
|
85
|
-
#### 1. 任务目标(清晰明确)
|
|
86
|
-
```markdown
|
|
87
|
-
## 🎯 任务目标
|
|
88
|
-
|
|
89
|
-
在 `{docs_dir}/` 目录下生成 `project-context.md` 文件。
|
|
90
|
-
|
|
91
|
-
**输出文件**: `{docs_dir}/project-context.md`
|
|
92
|
-
|
|
93
|
-
**文件用途**: 记录项目的核心信息,供后续功能开发时参考。
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
#### 2. 执行步骤(结构化、可操作)
|
|
97
|
-
```markdown
|
|
98
|
-
## 📋 执行步骤
|
|
99
|
-
|
|
100
|
-
### 步骤 1: 分析技术栈
|
|
101
|
-
|
|
102
|
-
**目标**: 识别项目使用的语言、框架和工具。
|
|
103
|
-
|
|
104
|
-
**操作**:
|
|
105
|
-
1. 读取 `package.json` 文件
|
|
106
|
-
2. 从 `dependencies` 中识别框架(React、Vue、Express 等)
|
|
107
|
-
3. 从 `devDependencies` 中识别构建工具(TypeScript、Webpack 等)
|
|
108
|
-
4. 检查是否存在 `tsconfig.json`(判断是否使用 TypeScript)
|
|
109
|
-
|
|
110
|
-
**输出**: 记录以下信息
|
|
111
|
-
- 语言: JavaScript / TypeScript
|
|
112
|
-
- 框架: [识别的框架]
|
|
113
|
-
- 构建工具: [识别的工具]
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
#### 3. 文档模板(标准化、有占位符)
|
|
117
|
-
```markdown
|
|
118
|
-
## 📝 文档模板
|
|
119
|
-
|
|
120
|
-
请在 `{docs_dir}/project-context.md` 中生成以下内容:
|
|
121
|
-
|
|
122
|
-
\`\`\`markdown
|
|
123
|
-
# 项目上下文
|
|
124
|
-
|
|
125
|
-
## 项目概览
|
|
126
|
-
|
|
127
|
-
| 属性 | 值 |
|
|
128
|
-
|------|-----|
|
|
129
|
-
| 名称 | [从 package.json 的 name 字段读取] |
|
|
130
|
-
| 版本 | [从 package.json 的 version 字段读取] |
|
|
131
|
-
| 类型 | [分析得出: Web应用/API服务/CLI工具/库] |
|
|
132
|
-
| 描述 | [从 package.json 的 description 字段读取] |
|
|
133
|
-
|
|
134
|
-
## 技术栈
|
|
135
|
-
|
|
136
|
-
| 类别 | 技术 |
|
|
137
|
-
|------|------|
|
|
138
|
-
| 语言 | [JavaScript/TypeScript] |
|
|
139
|
-
| 运行时 | [Node.js/Browser/Deno] |
|
|
140
|
-
| 框架 | [识别的框架] |
|
|
141
|
-
| 构建工具 | [识别的构建工具] |
|
|
142
|
-
| 包管理器 | [npm/yarn/pnpm] |
|
|
143
|
-
|
|
144
|
-
...
|
|
145
|
-
\`\`\`
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
#### 4. 检查清单(可验证)
|
|
149
|
-
```markdown
|
|
150
|
-
## ✅ 检查清单
|
|
151
|
-
|
|
152
|
-
生成文档后,请验证以下内容:
|
|
153
|
-
|
|
154
|
-
- [ ] 文件已创建在正确的位置: `{docs_dir}/project-context.md`
|
|
155
|
-
- [ ] 项目概览信息完整(名称、版本、类型、描述)
|
|
156
|
-
- [ ] 技术栈信息准确(语言、框架、构建工具)
|
|
157
|
-
- [ ] 目录结构清晰(深度 2-3 层)
|
|
158
|
-
- [ ] 依赖列表完整(主要依赖已列出)
|
|
159
|
-
- [ ] 所有占位符都已替换为实际内容
|
|
160
|
-
- [ ] Markdown 格式正确,无语法错误
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## 完整提示词模板
|
|
166
|
-
|
|
167
|
-
```typescript
|
|
168
|
-
const PROMPT_TEMPLATE = `
|
|
169
|
-
# 项目上下文初始化指南
|
|
170
|
-
|
|
171
|
-
## 🎯 任务目标
|
|
172
|
-
|
|
173
|
-
在 \`{docs_dir}/\` 目录下生成 \`project-context.md\` 文件,记录项目的核心信息。
|
|
174
|
-
|
|
175
|
-
**输出文件**: \`{docs_dir}/project-context.md\`
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## 📋 执行步骤
|
|
180
|
-
|
|
181
|
-
请按照以下步骤分析项目并生成文档:
|
|
182
|
-
|
|
183
|
-
### 步骤 1: 分析技术栈
|
|
184
|
-
|
|
185
|
-
**目标**: 识别项目使用的语言、框架和工具。
|
|
186
|
-
|
|
187
|
-
**操作**:
|
|
188
|
-
1. 读取 \`package.json\` 文件
|
|
189
|
-
2. 从 \`dependencies\` 中识别主要框架:
|
|
190
|
-
- React、Vue、Angular → 前端框架
|
|
191
|
-
- Express、Koa、Fastify → 后端框架
|
|
192
|
-
- Next.js、Nuxt.js → 全栈框架
|
|
193
|
-
3. 从 \`devDependencies\` 中识别开发工具:
|
|
194
|
-
- typescript → TypeScript 项目
|
|
195
|
-
- webpack、vite、rollup → 构建工具
|
|
196
|
-
- jest、vitest、mocha → 测试框架
|
|
197
|
-
4. 检查配置文件:
|
|
198
|
-
- \`tsconfig.json\` → TypeScript 配置
|
|
199
|
-
- \`vite.config.js\` → Vite 项目
|
|
200
|
-
- \`webpack.config.js\` → Webpack 项目
|
|
201
|
-
|
|
202
|
-
**记录**: 语言、框架、构建工具、测试框架
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
### 步骤 2: 分析项目结构
|
|
207
|
-
|
|
208
|
-
**目标**: 理解项目的目录组织方式。
|
|
209
|
-
|
|
210
|
-
**操作**:
|
|
211
|
-
1. 列出项目根目录下的文件和文件夹
|
|
212
|
-
2. 重点关注以下目录:
|
|
213
|
-
- \`src/\` → 源代码目录
|
|
214
|
-
- \`lib/\` → 库代码目录
|
|
215
|
-
- \`tests/\` 或 \`__tests__/\` → 测试目录
|
|
216
|
-
- \`docs/\` → 文档目录
|
|
217
|
-
3. 识别入口文件:
|
|
218
|
-
- \`src/index.ts\` 或 \`src/index.js\`
|
|
219
|
-
- \`src/main.ts\` 或 \`src/main.js\`
|
|
220
|
-
- \`src/app.ts\` 或 \`src/app.js\`
|
|
221
|
-
4. 生成目录树(深度 2-3 层,忽略 node_modules)
|
|
222
|
-
|
|
223
|
-
**记录**: 目录结构、入口文件、主要模块
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
### 步骤 3: 分析编码规范
|
|
228
|
-
|
|
229
|
-
**目标**: 识别项目的代码风格和规范。
|
|
230
|
-
|
|
231
|
-
**操作**:
|
|
232
|
-
1. 检查是否存在以下配置文件:
|
|
233
|
-
- \`.eslintrc\` 或 \`.eslintrc.js\` → ESLint 配置
|
|
234
|
-
- \`.prettierrc\` 或 \`.prettierrc.js\` → Prettier 配置
|
|
235
|
-
- \`tsconfig.json\` → TypeScript 严格模式
|
|
236
|
-
2. 从现有代码中识别命名规范:
|
|
237
|
-
- 文件命名: kebab-case / camelCase / PascalCase
|
|
238
|
-
- 变量命名: camelCase
|
|
239
|
-
- 常量命名: UPPER_SNAKE_CASE
|
|
240
|
-
3. 检查 TypeScript 配置:
|
|
241
|
-
- \`strict\` 是否为 true
|
|
242
|
-
- 其他重要配置项
|
|
243
|
-
|
|
244
|
-
**记录**: 代码风格工具、命名规范、TypeScript 配置
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
### 步骤 4: 分析依赖
|
|
249
|
-
|
|
250
|
-
**目标**: 列出项目的主要依赖。
|
|
251
|
-
|
|
252
|
-
**操作**:
|
|
253
|
-
1. 从 \`package.json\` 读取 \`dependencies\`
|
|
254
|
-
2. 从 \`package.json\` 读取 \`devDependencies\`
|
|
255
|
-
3. 识别关键依赖(框架、工具库、UI 库等)
|
|
256
|
-
4. 统计依赖数量
|
|
257
|
-
|
|
258
|
-
**记录**: 主要生产依赖、主要开发依赖、依赖总数
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
### 步骤 5: 分析开发流程
|
|
263
|
-
|
|
264
|
-
**目标**: 识别项目的开发、构建、测试命令。
|
|
265
|
-
|
|
266
|
-
**操作**:
|
|
267
|
-
1. 从 \`package.json\` 读取 \`scripts\` 字段
|
|
268
|
-
2. 识别常用命令:
|
|
269
|
-
- \`dev\` 或 \`start\` → 开发启动命令
|
|
270
|
-
- \`build\` → 构建命令
|
|
271
|
-
- \`test\` → 测试命令
|
|
272
|
-
- \`lint\` → 代码检查命令
|
|
273
|
-
|
|
274
|
-
**记录**: 开发命令、构建命令、测试命令
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## 📝 文档模板
|
|
279
|
-
|
|
280
|
-
请在 \`{docs_dir}/project-context.md\` 中生成以下内容:
|
|
281
|
-
|
|
282
|
-
\`\`\`markdown
|
|
283
|
-
# 项目上下文
|
|
284
|
-
|
|
285
|
-
> 本文档由 MCP Probe Kit 的 init_project_context 工具生成,记录项目的核心信息。
|
|
286
|
-
|
|
287
|
-
## 项目概览
|
|
288
|
-
|
|
289
|
-
| 属性 | 值 |
|
|
290
|
-
|------|-----|
|
|
291
|
-
| 名称 | [从 package.json 读取] |
|
|
292
|
-
| 版本 | [从 package.json 读取] |
|
|
293
|
-
| 类型 | [Web应用 / API服务 / CLI工具 / 库 / MCP服务器] |
|
|
294
|
-
| 描述 | [从 package.json 读取] |
|
|
295
|
-
|
|
296
|
-
## 技术栈
|
|
297
|
-
|
|
298
|
-
| 类别 | 技术 |
|
|
299
|
-
|------|------|
|
|
300
|
-
| 语言 | [JavaScript / TypeScript] |
|
|
301
|
-
| 运行时 | [Node.js / Browser / Deno] |
|
|
302
|
-
| 框架 | [识别的框架,如 React、Express] |
|
|
303
|
-
| 构建工具 | [识别的工具,如 TypeScript、Webpack] |
|
|
304
|
-
| 包管理器 | [npm / yarn / pnpm] |
|
|
305
|
-
| 测试框架 | [识别的测试框架,如 Jest、Vitest] |
|
|
306
|
-
|
|
307
|
-
## 项目结构
|
|
308
|
-
|
|
309
|
-
\\\`\\\`\\\`
|
|
310
|
-
[生成目录树,深度 2-3 层]
|
|
311
|
-
[示例:]
|
|
312
|
-
project/
|
|
313
|
-
├── src/
|
|
314
|
-
│ ├── index.ts
|
|
315
|
-
│ └── tools/
|
|
316
|
-
├── tests/
|
|
317
|
-
├── docs/
|
|
318
|
-
├── package.json
|
|
319
|
-
└── tsconfig.json
|
|
320
|
-
\\\`\\\`\\\`
|
|
321
|
-
|
|
322
|
-
### 主要目录说明
|
|
323
|
-
|
|
324
|
-
| 目录 | 用途 |
|
|
325
|
-
|------|------|
|
|
326
|
-
| src/ | [源代码目录] |
|
|
327
|
-
| tests/ | [测试代码目录] |
|
|
328
|
-
| docs/ | [文档目录] |
|
|
329
|
-
|
|
330
|
-
### 入口文件
|
|
331
|
-
|
|
332
|
-
- 主入口: \`[入口文件路径]\`
|
|
333
|
-
|
|
334
|
-
## 架构模式
|
|
335
|
-
|
|
336
|
-
- **设计模式**: [识别的模式,如 MVC、组件化、服务层]
|
|
337
|
-
- **模块划分**: [主要模块说明]
|
|
338
|
-
|
|
339
|
-
## 编码规范
|
|
340
|
-
|
|
341
|
-
### 代码风格
|
|
342
|
-
|
|
343
|
-
| 工具 | 配置 |
|
|
344
|
-
|------|------|
|
|
345
|
-
| ESLint | [是否使用,配置文件] |
|
|
346
|
-
| Prettier | [是否使用,配置文件] |
|
|
347
|
-
|
|
348
|
-
### 命名规范
|
|
349
|
-
|
|
350
|
-
| 类型 | 规范 |
|
|
351
|
-
|------|------|
|
|
352
|
-
| 文件命名 | [kebab-case / camelCase / PascalCase] |
|
|
353
|
-
| 变量命名 | [camelCase] |
|
|
354
|
-
| 常量命名 | [UPPER_SNAKE_CASE] |
|
|
355
|
-
| 函数命名 | [camelCase] |
|
|
356
|
-
|
|
357
|
-
### TypeScript 配置
|
|
358
|
-
|
|
359
|
-
- strict 模式: [是 / 否]
|
|
360
|
-
- 其他重要配置: [列出]
|
|
361
|
-
|
|
362
|
-
## 依赖管理
|
|
363
|
-
|
|
364
|
-
### 主要生产依赖
|
|
365
|
-
|
|
366
|
-
| 依赖 | 用途 |
|
|
367
|
-
|------|------|
|
|
368
|
-
| [依赖名] | [用途说明] |
|
|
369
|
-
|
|
370
|
-
### 主要开发依赖
|
|
371
|
-
|
|
372
|
-
| 依赖 | 用途 |
|
|
373
|
-
|------|------|
|
|
374
|
-
| [依赖名] | [用途说明] |
|
|
375
|
-
|
|
376
|
-
### 依赖统计
|
|
377
|
-
|
|
378
|
-
- 生产依赖: [数量] 个
|
|
379
|
-
- 开发依赖: [数量] 个
|
|
380
|
-
- 总计: [数量] 个
|
|
381
|
-
|
|
382
|
-
## 开发流程
|
|
383
|
-
|
|
384
|
-
### 常用命令
|
|
385
|
-
|
|
386
|
-
| 命令 | 用途 |
|
|
387
|
-
|------|------|
|
|
388
|
-
| \`npm run dev\` | [开发启动] |
|
|
389
|
-
| \`npm run build\` | [构建] |
|
|
390
|
-
| \`npm test\` | [测试] |
|
|
391
|
-
| \`npm run lint\` | [代码检查] |
|
|
392
|
-
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
*生成时间: [当前时间]*
|
|
396
|
-
*生成工具: MCP Probe Kit - init_project_context*
|
|
397
|
-
\`\`\`
|
|
398
|
-
|
|
399
|
-
---
|
|
400
|
-
|
|
401
|
-
## ✅ 检查清单
|
|
402
|
-
|
|
403
|
-
生成文档后,请验证以下内容:
|
|
404
|
-
|
|
405
|
-
- [ ] 文件已创建: \`{docs_dir}/project-context.md\`
|
|
406
|
-
- [ ] 项目概览完整(名称、版本、类型、描述都已填写)
|
|
407
|
-
- [ ] 技术栈准确(语言、框架、构建工具正确识别)
|
|
408
|
-
- [ ] 目录结构清晰(树形结构正确,深度适当)
|
|
409
|
-
- [ ] 入口文件正确(主入口文件已识别)
|
|
410
|
-
- [ ] 编码规范完整(ESLint、Prettier、命名规范已记录)
|
|
411
|
-
- [ ] 依赖列表完整(主要依赖已列出并说明用途)
|
|
412
|
-
- [ ] 开发命令正确(dev、build、test 命令已记录)
|
|
413
|
-
- [ ] 所有占位符已替换(没有 [xxx] 格式的占位符)
|
|
414
|
-
- [ ] Markdown 格式正确(表格、代码块格式正确)
|
|
415
|
-
|
|
416
|
-
---
|
|
417
|
-
|
|
418
|
-
## 📌 注意事项
|
|
419
|
-
|
|
420
|
-
1. **如果某项信息无法获取**,请填写 "未配置" 或 "无",不要留空
|
|
421
|
-
2. **目录树生成时**,忽略 \`node_modules\`、\`.git\`、\`dist\`、\`build\` 等目录
|
|
422
|
-
3. **依赖说明**,只列出主要依赖(前 10 个),其他可省略
|
|
423
|
-
4. **时间格式**,使用 ISO 格式或本地格式均可
|
|
424
|
-
|
|
425
|
-
---
|
|
426
|
-
|
|
427
|
-
*指南版本: 1.0.0*
|
|
428
|
-
`;
|
|
429
|
-
```
|
|
430
|
-
|
|
431
|
-
---
|
|
432
|
-
|
|
433
|
-
## 接口设计
|
|
434
|
-
|
|
435
|
-
### 函数签名
|
|
436
|
-
|
|
437
|
-
```typescript
|
|
438
|
-
interface InitProjectContextArgs {
|
|
439
|
-
docs_dir?: string; // 默认 "docs"
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
interface MCPResponse {
|
|
443
|
-
content: Array<{
|
|
444
|
-
type: "text";
|
|
445
|
-
text: string;
|
|
446
|
-
}>;
|
|
447
|
-
isError?: boolean;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
async function initProjectContext(args: InitProjectContextArgs): Promise<MCPResponse>
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
### 实现伪代码
|
|
454
|
-
|
|
455
|
-
```typescript
|
|
456
|
-
export async function initProjectContext(args: any): Promise<MCPResponse> {
|
|
457
|
-
try {
|
|
458
|
-
// 1. 解析参数
|
|
459
|
-
const docsDir = args?.docs_dir || "docs";
|
|
460
|
-
|
|
461
|
-
// 2. 构建指南文本(替换占位符)
|
|
462
|
-
const guide = PROMPT_TEMPLATE
|
|
463
|
-
.replace(/{docs_dir}/g, docsDir);
|
|
464
|
-
|
|
465
|
-
// 3. 返回结果
|
|
466
|
-
return {
|
|
467
|
-
content: [{
|
|
468
|
-
type: "text",
|
|
469
|
-
text: guide
|
|
470
|
-
}]
|
|
471
|
-
};
|
|
472
|
-
} catch (error) {
|
|
473
|
-
return {
|
|
474
|
-
content: [{
|
|
475
|
-
type: "text",
|
|
476
|
-
text: `❌ 初始化项目上下文失败: ${error}`
|
|
477
|
-
}],
|
|
478
|
-
isError: true
|
|
479
|
-
};
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
---
|
|
485
|
-
|
|
486
|
-
## 测试用例
|
|
487
|
-
|
|
488
|
-
### 测试 1: 默认参数
|
|
489
|
-
|
|
490
|
-
```typescript
|
|
491
|
-
// 输入
|
|
492
|
-
initProjectContext({})
|
|
493
|
-
|
|
494
|
-
// 期望输出
|
|
495
|
-
// - 返回包含 "docs/project-context.md" 的指南
|
|
496
|
-
// - 指南包含所有必要的步骤
|
|
497
|
-
// - 指南包含文档模板
|
|
498
|
-
// - 指南包含检查清单
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
### 测试 2: 自定义目录
|
|
502
|
-
|
|
503
|
-
```typescript
|
|
504
|
-
// 输入
|
|
505
|
-
initProjectContext({ docs_dir: "documentation" })
|
|
506
|
-
|
|
507
|
-
// 期望输出
|
|
508
|
-
// - 返回包含 "documentation/project-context.md" 的指南
|
|
509
|
-
// - 所有路径都使用 "documentation" 而不是 "docs"
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
---
|
|
513
|
-
|
|
514
|
-
*设计版本: 1.0.0*
|
|
515
|
-
*创建时间: 2025-01-14*
|