|
49 | 49 | </steps> |
50 | 50 | </phase> |
51 | 51 | <phase name="process_each_pr"> |
52 | | - <description>Process PRs individually, investigating each one thoroughly and storing findings in a temporary file for later compilation.</description> |
53 | | - <iterative_workflow> |
| 52 | + <description>Process PRs individually by creating subtasks for each PR investigation, storing findings in a temporary file for later compilation.</description> |
| 53 | + <subtask_workflow> |
54 | 54 | <overview> |
55 | | - For each PR in the list, execute a complete investigation workflow and immediately |
56 | | - store the findings in a temporary markdown file (e.g., temp_pr_analysis.md). |
57 | | - This allows for incremental building of release note data. |
| 55 | + For each PR in the list, create a dedicated subtask using the new_task tool. |
| 56 | + Each subtask will investigate one PR thoroughly and store findings in temp_pr_analysis.md. |
| 57 | + This allows for clear separation of concerns and incremental progress tracking. |
58 | 58 | </overview> |
59 | 59 |
|
60 | 60 | <per_pr_steps> |
61 | 61 | <step number="1"> |
62 | | - <action>Gather comprehensive PR details</action> |
63 | | - <tools> |
64 | | - <tool>github.get_pull_request - Title, author, description</tool> |
65 | | - <tool>github.get_pull_request_files - Changed files (optional)</tool> |
66 | | - <tool>github.get_pull_request_diff - Code changes (if needed for clarity)</tool> |
67 | | - </tools> |
68 | | - <details>Extract PR title, author username, and description for analysis</details> |
| 62 | + <action>Create PR investigation subtask</action> |
| 63 | + <tool>new_task</tool> |
| 64 | + <details> |
| 65 | + Create a new task in release-notes-writer mode to investigate the specific PR |
| 66 | + </details> |
| 67 | + <message_format> |
| 68 | + Investigate PR #[number] for release notes v[version]. |
| 69 | + |
| 70 | + Your task is to: |
| 71 | + 1. Get full PR details using github.get_pull_request |
| 72 | + 2. Extract any linked issues from the PR description (e.g., "Fixes #123") |
| 73 | + 3. Get details for each linked issue using github.get_issue |
| 74 | + 4. Analyze the change and categorize it (bug fix, feature, improvement, etc.) |
| 75 | + 5. Write your findings to temp_pr_analysis.md in the specified format |
| 76 | + |
| 77 | + Use insert_content with line 0 to append to the file. |
| 78 | + </message_format> |
69 | 79 | </step> |
70 | 80 |
|
71 | 81 | <step number="2"> |
72 | | - <action>Extract and gather linked issue details</action> |
73 | | - <process> |
74 | | - <substep>Parse PR description for issue references (Fixes #123, Closes #456, etc.)</substep> |
75 | | - <substep>For each found issue number, use github.get_issue to gather details</substep> |
76 | | - <substep>Extract issue reporter username and title for context</substep> |
77 | | - </process> |
78 | | - <tools> |
79 | | - <tool>github.get_issue - For each linked issue found</tool> |
80 | | - </tools> |
| 82 | + <action>Wait for subtask completion</action> |
| 83 | + <details> |
| 84 | + The subtask will handle all investigation steps: |
| 85 | + - Fetching PR details and linked issues |
| 86 | + - Analyzing and categorizing the change |
| 87 | + - Writing structured findings to temp_pr_analysis.md |
| 88 | + - Reporting completion via attempt_completion |
| 89 | + </details> |
81 | 90 | </step> |
82 | 91 |
|
83 | 92 | <step number="3"> |
84 | | - <action>Analyze and categorize the change</action> |
85 | | - <analysis_framework> |
86 | | - <question>What changed? (core functionality/feature affected)</question> |
87 | | - <question>Why did it change? (problem being solved)</question> |
88 | | - <question>How does this impact users? (benefits in plain language)</question> |
89 | | - <question>What category? (bug fix, feature, improvement, etc.)</question> |
90 | | - </analysis_framework> |
91 | | - </step> |
92 | | - |
93 | | - <step number="4"> |
94 | | - <action>Write findings to temporary file</action> |
95 | | - <process> |
96 | | - <substep>Create or append to temp_pr_analysis.md</substep> |
97 | | - <substep>Include structured data for this PR</substep> |
98 | | - <substep>Store all contributor information</substep> |
99 | | - <substep>Include categorization and user impact analysis</substep> |
100 | | - </process> |
101 | | - <file_format> |
102 | | - Use a consistent markdown format that can be easily parsed later |
103 | | - for generating the final release notes |
104 | | - </file_format> |
| 93 | + <action>Move to next PR</action> |
| 94 | + <details> |
| 95 | + After subtask completion confirmation, proceed to create the next PR investigation subtask |
| 96 | + </details> |
105 | 97 | </step> |
106 | 98 | </per_pr_steps> |
107 | 99 |
|
108 | 100 | <completion_per_pr> |
109 | | - After each PR analysis is complete and written to the temporary file, |
110 | | - move on to the next PR. This ensures thorough investigation of each |
111 | | - change before proceeding. |
| 101 | + After each subtask completes and confirms it has written findings to the temporary file, |
| 102 | + move on to the next PR. This ensures thorough investigation of each change before proceeding. |
112 | 103 | </completion_per_pr> |
113 | | - </iterative_workflow> |
| 104 | + </subtask_workflow> |
114 | 105 | </phase> |
115 | 106 | <phase name="compile_final_release_notes"> |
116 | 107 | <description>Read the temporary analysis file and compile all findings into the final release notes format</description> |
|
174 | 165 | </step> |
175 | 166 | </steps> |
176 | 167 | </phase> |
| 168 | + <phase name="discord_formatting" optional="true"> |
| 169 | + <description>Generate Discord-formatted release notes by creating a subtask that converts the existing release notes to Discord format</description> |
| 170 | + <when_to_use>Use this phase when the user specifically asks for Discord formatting of the release notes</when_to_use> |
| 171 | + <steps> |
| 172 | + <step number="1"> |
| 173 | + <action>Create Discord formatting subtask</action> |
| 174 | + <tool>new_task</tool> |
| 175 | + <details> |
| 176 | + Create a new task in release-notes-writer mode to generate Discord-formatted release notes |
| 177 | + based on the completed release notes file |
| 178 | + </details> |
| 179 | + <task_instructions> |
| 180 | + Generate Discord-formatted release notes for version X.Y.Z. |
| 181 | + |
| 182 | + Requirements: |
| 183 | + 1. Strip all PR links and references to PR numbers (#XXXX) |
| 184 | + 2. Keep structure and content identical to the existing release notes |
| 185 | + 3. Replace all internal documentation links to use https://docs.roocode.com/ prefix |
| 186 | + 4. If requested to compress sections, summarize using this format: |
| 187 | + ## :wrench: [Other Improvements and Fixes](https://docs.roocode.com/update-notes/vX.Y.Z#section-anchor) |
| 188 | + This release includes X additional enhancements, covering [list key areas]. A huge thank you to the contributors in these sections: [list contributors]! |
| 189 | + 5. At the bottom, include links to full release notes: |
| 190 | + [Full X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z) |
| 191 | + |
| 192 | + Convert the release notes from docs/update-notes/vX.Y.Z.mdx to Discord format. |
| 193 | + </task_instructions> |
| 194 | + </step> |
| 195 | + <step number="2"> |
| 196 | + <action>Handle compression requests</action> |
| 197 | + <details> |
| 198 | + If the user asks to compress specific sections, the subtask should: |
| 199 | + - Summarize the overall changes of the requested sections/points |
| 200 | + - Use the specified format for compressed sections |
| 201 | + - Thank only contributors from the compressed sections, not the overall release |
| 202 | + - Maintain links to the full release notes for detailed information |
| 203 | + </details> |
| 204 | + </step> |
| 205 | + </steps> |
| 206 | + </phase> |
177 | 207 | </main_workflow> |
178 | 208 |
|
179 | | - <completion_criteria> |
| 209 | + <completion_criteria> |
180 | 210 | <criterion>Release notes file created with proper formatting</criterion> |
181 | 211 | <criterion>All PRs analyzed and converted to user benefits</criterion> |
182 | 212 | <criterion>Index and sidebar files updated</criterion> |
|
0 commit comments