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: