mcp-probe-kit 3.1.0 → 3.3.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 (119) hide show
  1. package/README.md +15 -5
  2. package/build/index.js +5 -2
  3. package/build/lib/__tests__/memory-orchestration.unit.test.js +88 -0
  4. package/build/lib/__tests__/memory-payload.unit.test.js +35 -0
  5. package/build/lib/__tests__/quality-constraints.unit.test.d.ts +1 -0
  6. package/build/lib/__tests__/quality-constraints.unit.test.js +54 -0
  7. package/build/lib/__tests__/spec-validator.unit.test.d.ts +1 -0
  8. package/build/lib/__tests__/spec-validator.unit.test.js +147 -0
  9. package/build/lib/agents-md-template.js +32 -32
  10. package/build/lib/cursor-history-client.d.ts +54 -0
  11. package/build/lib/cursor-history-client.js +240 -0
  12. package/build/lib/memory-orchestration.js +29 -8
  13. package/build/lib/quality-constraints.d.ts +54 -0
  14. package/build/lib/quality-constraints.js +155 -0
  15. package/build/lib/skill-bridge.js +12 -12
  16. package/build/lib/spec-validator.d.ts +36 -0
  17. package/build/lib/spec-validator.js +116 -0
  18. package/build/lib/template-loader.js +223 -61
  19. package/build/lib/tool-annotations.d.ts +30 -0
  20. package/build/lib/tool-annotations.js +55 -0
  21. package/build/lib/toolset-manager.js +2 -0
  22. package/build/resources/ui-ux-data/guidelines/vercel-web-interface.json +1632 -1632
  23. package/build/resources/ui-ux-data/metadata.json +30 -30
  24. package/build/resources/ui-ux-data/shadcn/blocks.json +2541 -2541
  25. package/build/resources/ui-ux-data/shadcn/components.json +997 -997
  26. package/build/resources/ui-ux-data/themes/presets.json +483 -483
  27. package/build/schemas/index.d.ts +22 -0
  28. package/build/schemas/project-tools.d.ts +22 -0
  29. package/build/schemas/project-tools.js +23 -0
  30. package/build/tools/__tests__/cursor-history.unit.test.d.ts +1 -0
  31. package/build/tools/__tests__/cursor-history.unit.test.js +38 -0
  32. package/build/tools/check_spec.d.ts +7 -0
  33. package/build/tools/check_spec.js +81 -0
  34. package/build/tools/code_insight.js +41 -41
  35. package/build/tools/code_review.js +11 -4
  36. package/build/tools/cursor_read_conversation.d.ts +7 -0
  37. package/build/tools/cursor_read_conversation.js +36 -0
  38. package/build/tools/fix_bug.js +161 -161
  39. package/build/tools/gencommit.js +60 -60
  40. package/build/tools/index.d.ts +1 -0
  41. package/build/tools/index.js +1 -0
  42. package/build/tools/init_project_context.js +432 -432
  43. package/build/tools/start_bugfix.js +21 -10
  44. package/build/tools/start_feature.js +46 -11
  45. package/build/tools/start_product.js +1 -1
  46. package/build/tools/start_ui.js +44 -13
  47. package/build/tools/ui-ux-tools.d.ts +3 -0
  48. package/build/tools/ui-ux-tools.js +302 -290
  49. package/build/utils/__tests__/vercel-guidelines-sync.unit.test.js +12 -12
  50. package/build/utils/design-reasoning-engine.d.ts +2 -0
  51. package/build/utils/design-reasoning-engine.js +3 -0
  52. package/build/utils/themes-sync.js +8 -8
  53. package/package.json +4 -3
  54. package/build/resources/index.d.ts +0 -4
  55. package/build/resources/index.js +0 -4
  56. package/build/resources/tool-params-guide.d.ts +0 -571
  57. package/build/resources/tool-params-guide.js +0 -488
  58. package/build/tools/analyze_project.d.ts +0 -1
  59. package/build/tools/analyze_project.js +0 -527
  60. package/build/tools/check_deps.d.ts +0 -13
  61. package/build/tools/check_deps.js +0 -204
  62. package/build/tools/convert.d.ts +0 -13
  63. package/build/tools/convert.js +0 -599
  64. package/build/tools/css_order.d.ts +0 -13
  65. package/build/tools/css_order.js +0 -81
  66. package/build/tools/debug.d.ts +0 -13
  67. package/build/tools/debug.js +0 -131
  68. package/build/tools/design2code.d.ts +0 -20
  69. package/build/tools/design2code.js +0 -426
  70. package/build/tools/detect_shell.d.ts +0 -6
  71. package/build/tools/detect_shell.js +0 -151
  72. package/build/tools/explain.d.ts +0 -13
  73. package/build/tools/explain.js +0 -390
  74. package/build/tools/fix.d.ts +0 -13
  75. package/build/tools/fix.js +0 -303
  76. package/build/tools/gen_mock.d.ts +0 -22
  77. package/build/tools/gen_mock.js +0 -269
  78. package/build/tools/gen_skill.d.ts +0 -13
  79. package/build/tools/gen_skill.js +0 -560
  80. package/build/tools/genapi.d.ts +0 -13
  81. package/build/tools/genapi.js +0 -174
  82. package/build/tools/genchangelog.d.ts +0 -13
  83. package/build/tools/genchangelog.js +0 -250
  84. package/build/tools/gendoc.d.ts +0 -13
  85. package/build/tools/gendoc.js +0 -232
  86. package/build/tools/genpr.d.ts +0 -13
  87. package/build/tools/genpr.js +0 -194
  88. package/build/tools/genreadme.d.ts +0 -13
  89. package/build/tools/genreadme.js +0 -626
  90. package/build/tools/gensql.d.ts +0 -13
  91. package/build/tools/gensql.js +0 -320
  92. package/build/tools/genui.d.ts +0 -13
  93. package/build/tools/genui.js +0 -803
  94. package/build/tools/init_component_catalog.d.ts +0 -22
  95. package/build/tools/init_component_catalog.js +0 -809
  96. package/build/tools/init_setting.d.ts +0 -13
  97. package/build/tools/init_setting.js +0 -47
  98. package/build/tools/perf.d.ts +0 -13
  99. package/build/tools/perf.js +0 -409
  100. package/build/tools/render_ui.d.ts +0 -22
  101. package/build/tools/render_ui.js +0 -384
  102. package/build/tools/resolve_conflict.d.ts +0 -13
  103. package/build/tools/resolve_conflict.js +0 -349
  104. package/build/tools/security_scan.d.ts +0 -22
  105. package/build/tools/security_scan.js +0 -323
  106. package/build/tools/split.d.ts +0 -13
  107. package/build/tools/split.js +0 -599
  108. package/build/tools/start_api.d.ts +0 -13
  109. package/build/tools/start_api.js +0 -193
  110. package/build/tools/start_doc.d.ts +0 -13
  111. package/build/tools/start_doc.js +0 -207
  112. package/build/tools/start_refactor.d.ts +0 -13
  113. package/build/tools/start_refactor.js +0 -188
  114. package/build/tools/start_release.d.ts +0 -13
  115. package/build/tools/start_release.js +0 -167
  116. package/build/tools/start_review.d.ts +0 -13
  117. package/build/tools/start_review.js +0 -175
  118. /package/build/{utils/design-docs-generator.d.ts → lib/__tests__/memory-orchestration.unit.test.d.ts} +0 -0
  119. /package/build/{utils/design-docs-generator.js → lib/__tests__/memory-payload.unit.test.d.ts} +0 -0
@@ -10,167 +10,167 @@ import { parseArgs, getString } from "../utils/parseArgs.js";
10
10
  import { okStructured } from "../lib/response.js";
11
11
  import { renderGuidanceHeader } from "../lib/guidance.js";
12
12
  import { handleToolError } from "../utils/error-handler.js";
13
- const PROMPT_TEMPLATE = `# TBP 8 步 Bug 真因分析与修复指南
14
-
15
- ## 🐛 Bug 信息
16
-
17
- **错误信息**:
18
- \`\`\`
19
- {error_message}
20
- \`\`\`
21
-
22
- {stack_trace_section}
23
-
24
- {reproduce_section}
25
-
26
- {behavior_section}
27
-
28
- {code_context_section}
29
-
30
- ---
31
-
32
- ## TBP-1 现象
33
-
34
- 先把用户可见的问题定义准确,避免“坏了/卡了/有问题”这类泛化描述。
35
-
36
- 要求:
37
- 1. 用 1-2 句定义现象
38
- 2. 明确是“慢”“停滞”“失败”“回归”还是“未生效”
39
- 3. 如果提供了期望/实际行为,必须纳入现象定义
40
-
41
- ## TBP-2 时间线
42
-
43
- 基于现有信息复盘事件顺序,至少回答:
44
- 1. 什么时候开始
45
- 2. 中间发生了什么
46
- 3. 最后停在什么状态
47
-
48
- 优先记录:
49
- - 用户输入 / 复现步骤
50
- - first progress / first error
51
- - tool call / stack / stop / timeout
52
- - 关键文件或模块
53
-
54
- ## TBP-3 不是这个
55
-
56
- 列出当前应优先排除的错误方向,并说明需要什么证据排除。
57
-
58
- 常见排除项:
59
- - 不是单纯网络慢
60
- - 不是前端展示截断
61
- - 不是消息没转发
62
- - 不是纯粹的超时表象
63
- - 不是用户输入丢失
64
-
65
- ## TBP-4 共同模式
66
-
67
- 对比成功/失败样本,找出从哪一步开始分叉。
68
-
69
- 重点检查:
70
- - 传输层
71
- - 会话状态机
72
- - 完成态判定
73
- - 工具执行
74
- - 文件写入
75
- - 重试策略
76
-
77
- ## TBP-5 边界
78
-
79
- 明确指出问题失控落在哪一层:
80
- - 上游模型 / SDK
81
- - 网关状态机
82
- - session 复用
83
- - tool 执行层
84
- - 文件系统
85
- - 环境配置
86
- - UI 展示层
87
-
88
- ## TBP-6 真因
89
-
90
- 真因必须写成因果句:
91
- \`A + B 在条件 D 下导致了 C\`
92
-
93
- 不允许只写:
94
- - 超时了
95
- - SDK 有 bug
96
- - 返回慢
97
-
98
- ## TBP-7 证据链
99
-
100
- 说明:
101
- 1. 哪些证据支持真因
102
- 2. 哪些现象若出现会推翻它,但现场没有出现
103
- 3. 为什么其他解释更弱
104
-
105
- ## TBP-8 修复
106
-
107
- 只有在证据链闭合后,才开始设计修复。
108
-
109
- 每个修复方案都要说明:
110
- - 改哪一层
111
- - 为什么这是修真因,不是补症状
112
- - 风险是什么
113
- - 怎么验证
114
-
115
- ---
116
-
117
- ## 📤 输出格式要求
118
-
119
- 请严格按以下 JSON 格式输出修复指南:
120
-
121
- \`\`\`json
122
- {
123
- "bug_summary": "Bug 简述(一句话)",
124
- "analysis_mode": "tbp8",
125
- "analysis": {
126
- "error_type": "错误类型",
127
- "direct_cause": "直接原因",
128
- "root_cause": "根本原因",
129
- "affected_scope": "影响范围"
130
- },
131
- "tbp": {
132
- "phenomenon": "TBP-1 现象",
133
- "timeline": [],
134
- "ruled_out": [],
135
- "common_pattern": "TBP-4 共同模式",
136
- "boundary": "TBP-5 边界",
137
- "root_cause_statement": "A + B 在条件 D 下导致 C",
138
- "evidence": [],
139
- "repair": []
140
- },
141
- "location": {
142
- "file": "问题文件路径",
143
- "line": 42,
144
- "function": "问题函数名",
145
- "code_snippet": "问题代码片段"
146
- },
147
- "fix_plan": {
148
- "chosen_solution": "选择的修复方案",
149
- "reason": "选择理由",
150
- "steps": [
151
- { "step": 1, "action": "修复步骤", "file": "文件", "change": "变更内容" }
152
- ],
153
- "code_before": "修改前代码",
154
- "code_after": "修改后代码"
155
- },
156
- "verification": {
157
- "test_cases": ["测试用例1", "测试用例2"],
158
- "manual_checks": ["手动验证项1", "手动验证项2"]
159
- }
160
- }
161
- \`\`\`
162
-
163
- ## ⚠️ 护栏
164
-
165
- - 不要一看到新现象就补一个新分支,先判断是不是同一类根因在换表现
166
- - 不要把“超时”直接当真因,要先分清是没进展、慢进展,还是结果已出现但判定过严
167
- - 不要只看单一样本就下结论,有对比样本时必须做对比
168
- - 如果证据不足,要明确说明还缺什么证据
169
-
170
- ---
171
-
172
- *指南版本: 2.0.0*
173
- *工具: MCP Probe Kit - fix_bug*
13
+ const PROMPT_TEMPLATE = `# TBP 8 步 Bug 真因分析与修复指南
14
+
15
+ ## 🐛 Bug 信息
16
+
17
+ **错误信息**:
18
+ \`\`\`
19
+ {error_message}
20
+ \`\`\`
21
+
22
+ {stack_trace_section}
23
+
24
+ {reproduce_section}
25
+
26
+ {behavior_section}
27
+
28
+ {code_context_section}
29
+
30
+ ---
31
+
32
+ ## TBP-1 现象
33
+
34
+ 先把用户可见的问题定义准确,避免“坏了/卡了/有问题”这类泛化描述。
35
+
36
+ 要求:
37
+ 1. 用 1-2 句定义现象
38
+ 2. 明确是“慢”“停滞”“失败”“回归”还是“未生效”
39
+ 3. 如果提供了期望/实际行为,必须纳入现象定义
40
+
41
+ ## TBP-2 时间线
42
+
43
+ 基于现有信息复盘事件顺序,至少回答:
44
+ 1. 什么时候开始
45
+ 2. 中间发生了什么
46
+ 3. 最后停在什么状态
47
+
48
+ 优先记录:
49
+ - 用户输入 / 复现步骤
50
+ - first progress / first error
51
+ - tool call / stack / stop / timeout
52
+ - 关键文件或模块
53
+
54
+ ## TBP-3 不是这个
55
+
56
+ 列出当前应优先排除的错误方向,并说明需要什么证据排除。
57
+
58
+ 常见排除项:
59
+ - 不是单纯网络慢
60
+ - 不是前端展示截断
61
+ - 不是消息没转发
62
+ - 不是纯粹的超时表象
63
+ - 不是用户输入丢失
64
+
65
+ ## TBP-4 共同模式
66
+
67
+ 对比成功/失败样本,找出从哪一步开始分叉。
68
+
69
+ 重点检查:
70
+ - 传输层
71
+ - 会话状态机
72
+ - 完成态判定
73
+ - 工具执行
74
+ - 文件写入
75
+ - 重试策略
76
+
77
+ ## TBP-5 边界
78
+
79
+ 明确指出问题失控落在哪一层:
80
+ - 上游模型 / SDK
81
+ - 网关状态机
82
+ - session 复用
83
+ - tool 执行层
84
+ - 文件系统
85
+ - 环境配置
86
+ - UI 展示层
87
+
88
+ ## TBP-6 真因
89
+
90
+ 真因必须写成因果句:
91
+ \`A + B 在条件 D 下导致了 C\`
92
+
93
+ 不允许只写:
94
+ - 超时了
95
+ - SDK 有 bug
96
+ - 返回慢
97
+
98
+ ## TBP-7 证据链
99
+
100
+ 说明:
101
+ 1. 哪些证据支持真因
102
+ 2. 哪些现象若出现会推翻它,但现场没有出现
103
+ 3. 为什么其他解释更弱
104
+
105
+ ## TBP-8 修复
106
+
107
+ 只有在证据链闭合后,才开始设计修复。
108
+
109
+ 每个修复方案都要说明:
110
+ - 改哪一层
111
+ - 为什么这是修真因,不是补症状
112
+ - 风险是什么
113
+ - 怎么验证
114
+
115
+ ---
116
+
117
+ ## 📤 输出格式要求
118
+
119
+ 请严格按以下 JSON 格式输出修复指南:
120
+
121
+ \`\`\`json
122
+ {
123
+ "bug_summary": "Bug 简述(一句话)",
124
+ "analysis_mode": "tbp8",
125
+ "analysis": {
126
+ "error_type": "错误类型",
127
+ "direct_cause": "直接原因",
128
+ "root_cause": "根本原因",
129
+ "affected_scope": "影响范围"
130
+ },
131
+ "tbp": {
132
+ "phenomenon": "TBP-1 现象",
133
+ "timeline": [],
134
+ "ruled_out": [],
135
+ "common_pattern": "TBP-4 共同模式",
136
+ "boundary": "TBP-5 边界",
137
+ "root_cause_statement": "A + B 在条件 D 下导致 C",
138
+ "evidence": [],
139
+ "repair": []
140
+ },
141
+ "location": {
142
+ "file": "问题文件路径",
143
+ "line": 42,
144
+ "function": "问题函数名",
145
+ "code_snippet": "问题代码片段"
146
+ },
147
+ "fix_plan": {
148
+ "chosen_solution": "选择的修复方案",
149
+ "reason": "选择理由",
150
+ "steps": [
151
+ { "step": 1, "action": "修复步骤", "file": "文件", "change": "变更内容" }
152
+ ],
153
+ "code_before": "修改前代码",
154
+ "code_after": "修改后代码"
155
+ },
156
+ "verification": {
157
+ "test_cases": ["测试用例1", "测试用例2"],
158
+ "manual_checks": ["手动验证项1", "手动验证项2"]
159
+ }
160
+ }
161
+ \`\`\`
162
+
163
+ ## ⚠️ 护栏
164
+
165
+ - 不要一看到新现象就补一个新分支,先判断是不是同一类根因在换表现
166
+ - 不要把“超时”直接当真因,要先分清是没进展、慢进展,还是结果已出现但判定过严
167
+ - 不要只看单一样本就下结论,有对比样本时必须做对比
168
+ - 如果证据不足,要明确说明还缺什么证据
169
+
170
+ ---
171
+
172
+ *指南版本: 2.0.0*
173
+ *工具: MCP Probe Kit - fix_bug*
174
174
  `;
175
175
  function inferBugType(text) {
176
176
  if (/timeout|latency|slow|卡|慢|超时/i.test(text))
@@ -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) {
@@ -6,6 +6,7 @@ export { gentest } from "./gentest.js";
6
6
  export { refactor } from "./refactor.js";
7
7
  export { initProjectContext } from "./init_project_context.js";
8
8
  export { addFeature } from "./add_feature.js";
9
+ export { checkSpec } from "./check_spec.js";
9
10
  export { fixBug } from "./fix_bug.js";
10
11
  export { estimate } from "./estimate.js";
11
12
  export { startFeature } from "./start_feature.js";
@@ -6,6 +6,7 @@ export { gentest } from "./gentest.js";
6
6
  export { refactor } from "./refactor.js";
7
7
  export { initProjectContext } from "./init_project_context.js";
8
8
  export { addFeature } from "./add_feature.js";
9
+ export { checkSpec } from "./check_spec.js";
9
10
  export { fixBug } from "./fix_bug.js";
10
11
  export { estimate } from "./estimate.js";
11
12
  // 智能编排工具