@becrafter/prompt-manager 0.1.2 → 0.1.8

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 (110) hide show
  1. package/README.md +304 -121
  2. package/app/cli/commands/start.js +28 -4
  3. package/app/cli/support/argv.js +6 -0
  4. package/env.example +32 -0
  5. package/package.json +36 -6
  6. package/packages/server/api/admin.routes.js +409 -1
  7. package/packages/server/api/open.routes.js +7 -2
  8. package/packages/server/api/tool.routes.js +479 -0
  9. package/packages/server/app.js +97 -25
  10. package/packages/server/configs/models/built-in/bigmodel.yaml +6 -0
  11. package/packages/server/configs/models/providers.yaml +50 -0
  12. package/packages/server/configs/templates/built-in/general-iteration.yaml +60 -0
  13. package/packages/server/configs/templates/built-in/general-optimize.yaml +63 -0
  14. package/packages/server/configs/templates/built-in/output-format-optimize.yaml +95 -0
  15. package/packages/server/mcp/heartbeat-patch.js +73 -0
  16. package/packages/server/mcp/mcp.server.js +63 -314
  17. package/packages/server/mcp/prompt.handler.js +26 -0
  18. package/packages/server/mcp/thinking-toolkit.handler.js +380 -0
  19. package/packages/server/package.json +35 -3
  20. package/packages/server/server.js +114 -12
  21. package/packages/server/services/TerminalService.js +498 -0
  22. package/packages/server/services/WebSocketService.js +484 -0
  23. package/packages/server/services/manager.js +38 -7
  24. package/packages/server/services/model.service.js +473 -0
  25. package/packages/server/services/optimization.service.js +457 -0
  26. package/packages/server/services/template.service.js +333 -0
  27. package/packages/server/toolm/tool-description-generator-optimized.service.js +5 -2
  28. package/packages/server/toolm/tool-sync.service.js +47 -3
  29. package/packages/server/utils/config.js +8 -1
  30. package/packages/server/utils/port-checker.js +63 -0
  31. package/packages/server/utils/util.js +27 -0
  32. package/IFLOW.md +0 -175
  33. package/app/desktop/assets/app.1.png +0 -0
  34. package/app/desktop/assets/app.png +0 -0
  35. package/app/desktop/assets/icons/icon.icns +0 -0
  36. package/app/desktop/assets/icons/icon.ico +0 -0
  37. package/app/desktop/assets/icons/icon.png +0 -0
  38. package/app/desktop/assets/icons/tray.png +0 -0
  39. package/app/desktop/assets/templates/about.html +0 -147
  40. package/app/desktop/assets/tray.1.png +0 -0
  41. package/app/desktop/assets/tray.png +0 -0
  42. package/app/desktop/main.js +0 -241
  43. package/app/desktop/package-lock.json +0 -5026
  44. package/app/desktop/package.json +0 -100
  45. package/app/desktop/preload.js +0 -7
  46. package/app/desktop/src/core/error-handler.js +0 -108
  47. package/app/desktop/src/core/event-emitter.js +0 -84
  48. package/app/desktop/src/core/logger.js +0 -108
  49. package/app/desktop/src/core/state-manager.js +0 -125
  50. package/app/desktop/src/services/module-loader.js +0 -214
  51. package/app/desktop/src/services/runtime-manager.js +0 -301
  52. package/app/desktop/src/services/service-manager.js +0 -169
  53. package/app/desktop/src/services/update-manager.js +0 -267
  54. package/app/desktop/src/ui/about-dialog-manager.js +0 -208
  55. package/app/desktop/src/ui/admin-window-manager.js +0 -757
  56. package/app/desktop/src/ui/splash-manager.js +0 -253
  57. package/app/desktop/src/ui/tray-manager.js +0 -186
  58. package/app/desktop/src/utils/icon-manager.js +0 -133
  59. package/app/desktop/src/utils/path-utils.js +0 -58
  60. package/app/desktop/src/utils/resource-paths.js +0 -49
  61. package/app/desktop/src/utils/resource-sync.js +0 -260
  62. package/app/desktop/src/utils/runtime-sync.js +0 -241
  63. package/app/desktop/src/utils/template-renderer.js +0 -284
  64. package/app/desktop/src/utils/version-utils.js +0 -59
  65. package/examples/prompts/developer/code-review.yaml +0 -32
  66. package/examples/prompts/developer/code_refactoring.yaml +0 -31
  67. package/examples/prompts/developer/doc-generator.yaml +0 -36
  68. package/examples/prompts/developer/error-code-fixer.yaml +0 -35
  69. package/examples/prompts/engineer/engineer-professional.yaml +0 -92
  70. package/examples/prompts/engineer/laowang-engineer.yaml +0 -132
  71. package/examples/prompts/engineer/nekomata-engineer.yaml +0 -123
  72. package/examples/prompts/engineer/ojousama-engineer.yaml +0 -124
  73. package/examples/prompts/generator/gen_3d_edu_webpage_html.yaml +0 -117
  74. package/examples/prompts/generator/gen_3d_webpage_html.yaml +0 -75
  75. package/examples/prompts/generator/gen_bento_grid_html.yaml +0 -112
  76. package/examples/prompts/generator/gen_html_web_page.yaml +0 -88
  77. package/examples/prompts/generator/gen_knowledge_card_html.yaml +0 -83
  78. package/examples/prompts/generator/gen_magazine_card_html.yaml +0 -82
  79. package/examples/prompts/generator/gen_mimeng_headline_title.yaml +0 -71
  80. package/examples/prompts/generator/gen_podcast_script.yaml +0 -69
  81. package/examples/prompts/generator/gen_prd_prototype_html.yaml +0 -175
  82. package/examples/prompts/generator/gen_summarize.yaml +0 -157
  83. package/examples/prompts/generator/gen_title.yaml +0 -119
  84. package/examples/prompts/generator/others/api_documentation.yaml +0 -32
  85. package/examples/prompts/generator/others/build_mcp_server.yaml +0 -26
  86. package/examples/prompts/generator/others/project_architecture.yaml +0 -31
  87. package/examples/prompts/generator/others/test_case_generator.yaml +0 -30
  88. package/examples/prompts/generator/others/writing_assistant.yaml +0 -72
  89. package/examples/prompts/recommend/human_3-0_growth_diagnostic_coach_prompt.yaml +0 -105
  90. package/examples/prompts/workflow/sixstep-workflow.yaml +0 -192
  91. package/packages/admin-ui/.babelrc +0 -3
  92. package/packages/admin-ui/admin.html +0 -412
  93. package/packages/admin-ui/css/codemirror-theme_xq-light.css +0 -43
  94. package/packages/admin-ui/css/codemirror.css +0 -344
  95. package/packages/admin-ui/css/main.css +0 -2592
  96. package/packages/admin-ui/css/recommended-prompts.css +0 -610
  97. package/packages/admin-ui/package-lock.json +0 -6973
  98. package/packages/admin-ui/package.json +0 -36
  99. package/packages/admin-ui/src/codemirror.js +0 -53
  100. package/packages/admin-ui/src/index.js +0 -3188
  101. package/packages/admin-ui/webpack.config.js +0 -76
  102. package/packages/server/toolm/test-tools.js +0 -264
  103. package/scripts/build-icons.js +0 -135
  104. package/scripts/build.sh +0 -57
  105. package/scripts/postinstall.js +0 -34
  106. package/scripts/surge/CNAME +0 -1
  107. package/scripts/surge/README.md +0 -47
  108. package/scripts/surge/package-lock.json +0 -34
  109. package/scripts/surge/package.json +0 -20
  110. package/scripts/surge/sync-to-surge.js +0 -151
@@ -1,284 +0,0 @@
1
- /**
2
- * 模板渲染器
3
- * 提供HTML模板渲染功能
4
- */
5
-
6
- const fs = require('fs');
7
- const path = require('path');
8
-
9
- class TemplateRenderer {
10
- constructor(templatesDir = null) {
11
- this.templatesDir = templatesDir || path.join(__dirname, '..', '..', 'assets', 'templates');
12
- this.templates = new Map();
13
- this.loadTemplates();
14
- }
15
-
16
- /**
17
- * 加载所有模板文件
18
- */
19
- loadTemplates() {
20
- try {
21
- if (!fs.existsSync(this.templatesDir)) {
22
- this.logger?.warn('Templates directory not found', { dir: this.templatesDir });
23
- return;
24
- }
25
-
26
- const templateFiles = fs.readdirSync(this.templatesDir);
27
-
28
- templateFiles.forEach(file => {
29
- if (file.endsWith('.html')) {
30
- const templateName = path.basename(file, '.html');
31
- const templatePath = path.join(this.templatesDir, file);
32
-
33
- try {
34
- const content = fs.readFileSync(templatePath, 'utf8');
35
- this.templates.set(templateName, content);
36
- } catch (error) {
37
- console.error(`Failed to load template ${templateName}:`, error);
38
- }
39
- }
40
- });
41
- } catch (error) {
42
- console.error('Failed to load templates:', error);
43
- }
44
- }
45
-
46
- /**
47
- * 渲染模板
48
- * @param {string} templateName - 模板名称
49
- * @param {object} data - 渲染数据
50
- * @returns {string} - 渲染后的HTML
51
- */
52
- render(templateName, data = {}) {
53
- let template = this.templates.get(templateName);
54
-
55
- if (!template) {
56
- // 如果没有找到模板,返回基本HTML
57
- return this.renderBasicHTML(templateName, data);
58
- }
59
-
60
- try {
61
- // 处理条件语句
62
- template = this.processConditionals(template, data);
63
-
64
- // 处理变量替换
65
- template = this.processVariables(template, data);
66
-
67
- // 处理logo数据
68
- template = this.processLogoData(template, data);
69
-
70
- return template;
71
- } catch (error) {
72
- console.error(`Template rendering failed for ${templateName}:`, error);
73
- return this.renderBasicHTML(templateName, data);
74
- }
75
- }
76
-
77
- /**
78
- * 处理条件语句 {{#if condition}}...{{/if}}
79
- */
80
- processConditionals(template, data) {
81
- const ifRegex = /\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g;
82
-
83
- return template.replace(ifRegex, (match, condition, content) => {
84
- return data[condition] ? content : '';
85
- });
86
- }
87
-
88
- /**
89
- * 处理变量替换 {{variable}}
90
- */
91
- processVariables(template, data) {
92
- const varRegex = /\{\{(\w+)\}\}/g;
93
-
94
- return template.replace(varRegex, (match, variable) => {
95
- return data[variable] !== undefined ? String(data[variable]) : '';
96
- });
97
- }
98
-
99
- /**
100
- * 处理logo数据
101
- */
102
- processLogoData(template, data) {
103
- if (data.logoData) {
104
- template = template.replace(/\{\{logoData\}\}/g, data.logoData);
105
- }
106
- return template;
107
- }
108
-
109
- /**
110
- * 渲染基本HTML(备用方案)
111
- */
112
- renderBasicHTML(templateName, data) {
113
- const basicTemplates = {
114
- about: this.getBasicAboutHTML(data),
115
- error: this.getBasicErrorHTML(data)
116
- };
117
-
118
- return basicTemplates[templateName] || this.getBasicFallbackHTML(data);
119
- }
120
-
121
- /**
122
- * 基本关于页面HTML
123
- */
124
- getBasicAboutHTML(data) {
125
- return `<!DOCTYPE html>
126
- <html>
127
- <head>
128
- <meta charset="UTF-8">
129
- <title>关于 Prompt Manager</title>
130
- <style>
131
- body {
132
- margin: 0;
133
- padding: 20px;
134
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
135
- background: #f5f5f5;
136
- color: #333;
137
- }
138
- .container {
139
- background: white;
140
- border-radius: 8px;
141
- padding: 20px;
142
- max-width: 300px;
143
- margin: 0 auto;
144
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
145
- }
146
- .title {
147
- text-align: center;
148
- font-size: 18px;
149
- font-weight: bold;
150
- margin-bottom: 15px;
151
- }
152
- .info-item {
153
- display: flex;
154
- justify-content: space-between;
155
- margin-bottom: 8px;
156
- font-size: 14px;
157
- }
158
- .label {
159
- color: #666;
160
- }
161
- .value {
162
- color: #333;
163
- font-weight: 500;
164
- }
165
- .hint {
166
- text-align: center;
167
- font-size: 12px;
168
- color: #999;
169
- margin-top: 15px;
170
- font-style: italic;
171
- }
172
- </style>
173
- </head>
174
- <body>
175
- <div class="container">
176
- <div class="title">Prompt Manager</div>
177
- <div class="info-item">
178
- <span class="label">服务版本:</span>
179
- <span class="value">${data.version || 'unknown'}</span>
180
- </div>
181
- <div class="info-item">
182
- <span class="label">Electron:</span>
183
- <span class="value">${data.electronVersion || 'unknown'}</span>
184
- </div>
185
- <div class="info-item">
186
- <span class="label">Node.js:</span>
187
- <span class="value">${data.nodeVersion || 'unknown'}</span>
188
- </div>
189
- ${data.debugLogEnabled ? '<div class="hint">调试日志已开启</div>' : ''}
190
- <div class="hint">连续点击此窗口 ${data.clickCount || 3} 次可${data.debugLogEnabled ? '关闭' : '开启'}调试日志</div>
191
- </div>
192
- </body>
193
- </html>`;
194
- }
195
-
196
- /**
197
- * 基本错误页面HTML
198
- */
199
- getBasicErrorHTML(data) {
200
- return `<!DOCTYPE html>
201
- <html>
202
- <head>
203
- <meta charset="UTF-8">
204
- <title>错误 - Prompt Manager</title>
205
- <style>
206
- body {
207
- margin: 0;
208
- padding: 20px;
209
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
210
- background: #fff5f5;
211
- color: #c53030;
212
- }
213
- .container {
214
- background: white;
215
- border-radius: 8px;
216
- padding: 20px;
217
- max-width: 400px;
218
- margin: 0 auto;
219
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
220
- text-align: center;
221
- }
222
- .error-title {
223
- font-size: 18px;
224
- font-weight: bold;
225
- margin-bottom: 10px;
226
- }
227
- .error-message {
228
- font-size: 14px;
229
- color: #666;
230
- }
231
- </style>
232
- </head>
233
- <body>
234
- <div class="container">
235
- <div class="error-title">发生错误</div>
236
- <div class="error-message">${data.message || '未知错误'}</div>
237
- </div>
238
- </body>
239
- </html>`;
240
- }
241
-
242
- /**
243
- * 基本备用HTML
244
- */
245
- getBasicFallbackHTML(data) {
246
- return `<!DOCTYPE html>
247
- <html>
248
- <head>
249
- <meta charset="UTF-8">
250
- <title>Prompt Manager</title>
251
- </head>
252
- <body>
253
- <h1>Prompt Manager</h1>
254
- <p>版本: ${data.version || 'unknown'}</p>
255
- <p>Electron: ${data.electronVersion || 'unknown'}</p>
256
- <p>Node.js: ${data.nodeVersion || 'unknown'}</p>
257
- </body>
258
- </html>`;
259
- }
260
-
261
- /**
262
- * 获取可用模板列表
263
- */
264
- getAvailableTemplates() {
265
- return Array.from(this.templates.keys());
266
- }
267
-
268
- /**
269
- * 检查模板是否存在
270
- */
271
- hasTemplate(templateName) {
272
- return this.templates.has(templateName);
273
- }
274
-
275
- /**
276
- * 重新加载模板
277
- */
278
- reloadTemplates() {
279
- this.templates.clear();
280
- this.loadTemplates();
281
- }
282
- }
283
-
284
- module.exports = TemplateRenderer;
@@ -1,59 +0,0 @@
1
- /**
2
- * 版本比较工具
3
- * 提供版本号比较功能
4
- */
5
-
6
- class VersionUtils {
7
- /**
8
- * 比较两个版本号
9
- * @param {string} versionA - 版本A
10
- * @param {string} versionB - 版本B
11
- * @returns {number} - 如果A>B返回正数,A<B返回负数,相等返回0
12
- */
13
- static compareVersions(a, b) {
14
- const toNumbers = (value = '') => value.split('.').map((part) => parseInt(part, 10) || 0);
15
- const [a1, a2, a3] = toNumbers(a);
16
- const [b1, b2, b3] = toNumbers(b);
17
-
18
- if (a1 !== b1) return a1 - b1;
19
- if (a2 !== b2) return a2 - b2;
20
- return a3 - b3;
21
- }
22
-
23
- /**
24
- * 检查版本是否为有效格式
25
- * @param {string} version - 版本号
26
- * @returns {boolean} - 是否有效
27
- */
28
- static isValidVersion(version) {
29
- if (!version || typeof version !== 'string') return false;
30
- return /^\d+\.\d+\.\d+$/.test(version);
31
- }
32
-
33
- /**
34
- * 解析版本号
35
- * @param {string} version - 版本号
36
- * @returns {object} - 解析后的版本对象
37
- */
38
- static parseVersion(version) {
39
- if (!this.isValidVersion(version)) {
40
- throw new Error(`Invalid version format: ${version}`);
41
- }
42
-
43
- const [major, minor, patch] = version.split('.').map(Number);
44
- return { major, minor, patch };
45
- }
46
-
47
- /**
48
- * 格式化版本号
49
- * @param {number} major - 主版本号
50
- * @param {number} minor - 次版本号
51
- * @param {number} patch - 修订版本号
52
- * @returns {string} - 格式化后的版本号
53
- */
54
- static formatVersion(major, minor, patch) {
55
- return `${major}.${minor}.${patch}`;
56
- }
57
- }
58
-
59
- module.exports = VersionUtils;
@@ -1,32 +0,0 @@
1
- name: code-review
2
- description: 帮助进行代码审查的AI助手
3
- messages:
4
- - role: user
5
- content:
6
- text: |
7
- 你是一个专业的代码审查助手。请审查以下代码:
8
-
9
- 代码语言: {{language}}
10
- 代码内容:
11
- ```
12
- {{code}}
13
- ```
14
-
15
- 请从以下几个方面进行审查:
16
- 1. 代码质量和可读性
17
- 2. 潜在的安全问题
18
- 3. 性能优化建议
19
- 4. 最佳实践建议
20
- 5. 潜在的bug
21
-
22
- 请提供具体的改进建议和示例代码。
23
- arguments:
24
- - name: language
25
- description: 编程语言
26
- type: string
27
- required: true
28
- - name: code
29
- description: 要审查的代码
30
- type: string
31
- required: true
32
- enabled: false
@@ -1,31 +0,0 @@
1
- name: code_refactoring
2
- description: 当用户想要重构代码时,可以使用这个提示词,来帮助用户提高代码质量和可维护性
3
- arguments:
4
- - name: language
5
- description: 编程语言
6
- required: true
7
- - name: code
8
- description: 要重构的代码
9
- required: true
10
- - name: focus_areas
11
- description: 重点关注的重构领域(如性能、可读性、模块化等)
12
- required: false
13
- messages:
14
- - role: user
15
- content:
16
- type: text
17
- text: |
18
- 请对以下{{language}}代码进行重构,以提高其质量和可维护性:
19
-
20
- ```{{language}}
21
- {{code}}
22
- ```
23
-
24
- {{#focus_areas}}
25
- 重点关注以下方面:{{focus_areas}}
26
- {{/focus_areas}}
27
-
28
- 请提供:
29
- 1. 重构后的完整代码
30
- 2. 详细说明您所做的每项更改及其理由
31
- 3. 重构如何改进了代码的质量和可维护性
@@ -1,36 +0,0 @@
1
- name: doc-generator
2
- description: "根据代码生成技术文档"
3
- messages:
4
- - role: "user"
5
- content:
6
- text: |
7
- 请为以下代码生成详细的技术文档:
8
-
9
- 项目名称: {{projectName}}
10
- 代码语言: {{language}}
11
- 代码内容:
12
- ```
13
- {{code}}
14
- ```
15
-
16
- 请生成包含以下部分的文档:
17
- 1. 功能概述
18
- 2. API接口说明
19
- 3. 参数说明
20
- 4. 使用示例
21
- 5. 注意事项
22
-
23
- 文档格式要求:使用Markdown格式,结构清晰,易于理解。
24
- arguments:
25
- - name: "projectName"
26
- description: "项目名称"
27
- type: "string"
28
- required: true
29
- - name: "language"
30
- description: "编程语言"
31
- type: "string"
32
- required: true
33
- - name: "code"
34
- description: "要生成文档的代码"
35
- type: "string"
36
- required: true
@@ -1,35 +0,0 @@
1
- name: error-code-fixer
2
- description: "帮助分析和修复代码错误"
3
- messages:
4
- - role: "user"
5
- content:
6
- text: |
7
- 你是一个专业的错误修复助手。请帮助分析和修复以下错误:
8
-
9
- 错误信息: {{errorMessage}}
10
- 代码语言: {{language}}
11
- 相关代码:
12
- ```
13
- {{code}}
14
- ```
15
-
16
- 请提供:
17
- 1. 错误原因分析
18
- 2. 具体的修复方案
19
- 3. 修复后的代码
20
- 4. 预防类似错误的建议
21
-
22
- 如果错误信息不够详细,请说明需要哪些额外信息。
23
- arguments:
24
- - name: "errorMessage"
25
- description: "错误信息"
26
- type: "string"
27
- required: true
28
- - name: "language"
29
- description: "编程语言"
30
- type: "string"
31
- required: true
32
- - name: "code"
33
- description: "出错的代码"
34
- type: "string"
35
- required: false
@@ -1,92 +0,0 @@
1
- name: engineer-professional
2
- description: 专业的软件工程师,严格遵循SOLID、KISS、DRY、YAGNI原则,为经验丰富的开发者设计。
3
- arguments: []
4
- messages:
5
- - role: system
6
- content:
7
- type: text
8
- text: |
9
- # 工程师专业版输出样式
10
-
11
- ## 样式概述
12
-
13
- 基于软件工程最佳实践的专业输出样式,严格遵循SOLID、KISS、DRY、YAGNI原则,专为经验丰富的开发者设计。
14
-
15
- ## 核心行为规范
16
-
17
- ### 1. 危险操作确认机制
18
-
19
- 执行以下操作前必须获得明确确认:
20
-
21
- **高风险操作:**
22
- - 文件系统:删除文件/目录、批量修改、移动系统文件
23
- - 代码提交:`git commit`、`git push`、`git reset --hard`
24
- - 系统配置:修改环境变量、系统设置、权限变更
25
- - 数据操作:数据库删除、结构变更、批量更新
26
- - 网络请求:发送敏感数据、调用生产环境API
27
- - 包管理:全局安装/卸载、更新核心依赖
28
-
29
- **确认格式:**
30
- ```
31
- ⚠️ 危险操作检测!
32
- 操作类型:[具体操作]
33
- 影响范围:[详细说明]
34
- 风险评估:[潜在后果]
35
-
36
- 请确认是否继续?[需要明确的"是"、"确认"、"继续"]
37
- ```
38
-
39
- ### 2. 命令执行标准
40
-
41
- **路径处理:**
42
- - 始终使用双引号包裹文件路径
43
- - 优先使用正斜杠 `/` 作为路径分隔符
44
- - 跨平台兼容性检查
45
-
46
- **工具优先级:**
47
- 1. `rg` (ripgrep) > `grep` 用于内容搜索
48
- 2. 专用工具 (Read/Write/Edit) > 系统命令
49
- 3. 批量工具调用提高效率
50
-
51
- ### 3. 编程原则执行
52
-
53
- **每次代码变更都要体现:**
54
-
55
- **KISS (简单至上):**
56
- - 追求代码和设计的极致简洁
57
- - 拒绝不必要的复杂性
58
- - 优先选择最直观的解决方案
59
-
60
- **YAGNI (精益求精):**
61
- - 仅实现当前明确所需的功能
62
- - 抵制过度设计和未来特性预留
63
- - 删除未使用的代码和依赖
64
-
65
- **DRY (杜绝重复):**
66
- - 自动识别重复代码模式
67
- - 主动建议抽象和复用
68
- - 统一相似功能的实现方式
69
-
70
- **SOLID原则:**
71
- - **S:** 确保单一职责,拆分过大的组件
72
- - **O:** 设计可扩展接口,避免修改现有代码
73
- - **L:** 保证子类型可替换父类型
74
- - **I:** 接口专一,避免"胖接口"
75
- - **D:** 依赖抽象而非具体实现
76
-
77
- ### 4. 持续问题解决
78
-
79
- **行为准则:**
80
- - 持续工作直到问题完全解决
81
- - 基于事实而非猜测,充分使用工具收集信息
82
- - 每次操作前充分规划和反思
83
- - 先读后写,理解现有代码再修改
84
- - **(重要:如果用户没有主动要求,绝对不要计划和执行git提交和分支等操作)**
85
-
86
- ## 响应特点
87
-
88
- - **语调:** 专业、技术导向、简洁明了
89
- - **长度:** 结构化详细,但避免冗余
90
- - **重点:** 代码质量、架构设计、最佳实践
91
- - **验证:** 每个变更都包含原则应用说明
92
- - **代码注释:** 始终与现有代码库注释语言保持一致(自动检测),确保代码库语言统一