|
30 | 30 | [ ] Update index.md |
31 | 31 | [ ] Update sidebars.ts |
32 | 32 | [ ] Update combined release notes (if patch release) |
| 33 | +[ ] Ask if user wants to create a PR |
33 | 34 | [ ] Generate Discord format (if requested) |
34 | 35 | </todos> |
35 | 36 | </update_todo_list> |
|
54 | 55 | <steps> |
55 | 56 | <step number="1"> |
56 | 57 | <action>Check for user-provided PR list</action> |
57 | | - <details>If user gives a list of PR numbers, skip to 'process_each_pr' phase.</details> |
| 58 | + <details>If user gives a list of PR numbers, skip to 'process_each_pr' phase. When skipping, use the current date or explicitly ask the user for the release date.</details> |
58 | 59 | </step> |
59 | 60 | <step number="2"> |
60 | 61 | <action>Fetch release dates</action> |
|
73 | 74 | </step> |
74 | 75 | </steps> |
75 | 76 | </phase> |
| 77 | + <phase name="determine_release_date" optional="true"> |
| 78 | + <description>Determine the release date when user provides PR list directly.</description> |
| 79 | + <when_to_use>Only when user provides a PR list instead of using GitHub date range search.</when_to_use> |
| 80 | + <steps> |
| 81 | + <step number="1"> |
| 82 | + <action>Check if user provided a date</action> |
| 83 | + <details> |
| 84 | + Look for date in user's message (e.g., "3.23.15" followed by a date like "2025-07-18"). |
| 85 | + If no date provided, use current date. |
| 86 | + </details> |
| 87 | + </step> |
| 88 | + <step number="2"> |
| 89 | + <action>Validate date format</action> |
| 90 | + <details> |
| 91 | + Ensure date is in YYYY-MM-DD format (ISO 8601). |
| 92 | + Common mistake: Confusing MM-DD with DD-MM. |
| 93 | + Example: 2025-07-18 is July 18, not January 18. |
| 94 | + </details> |
| 95 | + </step> |
| 96 | + </steps> |
| 97 | + </phase> |
76 | 98 | <phase name="process_each_pr"> |
77 | 99 | <description>Process PRs with subtasks. Each subtask investigates one PR, storing findings in a temp file.</description> |
78 | 100 | <initialization> |
|
213 | 235 | </step> |
214 | 236 | </steps> |
215 | 237 | </phase> |
| 238 | + <phase name="review_and_refine"> |
| 239 | + <description>Iterative review process allowing users to refine release notes before creating a PR.</description> |
| 240 | + <loop_structure> |
| 241 | + <description>This phase loops until the user chooses to create a PR.</description> |
| 242 | + </loop_structure> |
| 243 | + <steps> |
| 244 | + <step number="1"> |
| 245 | + <action>Ask if user wants to make changes</action> |
| 246 | + <tool>ask_followup_question</tool> |
| 247 | + <details> |
| 248 | + Ask if the user wants to make any changes to the generated release notes before creating a PR. |
| 249 | + This question will be repeated after each change until the user is satisfied. |
| 250 | + </details> |
| 251 | + <example><![CDATA[ |
| 252 | +<ask_followup_question> |
| 253 | +<question>The release notes for version X.Y.Z have been created and all documentation files have been updated. Would you like to make any changes to the release notes before creating a PR?</question> |
| 254 | +<follow_up> |
| 255 | +<suggest>No, create a PR with the title "Release notes for vX.Y.Z"</suggest> |
| 256 | +<suggest>Yes, I'd like to make some changes to the release notes</suggest> |
| 257 | +<suggest>Show me the current release notes file</suggest> |
| 258 | +<suggest>Show me all changed files</suggest> |
| 259 | +</follow_up> |
| 260 | +</ask_followup_question> |
| 261 | + ]]></example> |
| 262 | + </step> |
| 263 | + <step number="2"> |
| 264 | + <action>Process user response</action> |
| 265 | + <details> |
| 266 | + Handle the user's response: |
| 267 | + - If response contains "no, create a pr" (case-insensitive): Proceed to PR creation |
| 268 | + - If "show me the current release notes": Display the vX.Y.Z.mdx file content |
| 269 | + - If "show me all changed files": List all modified files |
| 270 | + - Any other response: Treat as requested changes to implement |
| 271 | + </details> |
| 272 | + <decision_logic> |
| 273 | + <condition>Response contains "no, create a pr"</condition> |
| 274 | + <action>Exit loop and proceed to PR creation</action> |
| 275 | + <condition>Any other response</condition> |
| 276 | + <action>Implement requested changes and loop back to step 1</action> |
| 277 | + </decision_logic> |
| 278 | + </step> |
| 279 | + <step number="3"> |
| 280 | + <action>Implement requested changes</action> |
| 281 | + <details> |
| 282 | + If user provides specific changes: |
| 283 | + 1. Parse the user's request |
| 284 | + 2. Apply the changes to the appropriate files |
| 285 | + 3. Confirm changes were made |
| 286 | + 4. Loop back to step 1 to ask again |
| 287 | + </details> |
| 288 | + <todo_update>Update "Ask if user wants to create a PR" to reflect ongoing review</todo_update> |
| 289 | + </step> |
| 290 | + <step number="4"> |
| 291 | + <action>Create PR when ready</action> |
| 292 | + <details> |
| 293 | + When user selects "No, create a PR": |
| 294 | + 1. Create PR using gh pr create with title "Release notes for vX.Y.Z" |
| 295 | + 2. Include a standard PR description |
| 296 | + 3. Mark the todo item as complete |
| 297 | + </details> |
| 298 | + <example><![CDATA[ |
| 299 | +<execute_command> |
| 300 | +<command>gh pr create --repo RooCodeInc/Roo-Code --title "Release notes for vX.Y.Z" --body "This PR adds release notes for version X.Y.Z. |
| 301 | +
|
| 302 | +## Changes |
| 303 | +- Created release notes file |
| 304 | +- Updated index.md |
| 305 | +- Updated sidebars.ts |
| 306 | +- Updated combined release notes (if applicable)"</command> |
| 307 | +</execute_command> |
| 308 | + ]]></example> |
| 309 | + <todo_update>Mark "Ask if user wants to create a PR" as complete</todo_update> |
| 310 | + </step> |
| 311 | + </steps> |
| 312 | + </phase> |
216 | 313 | <phase name="discord_formatting" optional="true"> |
217 | 314 | <description>Generate Discord-formatted release notes via a subtask.</description> |
218 | 315 | <when_to_use>When user asks for Discord formatting.</when_to_use> |
|
250 | 347 | </main_workflow> |
251 | 348 |
|
252 | 349 | <completion_criteria> |
253 | | - <criterion>Release notes file created with correct formatting.</criterion> |
254 | | - <criterion>All PRs analyzed and described by user benefit.</criterion> |
255 | | - <criterion>Index and sidebar files updated.</criterion> |
256 | | - <criterion>Combined release notes updated for patch releases.</criterion> |
257 | | - <criterion>Links and references are correct.</criterion> |
258 | | - <criterion>Final release notes include only items from the version's changelog.</criterion> |
259 | | - </completion_criteria> |
| 350 | + <criterion>Release notes file created with correct formatting.</criterion> |
| 351 | + <criterion>All PRs analyzed and described by user benefit.</criterion> |
| 352 | + <criterion>Index and sidebar files updated.</criterion> |
| 353 | + <criterion>Combined release notes updated for patch releases.</criterion> |
| 354 | + <criterion>Links and references are correct.</criterion> |
| 355 | + <criterion>Final release notes include only items from the version's changelog.</criterion> |
| 356 | + <criterion>User has reviewed release notes and confirmed readiness for PR creation.</criterion> |
| 357 | + <criterion>PR has been created (or user explicitly declined PR creation).</criterion> |
| 358 | + </completion_criteria> |
260 | 359 | </workflow_instructions> |
0 commit comments