mcp-probe-kit 3.6.0 → 3.6.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.
@@ -1,5 +1,8 @@
1
1
  import { parseArgs, getString } from "../utils/parseArgs.js";
2
2
  import { okStructured } from "../lib/response.js";
3
+ import { ensureMcpProbeKitBootstrap } from "../lib/workflow-skill-installer.js";
4
+ import { MCP_PROBE_SKILL_REL_PATH } from "../lib/workflow-skill-template.js";
5
+ import { resolveWorkspaceRoot } from "../lib/workspace-root.js";
3
6
  /**
4
7
  * init_project 工具
5
8
  *
@@ -13,174 +16,183 @@ export async function initProject(args) {
13
16
  defaultValues: {
14
17
  input: "",
15
18
  project_name: "新项目",
19
+ project_root: "",
16
20
  },
17
21
  primaryField: "input", // 纯文本输入默认映射到 input 字段
18
22
  fieldAliases: {
19
23
  input: ["requirement", "description", "需求", "项目需求"],
20
24
  project_name: ["name", "project", "项目名", "项目名称"],
25
+ project_root: ["root", "path", "项目路径"],
21
26
  },
22
27
  });
23
28
  const input = getString(parsedArgs.input);
24
29
  const projectName = getString(parsedArgs.project_name) || "新项目";
30
+ const projectRoot = resolveWorkspaceRoot(getString(parsedArgs.project_root));
31
+ const bootstrap = ensureMcpProbeKitBootstrap(projectRoot);
25
32
  const featureSlug = projectName.toLowerCase().replace(/\s+/g, '-');
26
- const message = `你需要按照 Spec-Driven Development(规范驱动开发)的方式初始化项目,参考 https://github.com/github/spec-kit 的工作流程。
27
-
28
- 📋 **项目需求**:
29
- ${input}
30
-
31
- 🎯 **初始化步骤**:
32
-
33
- **第一步:创建项目基础结构**
34
- 在当前工作区创建以下目录和文件:
35
-
36
- \`\`\`
37
- .
38
- ├── docs/
39
- │ ├── project-context.md # 项目上下文(技术栈、架构、规范)
40
- │ ├── constitution.md # 项目宪法(核心原则和约束)
41
- │ └── specs/
42
- │ └── ${featureSlug}/
43
- ├── requirements.md # 需求文档(EARS 格式)
44
- ├── design.md # 设计文档
45
- ├── tasks.md # 任务分解
46
- └── research.md # 技术调研
47
- ├── scripts/
48
- ├── check-prerequisites.sh
49
- └── setup.sh
50
- └── src/ # 源代码目录
51
- \`\`\`
52
-
53
- **第二步:生成 project-context.md**
54
- \`docs/project-context.md\` 中记录项目的核心信息:
55
- - 项目概览(名称、版本、类型、描述)
56
- - 技术栈(语言、框架、构建工具、测试框架)
57
- - 项目结构(目录说明、入口文件)
58
- - 架构模式(设计模式、模块划分)
59
- - 编码规范(代码风格、命名规范)
60
- - 依赖管理(主要依赖列表)
61
- - 开发流程(常用命令)
62
-
63
- **第三步:生成 constitution.md**
64
- \`docs/constitution.md\` 中定义项目的核心原则:
65
- - 代码风格规范
66
- - 架构原则
67
- - 安全准则
68
- - 测试要求
69
- - 文档标准
70
-
71
- **第四步:生成 requirements.md(需求文档)**
72
- \`docs/specs/${featureSlug}/requirements.md\` 中详细描述:
73
- - 功能概述
74
- - 术语定义
75
- - 需求列表(使用 EARS 格式)
76
- - 用户故事(As a... I want... So that...)
77
- - 验收标准(WHEN/WHILE/IF...THEN...SHALL)
78
- - 非功能需求(性能、安全、兼容性)
79
- - 依赖关系
80
-
81
- **EARS 格式说明**:
82
- | 模式 | 格式 | 适用场景 |
83
- |------|------|----------|
84
- | Ubiquitous | THE [system] SHALL [response] | 始终适用的需求 |
85
- | Event-driven | WHEN [trigger], THE [system] SHALL [response] | 事件触发的需求 |
86
- | State-driven | WHILE [condition], THE [system] SHALL [response] | 状态相关的需求 |
87
- | Unwanted | IF [condition], THEN THE [system] SHALL [response] | 异常处理需求 |
88
-
89
- **第五步:生成 design.md(设计文档)**
90
- \`docs/specs/${featureSlug}/design.md\` 中描述:
91
- - 技术方案(技术选型及理由)
92
- - 架构设计(系统架构图)
93
- - 数据模型(数据结构定义)
94
- - API 设计(接口定义)
95
- - 文件结构(新增/修改的文件)
96
- - 设计决策(重要决策及理由)
97
- - 风险评估
98
-
99
- **第六步:生成 research.md(技术调研)**
100
- \`docs/specs/${featureSlug}/research.md\` 中记录:
101
- - 技术栈调研结果
102
- - 版本兼容性确认
103
- - 潜在风险识别
104
- - 最佳实践记录
105
- - 参考文档链接
106
-
107
- **第七步:生成 tasks.md(任务分解)**
108
- \`docs/specs/${featureSlug}/tasks.md\` 中分解任务:
109
-
110
- \`\`\`markdown
111
- # 任务清单:${projectName}
112
-
113
- ## 概述
114
- 实现 ${projectName} 的任务分解。
115
-
116
- ---
117
-
118
- ## 任务列表
119
-
120
- ### 阶段 1: 项目初始化
121
- - [ ] 1.1 搭建项目骨架
122
- - 创建目录结构
123
- - 初始化 package.json
124
- - _需求: 1.1_
125
-
126
- - [ ] 1.2 配置开发环境
127
- - 配置 TypeScript/ESLint/Prettier
128
- - _需求: 1.1_
129
-
130
- ### 阶段 2: 核心功能实现
131
- - [ ] 2.1 实现数据模型
132
- - 定义数据结构
133
- - _需求: 2.1_
134
-
135
- - [ ] 2.2 实现业务逻辑
136
- - 核心功能开发
137
- - 依赖: 任务 2.1
138
- - _需求: 2.2_
139
-
140
- ### 阶段 3: 集成测试
141
- - [ ] 3.1 编写测试用例
142
- - 单元测试
143
- - 集成测试
144
- - _需求: 3.1_
145
-
146
- ---
147
-
148
- ## 检查点
149
- - [ ] 阶段 1 完成后:项目可运行
150
- - [ ] 阶段 2 完成后:核心功能可用
151
- - [ ] 阶段 3 完成后:测试通过
152
-
153
- ---
154
-
155
- ## 文件变更清单
156
- | 文件 | 操作 | 说明 |
157
- |------|------|------|
158
- | src/index.ts | 新建 | 入口文件 |
159
- | package.json | 新建 | 项目配置 |
160
-
161
- ---
162
-
163
- **标记说明**:
164
- - [P]: 可以并行执行的任务
165
- - 依赖: 必须在指定任务完成后才能开始
166
- - _需求: x.x_: 关联的需求编号
167
- \`\`\`
168
-
169
- **第八步:生成辅助脚本**
170
- 创建项目管理脚本:
171
- - \`scripts/check-prerequisites.sh\`: 检查环境依赖
172
- - \`scripts/setup.sh\`: 自动化项目初始化
173
-
174
- 📝 **注意事项**:
175
- 1. 所有文档统一放在 \`docs/\` 目录下
176
- 2. 功能规格放在 \`docs/specs/{feature-name}/\` 目录
177
- 3. 所有文件使用 Markdown 格式,保持清晰的结构
178
- 4. 遵循项目 constitution 中定义的原则
179
- 5. 任务分解要足够细致,每个任务应该在 2-4 小时内完成
180
- 6. 标记清楚任务之间的依赖关系
181
- 7. 识别可以并行执行的任务以优化开发效率
182
-
183
- 🚀 **开始执行**:
33
+ const message = `你需要按照 Spec-Driven Development(规范驱动开发)的方式初始化项目,参考 https://github.com/github/spec-kit 的工作流程。
34
+
35
+ 📋 **项目需求**:
36
+ ${input}
37
+
38
+ 📌 **MCP Skill 已同步**(项目根: \`${projectRoot}\`):
39
+ - \`${MCP_PROBE_SKILL_REL_PATH}\`${bootstrap.skill.created ? "(已创建)" : bootstrap.skill.updated ? "(已升级)" : "(已是最新)"}
40
+ - \`${bootstrap.agentsMd.path}\`${bootstrap.agentsMd.created ? "(已创建)" : bootstrap.agentsMd.updated ? "(已更新)" : ""}
41
+ ${bootstrap.workspaceWarning ? `\n⚠️ ${bootstrap.workspaceWarning}\n` : ""}
42
+
43
+ 🎯 **初始化步骤**:
44
+
45
+ **第一步:创建项目基础结构**
46
+ 在当前工作区创建以下目录和文件:
47
+
48
+ \`\`\`
49
+ .
50
+ ├── docs/
51
+ ├── project-context.md # 项目上下文(技术栈、架构、规范)
52
+ ├── constitution.md # 项目宪法(核心原则和约束)
53
+ └── specs/
54
+ │ └── ${featureSlug}/
55
+ ├── requirements.md # 需求文档(EARS 格式)
56
+ ├── design.md # 设计文档
57
+ │ ├── tasks.md # 任务分解
58
+ │ └── research.md # 技术调研
59
+ ├── scripts/
60
+ │ ├── check-prerequisites.sh
61
+ │ └── setup.sh
62
+ └── src/ # 源代码目录
63
+ \`\`\`
64
+
65
+ **第二步:生成 project-context.md**
66
+ 在 \`docs/project-context.md\` 中记录项目的核心信息:
67
+ - 项目概览(名称、版本、类型、描述)
68
+ - 技术栈(语言、框架、构建工具、测试框架)
69
+ - 项目结构(目录说明、入口文件)
70
+ - 架构模式(设计模式、模块划分)
71
+ - 编码规范(代码风格、命名规范)
72
+ - 依赖管理(主要依赖列表)
73
+ - 开发流程(常用命令)
74
+
75
+ **第三步:生成 constitution.md**
76
+ \`docs/constitution.md\` 中定义项目的核心原则:
77
+ - 代码风格规范
78
+ - 架构原则
79
+ - 安全准则
80
+ - 测试要求
81
+ - 文档标准
82
+
83
+ **第四步:生成 requirements.md(需求文档)**
84
+ \`docs/specs/${featureSlug}/requirements.md\` 中详细描述:
85
+ - 功能概述
86
+ - 术语定义
87
+ - 需求列表(使用 EARS 格式)
88
+ - 用户故事(As a... I want... So that...)
89
+ - 验收标准(WHEN/WHILE/IF...THEN...SHALL)
90
+ - 非功能需求(性能、安全、兼容性)
91
+ - 依赖关系
92
+
93
+ **EARS 格式说明**:
94
+ | 模式 | 格式 | 适用场景 |
95
+ |------|------|----------|
96
+ | Ubiquitous | THE [system] SHALL [response] | 始终适用的需求 |
97
+ | Event-driven | WHEN [trigger], THE [system] SHALL [response] | 事件触发的需求 |
98
+ | State-driven | WHILE [condition], THE [system] SHALL [response] | 状态相关的需求 |
99
+ | Unwanted | IF [condition], THEN THE [system] SHALL [response] | 异常处理需求 |
100
+
101
+ **第五步:生成 design.md(设计文档)**
102
+ \`docs/specs/${featureSlug}/design.md\` 中描述:
103
+ - 技术方案(技术选型及理由)
104
+ - 架构设计(系统架构图)
105
+ - 数据模型(数据结构定义)
106
+ - API 设计(接口定义)
107
+ - 文件结构(新增/修改的文件)
108
+ - 设计决策(重要决策及理由)
109
+ - 风险评估
110
+
111
+ **第六步:生成 research.md(技术调研)**
112
+ \`docs/specs/${featureSlug}/research.md\` 中记录:
113
+ - 技术栈调研结果
114
+ - 版本兼容性确认
115
+ - 潜在风险识别
116
+ - 最佳实践记录
117
+ - 参考文档链接
118
+
119
+ **第七步:生成 tasks.md(任务分解)**
120
+ \`docs/specs/${featureSlug}/tasks.md\` 中分解任务:
121
+
122
+ \`\`\`markdown
123
+ # 任务清单:${projectName}
124
+
125
+ ## 概述
126
+ 实现 ${projectName} 的任务分解。
127
+
128
+ ---
129
+
130
+ ## 任务列表
131
+
132
+ ### 阶段 1: 项目初始化
133
+ - [ ] 1.1 搭建项目骨架
134
+ - 创建目录结构
135
+ - 初始化 package.json
136
+ - _需求: 1.1_
137
+
138
+ - [ ] 1.2 配置开发环境
139
+ - 配置 TypeScript/ESLint/Prettier
140
+ - _需求: 1.1_
141
+
142
+ ### 阶段 2: 核心功能实现
143
+ - [ ] 2.1 实现数据模型
144
+ - 定义数据结构
145
+ - _需求: 2.1_
146
+
147
+ - [ ] 2.2 实现业务逻辑
148
+ - 核心功能开发
149
+ - 依赖: 任务 2.1
150
+ - _需求: 2.2_
151
+
152
+ ### 阶段 3: 集成测试
153
+ - [ ] 3.1 编写测试用例
154
+ - 单元测试
155
+ - 集成测试
156
+ - _需求: 3.1_
157
+
158
+ ---
159
+
160
+ ## 检查点
161
+ - [ ] 阶段 1 完成后:项目可运行
162
+ - [ ] 阶段 2 完成后:核心功能可用
163
+ - [ ] 阶段 3 完成后:测试通过
164
+
165
+ ---
166
+
167
+ ## 文件变更清单
168
+ | 文件 | 操作 | 说明 |
169
+ |------|------|------|
170
+ | src/index.ts | 新建 | 入口文件 |
171
+ | package.json | 新建 | 项目配置 |
172
+
173
+ ---
174
+
175
+ **标记说明**:
176
+ - [P]: 可以并行执行的任务
177
+ - 依赖: 必须在指定任务完成后才能开始
178
+ - _需求: x.x_: 关联的需求编号
179
+ \`\`\`
180
+
181
+ **第八步:生成辅助脚本**
182
+ 创建项目管理脚本:
183
+ - \`scripts/check-prerequisites.sh\`: 检查环境依赖
184
+ - \`scripts/setup.sh\`: 自动化项目初始化
185
+
186
+ 📝 **注意事项**:
187
+ 1. 所有文档统一放在 \`docs/\` 目录下
188
+ 2. 功能规格放在 \`docs/specs/{feature-name}/\` 目录
189
+ 3. 所有文件使用 Markdown 格式,保持清晰的结构
190
+ 4. 遵循项目 constitution 中定义的原则
191
+ 5. 任务分解要足够细致,每个任务应该在 2-4 小时内完成
192
+ 6. 标记清楚任务之间的依赖关系
193
+ 7. 识别可以并行执行的任务以优化开发效率
194
+
195
+ 🚀 **开始执行**:
184
196
  现在请按照上述步骤创建项目结构和所有必需的文档。`;
185
197
  // 创建结构化数据对象
186
198
  const structuredData = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-probe-kit",
3
- "version": "3.6.0",
3
+ "version": "3.6.1",
4
4
  "description": "AI-Powered Development Toolkit - MCP Server with 30 tools covering code quality, development efficiency, project management, and UI/UX design. Features: Structured Output, Workflow Orchestration, MCP Skill auto-sync, UI/UX Pro Max, and Requirements Interview.",
5
5
  "mcpName": "io.github.mybolide/mcp-probe-kit",
6
6
  "type": "module",