From f09e1edb139a346c75befa12d2533f8110b46e96 Mon Sep 17 00:00:00 2001 From: dst03106 Date: Mon, 9 Jun 2025 21:41:56 +0900 Subject: [PATCH] refactor: remove count info from todo summary --- pr_agent/algo/utils.py | 6 +++--- pr_agent/settings/pr_reviewer_prompts.toml | 21 +++++++++------------ 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index aa231b86..aeecd35b 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -164,7 +164,7 @@ def convert_to_markdown_v2(output_data: dict, if gfm_supported: markdown_text += "\n" - todos_summary = output_data['review'].pop('todos_summary', '') + todo_summary = output_data['review'].pop('todo_summary', '') for key, value in output_data['review'].items(): if value is None or value == '' or value == {} or value == []: if key.lower() not in ['can_be_split', 'key_issues_to_review']: @@ -289,7 +289,7 @@ def convert_to_markdown_v2(output_data: dict, markdown_text += f"{emoji} No TODO sections" else: markdown_text += f"{emoji} TODO sections ({todo_entry_label})\n" - markdown_text += f"{todos_summary}\n\n" + markdown_text += f"{todo_summary}\n\n" markdown_text += markdown_todo_items markdown_text += "\n\n" markdown_text += "\n" @@ -297,7 +297,7 @@ def convert_to_markdown_v2(output_data: dict, if is_value_no(value): markdown_text += f"### {emoji} No TODO sections\n\n" else: - markdown_text += f"### {emoji} TODO sections ({todo_entry_label})\n{todos_summary}\n\n" + markdown_text += f"### {emoji} TODO sections ({todo_entry_label})\n{todo_summary}\n\n" markdown_text += markdown_todo_items markdown_text += "\n\n\n" elif 'can be split' in key_nice.lower(): diff --git a/pr_agent/settings/pr_reviewer_prompts.toml b/pr_agent/settings/pr_reviewer_prompts.toml index 918cff00..c96cac6e 100644 --- a/pr_agent/settings/pr_reviewer_prompts.toml +++ b/pr_agent/settings/pr_reviewer_prompts.toml @@ -109,18 +109,15 @@ class Review(BaseModel): {%- endif %} {%- if require_todo_scan %} todo_sections: Union[List[TodoSection], str] = Field(description="A list of TODO comments found in the code. Return 'No' (as a string) if there are no TODO comments.") - todos_summary: str = Field(description="When writing TODO section summaries, use this format: - [count] TODOs found about [functional area based on TODO content] - - - The [count] is the number of TODO items, equal to the length of the `todo_sections` list. - - Functional areas describe what the TODOs are about: - testing, error handling, validation, documentation, performance, + todo_summary: str = Field(description="Summarize the functional areas of the TODO comments found in the code. + - Focus on describing the *functional areas* of the TODOs, such as: + testing, error handling, validation, documentation, performance, security, logging, refactoring, API design, UI/UX - Example: - 3 TODOs found about input validation and error handling - - Return 'No' (as a string) if there are no TODO comments.") + - Example: + TODO related to input validation and error handling + + - Return 'No' (as a string) if there are no TODO comments.") {%- endif %} {%- if require_can_be_split_review %} can_be_split: List[SubPR] = Field(min_items=0, max_items=3, description="Can this PR, which contains {{ num_pr_files }} changed files in total, be divided into smaller sub-PRs with distinct tasks that can be reviewed and merged independently, regardless of the order ? Make sure that the sub-PRs are indeed independent, with no code dependencies between them, and that each sub-PR represent a meaningful independent task. Output an empty list if the PR code does not need to be split.") @@ -170,7 +167,7 @@ review: No todo_sections: | No - todos_summary: | + todo_summary: | No {%- if require_can_be_split_review %} can_be_split: @@ -292,7 +289,7 @@ review: No todo_sections: | No - todos_summary: | + todo_summary: | No {%- if require_can_be_split_review %} can_be_split: