diff --git a/.github/code_review/prompts/findings.md b/.github/code_review/prompts/findings.md index 15aa0c90f..acf5d9a1e 100644 --- a/.github/code_review/prompts/findings.md +++ b/.github/code_review/prompts/findings.md @@ -1,4 +1,11 @@ -你现在的任务不是重新做代码审查,而是将已经生成的 `review.md` 提取为结构化结果,供后续脚本用于行内评论、阻断判断和其他自动化处理。 +最高优先级输出协议: +1. 整个回复只能包含一个 JSON 对象,除此之外不能出现任何字符。 +2. 回复的第一个字符必须是 `{`,最后一个字符必须是 `}`。 +3. 读取文件、分析问题、确认行号和核对结果的过程必须静默完成,不得输出进度、思考过程、问题清单、总结或完成提示。 +4. 禁止输出“我已确认”“现在生成”“基于 review.md”“共发现”“让我分析”“已经完成”等过程性文字。 +5. 即使定位失败或信息不足,也必须直接按下述格式输出 JSON;通过保守字段值和 `inline_candidate=false` 表达,不得在 JSON 外解释原因。 + +你现在的任务不是重新做代码审查,而是将已经生成的 `review.md` 提取为结构化结果,供后续脚本用于行内评论和其他自动化处理。 输入文件: 1. 仓库根目录下的 `review.md`:这是主依据,包含第一阶段已经确认的问题。 @@ -17,8 +24,7 @@ - `Warning` -> `warning` - `Suggestion` -> `suggestion` -输出 JSON 格式: -```json +输出 JSON 的结构必须是: { "findings": [ { @@ -32,7 +38,6 @@ } ] } -``` 字段要求: 1. `severity`:必须是 `critical`、`warning`、`suggestion` 之一。 @@ -52,13 +57,14 @@ 2. 如果一个问题已经在第一阶段被合并表述为一个综合问题(例如“命令注入 + 路径穿越”),不要在这里再次拆分成多个新问题,除非 `review.md` 本身已经明确拆开。 3. `body` 不要照抄整段 review 原文;应提炼成适合行内评论展示的短说明。 4. 不允许因为定位失败、信息缺失或不适合行内评论而省略第一阶段已经明确列出的问题;这类问题必须保留在 `findings` 中,并通过 `inline_candidate=false` 与保守字段值表达。 -5. 如果 `review.md` 中没有任何问题,输出: -```json -{"findings":[]} -``` +5. 如果 `review.md` 中没有任何问题,唯一输出为 `{"findings":[]}`。 校验要求: -1. 输出必须能被标准 JSON 解析器直接解析。 -2. 所有字符串必须使用双引号。 -3. 不要在 JSON 外再输出任何额外字符。 -4. 不要输出 ```json 或 ```,也不要输出任何注释。 +1. 输出必须能被标准 JSON 解析器直接解析,等价于 Python `json.loads` 可以一次解析成功。 +2. 所有属性名和字符串必须使用双引号,不能使用单引号代替。 +3. 字符串内部的双引号、反斜杠、换行符等特殊字符必须按照 JSON 规范转义。 +4. 数组和对象的最后一个元素后不能有多余逗号。 +5. 不要输出 Markdown 代码块、注释、前后缀、空行或任何解释文字。 +6. 输出前在内部静默检查:内容只能有一个顶层对象,并且只能从 `{` 开始、到 `}` 结束。 + +现在开始静默处理。最终回复只能是 JSON,第一个字符必须是 `{`。