@unifan/pi-review-zh 1.0.15 → 1.0.16

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 (2) hide show
  1. package/index.ts +21 -11
  2. package/package.json +1 -1
package/index.ts CHANGED
@@ -200,6 +200,12 @@ type ReviewTarget =
200
200
  | { type: "folder"; paths: string[] };
201
201
 
202
202
  // 针对不同审查目标的中文提示词
203
+ const LITE_REVIEW_PROMPT =
204
+ "【极速体检模式】请直接运行 `git diff` 快速排查当前未提交改动中的高危逻辑缺陷与安全漏洞。只抓严重级别最高的问题,快速输出审查结论。严禁输出任何步骤清单。所有输出必须使用纯正中文。";
205
+
206
+ const FULL_REVIEW_PROMPT =
207
+ "【全量深度审查模式】请对当前代码改动展开全方位的深度审查。直接运行 `git diff` 全量审阅代码改动,深入排查潜在的业务逻辑隐患、边界异常、并发安全、性能GC开销与架构合规性,直接给出按优先级排序的详尽审查清单。严禁输出任何步骤清单。所有输出必须使用纯正中文。";
208
+
203
209
  const UNCOMMITTED_PROMPT =
204
210
  "请审查当前代码的所有改动(包含暂存区、未暂存区以及新增文件)。直接运行 `git diff` 与 `git status` 查看代码差异,并直接输出审查发现。严禁输出任何步骤清单或待办列表。所有输出必须使用纯正中文。";
205
211
 
@@ -425,9 +431,15 @@ async function getDefaultBranch(pi: ExtensionAPI): Promise<string> {
425
431
  return "main";
426
432
  }
427
433
 
428
- async function buildReviewPrompt(pi: ExtensionAPI, target: ReviewTarget): Promise<string> {
434
+ async function buildReviewPrompt(
435
+ pi: ExtensionAPI,
436
+ target: ReviewTarget,
437
+ reviewStyle: "lite" | "full" | "standard" = "standard",
438
+ ): Promise<string> {
429
439
  switch (target.type) {
430
440
  case "uncommitted":
441
+ if (reviewStyle === "lite") return LITE_REVIEW_PROMPT;
442
+ if (reviewStyle === "full") return FULL_REVIEW_PROMPT;
431
443
  return UNCOMMITTED_PROMPT;
432
444
 
433
445
  case "baseBranch": {
@@ -916,6 +928,7 @@ export default function reviewExtension(pi: ExtensionAPI) {
916
928
  target: ReviewTarget,
917
929
  useFreshSession: boolean,
918
930
  runtimeSettings?: Partial<ReviewSettings>,
931
+ reviewStyle: "lite" | "full" | "standard" = "standard",
919
932
  ): Promise<void> {
920
933
  if (reviewOriginId) {
921
934
  ctx.ui.notify("当前已有正在进行的审查会话。请先使用 /end-review 结束。", "warning");
@@ -964,29 +977,26 @@ export default function reviewExtension(pi: ExtensionAPI) {
964
977
  pi.appendEntry(REVIEW_STATE_TYPE, { active: true, originId: lockedOriginId });
965
978
  }
966
979
 
967
- const prompt = await buildReviewPrompt(pi, target);
980
+ const prompt = await buildReviewPrompt(pi, target, reviewStyle);
968
981
  const hint = getUserFacingHint(target);
969
982
  const projectGuidelines = await loadProjectReviewGuidelines(ctx.cwd);
970
983
 
971
- const MANDATORY_CHINESE_HEADER = `> 🚨【核心语言指令 - 最高优先级】\n> 你的**所有思维链(Thinking)、中间分析过程、代码排查笔记、审查发现与最终裁决结论**必须 100% 全程使用纯正中文进行思考与撰写!绝对禁止输出任何英文思考段落、英文标题或英文总结!`;
972
-
973
- let fullPrompt = `${MANDATORY_CHINESE_HEADER}\n\n${REVIEW_RUBRIC}`;
984
+ let fullPrompt = REVIEW_RUBRIC;
974
985
 
975
986
  if (settings.mode === "subagents") {
976
987
  fullPrompt += `\n\n---\n\n${buildSubagentOrchestrationPrompt(settings.concurrency, settings.gateEnabled)}`;
977
988
  }
978
989
 
979
- fullPrompt += `\n\n---\n\n## 本次审查目标与任务指示\n\n${prompt}`;
990
+ fullPrompt += `\n\n---\n\n## 本次审查任务指示\n\n${prompt}`;
980
991
 
981
992
  if (projectGuidelines) {
982
993
  fullPrompt += `\n\n## 本项目附加规范指南\n\n${projectGuidelines}`;
983
994
  }
984
995
 
985
- fullPrompt += `\n\n> 🚨【最终语言校验】:请再次检查你的输出,确保通篇 100% 均为流畅纯正的中文,绝无任何英文说明!`;
986
-
996
+ const styleTag = reviewStyle === "lite" ? "[极速]" : reviewStyle === "full" ? "[全量]" : "";
987
997
  const modeLabel = settings.mode === "single" ? "单模型模式" : `多Subagent并发(${settings.concurrency}专家)`;
988
998
  const modeHint = useFreshSession ? " (独立审查分支)" : "";
989
- ctx.ui.notify(`正在启动代码审查: ${hint}${modeHint} [${modeLabel}]`, "info");
999
+ ctx.ui.notify(`正在启动代码审查 ${styleTag}: ${hint}${modeHint} [${modeLabel}]`, "info");
990
1000
 
991
1001
  pi.sendUserMessage(fullPrompt);
992
1002
  }
@@ -1186,7 +1196,7 @@ export default function reviewExtension(pi: ExtensionAPI) {
1186
1196
  return;
1187
1197
  }
1188
1198
 
1189
- await executeReview(ctx, { type: "uncommitted" }, false);
1199
+ await executeReview(ctx, { type: "uncommitted" }, false, undefined, "lite");
1190
1200
  },
1191
1201
  });
1192
1202
 
@@ -1223,7 +1233,7 @@ export default function reviewExtension(pi: ExtensionAPI) {
1223
1233
  }
1224
1234
  }
1225
1235
 
1226
- await executeReview(ctx, finalTarget, false, settingsOverride);
1236
+ await executeReview(ctx, finalTarget, false, settingsOverride, "full");
1227
1237
  },
1228
1238
  });
1229
1239
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unifan/pi-review-zh",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
4
4
  "description": "Pi 交互式 AI 代码审查扩展(支持单模型与多 Subagent 并发 2~6 专家自由切换,Codex 经典架构)",
5
5
  "type": "module",
6
6
  "license": "MIT",