gitlab-ai-review 3.2.4 → 3.2.5
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/lib/prompt-tools.js +50 -25
- package/package.json +1 -1
package/lib/prompt-tools.js
CHANGED
|
@@ -278,42 +278,67 @@ export function buildFileReviewWithImpactPrompt(fileName, meaningfulChanges, imp
|
|
|
278
278
|
prompt += `\`\`\`\n`;
|
|
279
279
|
});
|
|
280
280
|
|
|
281
|
-
prompt += `\n## ⚠️
|
|
281
|
+
prompt += `\n## ⚠️ 🚨 最重要的规则:理解代码修改 vs 重复定义
|
|
282
|
+
|
|
283
|
+
**🔥 核心概念(必读):**
|
|
284
|
+
|
|
285
|
+
在 diff 中,如果你看到:
|
|
286
|
+
- 第一行:**"-"** 开头(删除旧值)
|
|
287
|
+
- 第二行:**"+"** 开头(添加新值)
|
|
288
|
+
- 并且是同一个变量名或属性名
|
|
282
289
|
|
|
283
|
-
|
|
284
|
-
1. **"类型: 删除"** + 代码以 **"-"** 开头 = **代码已被移除**(不存在了)
|
|
285
|
-
2. **"类型: 新增"** + 代码以 **"+"** 开头 = **代码是新加的**(新存在的)
|
|
290
|
+
这是 **"修改/替换"**,NOT "重复定义"!
|
|
286
291
|
|
|
287
|
-
|
|
292
|
+
**❌ 常见错误(请务必避免):**
|
|
288
293
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
-
|
|
292
|
-
|
|
294
|
+
**错误 1:对象属性修改**
|
|
295
|
+
看到 diff:
|
|
296
|
+
- deleted: deletedSymbols,
|
|
297
|
+
+ deleted: allDeleted,
|
|
293
298
|
|
|
294
|
-
|
|
299
|
+
错误理解:❌ "返回对象中存在重复的 'deleted' 键,违反对象键唯一性"
|
|
300
|
+
正确理解:✅ "将 deleted 属性的值从 deletedSymbols 修改为 allDeleted"
|
|
295
301
|
|
|
296
|
-
|
|
302
|
+
解释:
|
|
303
|
+
- 旧版本(-)的 "deleted: deletedSymbols" 已经被删除了,不存在了
|
|
304
|
+
- 新版本(+)的 "deleted: allDeleted" 是现在的版本
|
|
305
|
+
- 最终代码中只有一个 deleted 键,没有重复!
|
|
297
306
|
|
|
298
|
-
|
|
299
|
-
|
|
307
|
+
**错误 2:变量赋值修改**
|
|
308
|
+
看到 diff:
|
|
300
309
|
- const name = 'old';
|
|
301
310
|
+ const name = 'new';
|
|
302
|
-
错误理解:❌ "代码中定义了两次 name 变量,违反唯一性"
|
|
303
|
-
正确理解:✅ "将 name 的值从 'old' 修改为 'new',这是正常的代码变更"
|
|
304
311
|
|
|
305
|
-
|
|
306
|
-
|
|
312
|
+
错误理解:❌ "定义了两次 name 变量"
|
|
313
|
+
正确理解:✅ "修改了 name 的初始值"
|
|
314
|
+
|
|
315
|
+
**错误 3:属性值修改**
|
|
316
|
+
看到 diff:
|
|
307
317
|
- all: [...addedSymbols, ...deletedSymbols],
|
|
308
318
|
+ all: [...addedSymbols, ...allDeleted],
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
-
|
|
319
|
+
|
|
320
|
+
错误理解:❌ "all 属性重复定义"
|
|
321
|
+
正确理解:✅ "修改了 all 数组的第二个展开项"
|
|
322
|
+
|
|
323
|
+
**🎯 判断标准:**
|
|
324
|
+
|
|
325
|
+
1. **如何判断是修改而非重复?**
|
|
326
|
+
- 看是否在**相邻的行**
|
|
327
|
+
- 一行是 **"-"**(删除)
|
|
328
|
+
- 下一行是 **"+"**(新增)
|
|
329
|
+
- **同一个变量名/属性名**
|
|
330
|
+
→ 这就是**修改**!
|
|
331
|
+
|
|
332
|
+
2. **如何判断是真正的重复定义?**
|
|
333
|
+
- 两行都是 **"+"**(新增)
|
|
334
|
+
- 没有对应的 **"-"**(删除)
|
|
335
|
+
- 同一个变量名/属性名
|
|
336
|
+
→ 这才是**重复定义**!
|
|
337
|
+
|
|
338
|
+
**🚨 重要提醒:**
|
|
339
|
+
- **"-"** 开头的代码已经**不存在**了,不要把它当作"存在"
|
|
340
|
+
- **"+"** 开头的代码才是**最终保留**的版本
|
|
341
|
+
- 不要说"存在两个XXX",应该说"将XXX从A修改为B"
|
|
317
342
|
|
|
318
343
|
## 审查要求
|
|
319
344
|
|