feat: Enhance review prompt with detailed instructions and placeholders for empty sections
This commit is contained in:
@@ -114,11 +114,19 @@ def _build_prompt(
|
||||
test_output: str | None,
|
||||
) -> str:
|
||||
mode = command.mode if command.name in {"review", "rerun"} else "summary"
|
||||
changed_files = diff_context.get("changed_files") or []
|
||||
changed_files_section = os.linesep.join(changed_files) if changed_files else "(none)"
|
||||
unified_diff = str(diff_context.get("diff", ""))
|
||||
unified_diff_section = unified_diff if unified_diff.strip() else "(empty)"
|
||||
return (
|
||||
"You are reviewing a Gitea pull request.\n\n"
|
||||
"Focus only on issues introduced by this PR.\n"
|
||||
"Prioritize correctness, security, data loss, broken behavior, bad migrations, and missing tests.\n"
|
||||
"Avoid style nitpicks.\n\n"
|
||||
"You do not have internet/network access. Do not try to fetch URLs.\n"
|
||||
"Use only the PR metadata, changed files, diff, and optional file/test content included below.\n"
|
||||
"Never claim that PR content is inaccessible or missing if these sections are present.\n"
|
||||
"If the changed-file list is `(none)` and unified diff is `(empty)`, treat this as a no-op PR and explain that no code changes were detected.\n\n"
|
||||
"Return JSON only with schema:\n"
|
||||
"{\n"
|
||||
' "verdict": "correct" | "has_issues",\n'
|
||||
@@ -132,8 +140,8 @@ def _build_prompt(
|
||||
f"Trigger message: {command.raw}\n"
|
||||
f"Repo focus: {', '.join(repo_cfg.focus)}\n"
|
||||
f"Diff truncated: {diff_context['truncated']}\n"
|
||||
f"Changed files:\n{os.linesep.join(diff_context['changed_files'])}\n\n"
|
||||
f"Unified diff:\n{diff_context['diff']}\n\n"
|
||||
f"Changed files:\n{changed_files_section}\n\n"
|
||||
f"Unified diff:\n{unified_diff_section}\n\n"
|
||||
f"Changed file content (optional):\n{changed_file_contents or '(not included)'}\n\n"
|
||||
f"Test output (optional):\n{test_output or '(not included)'}\n"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user