Skip to content

Commit a448afc

Browse files
feat: align Discord-only workflow with standard workflow subtask approach (#261)
Co-authored-by: Roo Code <[email protected]>
1 parent a531c3d commit a448afc

File tree

1 file changed

+115
-109
lines changed

1 file changed

+115
-109
lines changed

.roo/rules-release-notes-writer/10_discord_only_workflow.xml

Lines changed: 115 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -60,36 +60,60 @@
6060
</step>
6161

6262
<step number="3">
63-
<title>Process Each Version</title>
64-
<action>Generate Discord format for each existing version</action>
63+
<title>Process Each Version Using Subtasks</title>
64+
<action>Create Discord formatting subtask for each existing version</action>
65+
<details>
66+
For each version that exists, create a subtask to handle the Discord formatting.
67+
This ensures consistency with the standard workflow's Discord formatting approach.
68+
</details>
6569
<substeps>
6670
<substep number="1">
67-
<action>Read release notes file</action>
68-
<tool>read_file</tool>
69-
<file>docs/update-notes/vX.Y.Z.mdx</file>
71+
<action>Create temporary results file</action>
72+
<tool>write_to_file</tool>
73+
<file>temp_discord_results.md</file>
74+
<content># Discord Release Notes Results
75+
76+
</content>
77+
<details>Initialize a file to collect results from subtasks</details>
7078
</substep>
7179
<substep number="2">
72-
<action>Apply Discord transformations</action>
73-
<transformations>
74-
<transform>Remove frontmatter</transform>
75-
<transform>Strip PR links and numbers</transform>
76-
<transform>Convert internal links to full URLs</transform>
77-
<transform>Preserve emoji and formatting</transform>
78-
<transform>Add version-specific footer</transform>
79-
</transformations>
80+
<action>Create Discord formatting subtask for each version</action>
81+
<tool>new_task</tool>
82+
<details>
83+
For each existing version, create a release-notes-writer subtask.
84+
</details>
85+
<message_format>
86+
Generate Discord-formatted release notes for version X.Y.Z.
87+
88+
Requirements:
89+
1. Strip all PR links and numbers (#XXXX).
90+
2. Keep structure and content.
91+
3. Prepend https://docs.roocode.com/ to all internal doc links.
92+
4. If compressing, summarize with this format:
93+
## :wrench: [Other Improvements and Fixes](https://docs.roocode.com/update-notes/vX.Y.Z#section-anchor)
94+
This release includes X other fixes covering [list key areas]. Thanks to contributors: [list contributors].
95+
5. Add footer link:
96+
[Full X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z)
97+
98+
Convert docs/update-notes/vX.Y.Z.mdx to Discord format.
99+
Write the result to temp_discord_release_notes.md.
100+
101+
Special handling: [Include any compression or highlights-only requests from user]
102+
</message_format>
80103
</substep>
81104
<substep number="3">
82-
<action>Handle special requests</action>
83-
<options>
84-
<option name="compression">
85-
<trigger>User mentions "compress" or "summarize"</trigger>
86-
<action>Compress minor sections into summary</action>
87-
</option>
88-
<option name="highlights_only">
89-
<trigger>User mentions "highlights" or "major features"</trigger>
90-
<action>Include only major features and important fixes</action>
91-
</option>
92-
</options>
105+
<action>Wait for subtask completion</action>
106+
<details>
107+
The subtask will handle reading the file, applying transformations, and writing results.
108+
</details>
109+
</substep>
110+
<substep number="4">
111+
<action>Read subtask results and append to collection</action>
112+
<tool>read_file</tool>
113+
<file>temp_discord_release_notes.md</file>
114+
<details>
115+
After each subtask completes, read its output and append to the results collection.
116+
</details>
93117
</substep>
94118
</substeps>
95119
</step>
@@ -132,71 +156,41 @@
132156
</step>
133157

134158
<step number="5">
135-
<title>Format Output</title>
136-
<action>Present Discord-ready text based on version count</action>
137-
<single_version_format><![CDATA[
138-
# Roo Code X.Y.Z Release Notes
139-
140-
[Summary sentence from original]
141-
142-
## [Major Feature Name]
143-
144-
[Feature description without PR links]
145-
146-
## Bug Fixes
147-
148-
* **[Fix Name]**: [Description] (thanks [contributors]!)
149-
* **[Another Fix]**: [Description] (thanks [contributors]!)
150-
151-
[Full X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z)
152-
]]></single_version_format>
153-
<multiple_versions_combined_format><![CDATA[
154-
# Roo Code Release Notes (vX.Y.Z - vA.B.C)
155-
156-
Combined release notes for versions X.Y.Z through A.B.C.
157-
158-
## Major Features
159-
160-
* **[Feature Name]** (vX.Y.Z): [Description without PR links]
161-
* **[Another Feature]** (vA.B.C): [Description]
162-
163-
## Bug Fixes
164-
165-
* **[Category]**: [Fix description] (vX.Y.Z) (thanks [contributor]!)
166-
* **[Category]**: [Another fix] (vA.B.C) (thanks [contributor]!)
167-
168-
## Improvements
169-
170-
* **[Improvement Type]**: [Description] (vX.Y.Z)
171-
* **[Another Type]**: [Description] (vA.B.C)
172-
173-
---
174-
Full release notes:
175-
- [X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z)
176-
- [A.B.C Release Notes](https://docs.roocode.com/update-notes/vA.B.C)
177-
]]></multiple_versions_combined_format>
178-
<multiple_versions_separate_format><![CDATA[
179-
# Roo Code Release Notes
180-
181-
## Version X.Y.Z
182-
183-
[Summary and key changes]
184-
185-
## Version A.B.C
186-
187-
[Summary and key changes]
188-
189-
---
190-
Full release notes:
191-
- [X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z)
192-
- [A.B.C Release Notes](https://docs.roocode.com/update-notes/vA.B.C)
193-
]]></multiple_versions_separate_format>
194-
<format_selection>
195-
<rule>Use combined format when user explicitly requests "combined" or "merge"</rule>
196-
<rule>Use combined format for 2-3 closely related patch versions (e.g., 3.23.14, 3.23.15)</rule>
197-
<rule>Use separate format for many versions or major/minor releases</rule>
198-
<rule>Ask user preference if unclear</rule>
199-
</format_selection>
159+
<title>Compile and Format Final Output</title>
160+
<action>Read all subtask results and format based on version count</action>
161+
<substeps>
162+
<substep number="1">
163+
<action>Read collected results</action>
164+
<tool>read_file</tool>
165+
<file>temp_discord_results.md</file>
166+
<details>Read all Discord-formatted content from subtasks</details>
167+
</substep>
168+
<substep number="2">
169+
<action>Determine output format</action>
170+
<details>
171+
Based on number of versions and user preferences, choose appropriate format:
172+
- Single version: Present as-is from subtask
173+
- Multiple versions with "combine" request: Merge into unified sections
174+
- Multiple versions default: Present separately
175+
</details>
176+
</substep>
177+
<substep number="3">
178+
<action>Apply final formatting if needed</action>
179+
<details>
180+
For multiple versions, may need to:
181+
- Combine sections by category
182+
- Add version indicators to items
183+
- Consolidate duplicate contributors
184+
- Create unified header and footer
185+
</details>
186+
</substep>
187+
</substeps>
188+
<single_version_note>
189+
For single versions, the subtask output can be used directly without additional formatting.
190+
</single_version_note>
191+
<multiple_versions_note>
192+
For multiple versions, additional processing may be needed to combine or organize the content appropriately.
193+
</multiple_versions_note>
200194
</step>
201195

202196
<step number="6">
@@ -215,17 +209,24 @@ Full release notes:
215209
</workflow_steps>
216210

217211
<implementation_details>
218-
<detail name="no_file_creation">
219-
<description>This workflow does not create or modify any files</description>
220-
<reason>It only reads existing files and outputs formatted text</reason>
212+
<detail name="no_permanent_files">
213+
<description>This workflow does not create or modify any permanent files</description>
214+
<reason>It only reads existing files and uses temporary files for subtask coordination</reason>
221215
</detail>
222216
<detail name="no_github_api">
223217
<description>No GitHub API calls are needed</description>
224218
<reason>All information comes from existing release note files</reason>
225219
</detail>
226-
<detail name="immediate_response">
227-
<description>Workflow completes quickly without subtasks</description>
228-
<reason>Simple file reading and text transformation</reason>
220+
<detail name="subtask_based">
221+
<description>Uses subtasks for consistency with standard workflow</description>
222+
<reason>Ensures Discord formatting logic remains consistent across all workflows</reason>
223+
</detail>
224+
<detail name="temporary_files">
225+
<description>Uses temporary files for subtask communication</description>
226+
<files>
227+
<file>temp_discord_results.md - Collects all subtask outputs</file>
228+
<file>temp_discord_release_notes.md - Individual subtask output</file>
229+
</files>
229230
</detail>
230231
</implementation_details>
231232

@@ -235,8 +236,9 @@ Full release notes:
235236
<workflow>
236237
1. Parse version: 3.23.14
237238
2. Check file exists: docs/update-notes/v3.23.14.mdx ✓
238-
3. Read file and transform
239-
4. Output Discord-formatted text
239+
3. Create Discord formatting subtask
240+
4. Subtask reads file and transforms content
241+
5. Read subtask output and present to user
240242
</workflow>
241243
</example>
242244

@@ -246,9 +248,10 @@ Full release notes:
246248
1. Parse versions: 3.23.14, 3.23.15, 3.23.16
247249
2. Check files: v3.23.14.mdx ✓, v3.23.15.mdx ✓, v3.23.16.mdx ✗
248250
3. Ask user how to proceed with missing v3.23.16
249-
4. Process existing versions
250-
5. Determine format: separate sections for each version
251-
6. Output Discord announcement with version sections
251+
4. Create subtasks for existing versions
252+
5. Collect subtask outputs
253+
6. Format as separate sections for each version
254+
7. Output Discord announcement with version sections
252255
</workflow>
253256
</example>
254257

@@ -257,10 +260,11 @@ Full release notes:
257260
<workflow>
258261
1. Parse versions: 3.23.14, 3.23.15
259262
2. Check both files exist
260-
3. Read and process both versions
261-
4. Detect "combine" keyword - use combined format
262-
5. Merge features, fixes, and improvements with version tags
263-
6. Output single combined announcement
263+
3. Create subtasks for each version
264+
4. Collect subtask outputs
265+
5. Detect "combine" keyword - use combined format
266+
6. Merge features, fixes, and improvements with version tags
267+
7. Output single combined announcement
264268
</workflow>
265269
</example>
266270

@@ -269,8 +273,9 @@ Full release notes:
269273
<workflow>
270274
1. Parse version and compression request
271275
2. Check file exists
272-
3. Read and transform with compression
273-
4. Output condensed Discord format
276+
3. Create subtask with compression instructions
277+
4. Subtask applies compression during transformation
278+
5. Output condensed Discord format
274279
</workflow>
275280
</example>
276281

@@ -279,9 +284,10 @@ Full release notes:
279284
<workflow>
280285
1. Parse range: 3.23.14 to 3.23.16
281286
2. Find all versions in range
282-
3. Process each version's content
283-
4. Combine into unified sections with version indicators
284-
5. Output merged announcement
287+
3. Create subtasks for each version
288+
4. Collect all subtask outputs
289+
5. Combine into unified sections with version indicators
290+
6. Output merged announcement
285291
</workflow>
286292
</example>
287293
</examples>

0 commit comments

Comments
 (0)