Skip to content

Commit a3c59ec

Browse files
feat: Add subtask todo list support and Featherless AI provider (#317)
- Updated documentation and release notes for version 3.25.21, 3.25.22, and 3.25.23.
1 parent 9383b2e commit a3c59ec

23 files changed

+1180
-1471
lines changed

.roo/rules-release-notes-writer/1_main_workflow.xml

Lines changed: 115 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<workflow_instructions>
22
<mode_overview>
33
Automates creating release notes for new Roo Code versions. Fetches pull requests
4-
from GitHub, analyzes changes, and generates notes based on doc standards.
5-
Also handles Discord formatting, version-only requests, and auto-detection of missing versions.
4+
from GitHub, analyzes changes, generates user-focused notes, and handles Discord
5+
formatting. Supports version-only requests and auto-detection of missing versions.
66
</mode_overview>
77

88
<entry_patterns>
@@ -14,6 +14,10 @@
1414
<trigger>Discord release notes for X.Y.Z</trigger>
1515
<action>Generate Discord format from existing files</action>
1616
</pattern>
17+
<pattern type="discord_combined">
18+
<trigger>Combined Discord announcement for X.Y.Z, X.Y.Z, and X.Y.Z</trigger>
19+
<action>Generate combined Discord format from multiple release files</action>
20+
</pattern>
1721
<pattern type="version_only">
1822
<trigger>^v?[\d.]+$</trigger>
1923
<action>Extract PR list and ask how to proceed</action>
@@ -24,6 +28,23 @@
2428
</pattern>
2529
</entry_patterns>
2630

31+
<critical_date_format>
32+
<format>ISO 8601: YYYY-MM-DD</format>
33+
<specification>
34+
- YYYY = 4-digit year (e.g., 2025)
35+
- MM = 2-digit MONTH (01-12) - NOT the day!
36+
- DD = 2-digit day (01-31)
37+
</specification>
38+
<examples>
39+
<correct>2025-07-18 (July 18, 2025)</correct>
40+
<correct>2025-01-13 (January 13, 2025)</correct>
41+
<incorrect>2025-18-07 (Invalid - would mean 18th month)</incorrect>
42+
</examples>
43+
<implementation>
44+
When PR list provided directly: Use new Date().toISOString().split('T')[0]
45+
</implementation>
46+
</critical_date_format>
47+
2748
<main_workflow>
2849
<phase name="initialization">
2950
<step number="1">
@@ -59,21 +80,20 @@
5980
<step number="2" optional="true">
6081
<action>Handle user-provided PR list</action>
6182
<when>User provides PR numbers directly</when>
62-
<critical>
63-
MUST execute date validation:
64-
- Use new Date().toISOString().split('T')[0] for current date
65-
- Validate format YYYY-MM-DD where MM is month (01-12)
66-
- Common error: Confusing MM-DD order
67-
</critical>
83+
<critical>Validate date format (MM is month, not day)</critical>
6884
</step>
6985

7086
<step number="3">
7187
<action>Fetch PRs from GitHub</action>
7288
<skip_if>User provided PR list</skip_if>
73-
<tools>
74-
- gh api for release dates
75-
- gh pr list for merged PRs in date range
76-
</tools>
89+
<commands>
90+
<get_tag_date><![CDATA[
91+
gh api repos/RooCodeInc/Roo-Code/git/refs/tags/vX.Y.Z --jq '.object.sha' | xargs -I {} gh api repos/RooCodeInc/Roo-Code/git/commits/{} --jq '.committer.date'
92+
]]></get_tag_date>
93+
<search_prs><![CDATA[
94+
gh pr list --repo RooCodeInc/Roo-Code --state merged --search "merged:YYYY-MM-DD..YYYY-MM-DD" --json number,title,author,mergedAt --limit 1000
95+
]]></search_prs>
96+
</commands>
7797
</step>
7898
</phase>
7999

@@ -89,46 +109,68 @@
89109
<subtask_pattern>
90110
<for_each>PR in list</for_each>
91111
<action>Create investigation subtask</action>
92-
<message>
93-
Investigate PR #[number] for release notes v[version].
94-
1. Get PR details (gh pr view)
95-
2. Extract linked issues
96-
3. Get issue details
97-
4. Categorize change
98-
5. Identify documentation needs (new features, behavior changes, deprecations)
99-
6. Append to temp_pr_analysis.md using insert_content line 0
100-
101-
Include documentation flags:
102-
- docs-new: Completely new feature
103-
- docs-update: Existing docs need updating
104-
- docs-example: New examples needed
105-
- docs-migration: Breaking changes
106-
107-
CRITICAL: Never create/overwrite files, only append.
108-
</message>
112+
<message><![CDATA[
113+
Investigate PR #[number] for release notes v[version].
114+
1. Get PR details (gh pr view)
115+
2. Extract linked issues
116+
3. Get issue details
117+
4. Categorize change
118+
5. Identify documentation needs (new features, behavior changes, deprecations)
119+
6. Append to temp_pr_analysis.md using insert_content line 0
120+
121+
Include documentation flags:
122+
- docs-new: Completely new feature
123+
- docs-update: Existing docs need updating
124+
- docs-example: New examples needed
125+
- docs-migration: Breaking changes
126+
127+
CRITICAL: Never create/overwrite files, only append.
128+
]]></message>
109129
</subtask_pattern>
130+
131+
<output_format><![CDATA[
132+
## PR #[number]: [Title]
133+
134+
**Author**: [username]
135+
**Linked Issues**: #[issue] (reporter: [username])
136+
**Category**: [Category]
137+
**User Impact**: [Benefit description]
138+
**Contributors**: [list]
139+
**Documentation Needs**: [none|docs-new|docs-update|docs-example|docs-migration]
140+
**Documentation Notes**: [If applicable, what needs documenting]
141+
142+
---
143+
]]></output_format>
110144
</phase>
111145

112146
<phase name="compilation">
113147
<step number="1">
114148
<action>Read and organize PR findings</action>
115149
<categories>Features, QOL Improvements, Bug Fixes, Provider Updates</categories>
116-
<note>QOL Improvements must come before Bug Fixes</note>
150+
<critical>QOL Improvements MUST come before Bug Fixes</critical>
117151
</step>
118152

119153
<step number="2">
120154
<action>Confirm feature highlighting with user</action>
121-
<details>See user_confirmation_workflow for detailed process</details>
155+
<tool>ask_followup_question</tool>
156+
<template><![CDATA[
157+
I've analyzed all PRs for v[VERSION]. Here are the changes I found:
158+
159+
**Major Features:**
160+
[List major features with brief descriptions]
161+
162+
**Bug Fixes:** [COUNT] fixes
163+
**QOL Improvements:** [COUNT] improvements
164+
**Other Changes:** [COUNT] items
165+
166+
Which features should I highlight with expanded sections in the release notes?
167+
]]></template>
122168
<critical>Must get explicit confirmation before writing notes</critical>
123169
</step>
124170

125171
<step number="3">
126172
<action>Create release notes file</action>
127173
<format>docs/update-notes/vX.Y.Z.mdx</format>
128-
<includes>
129-
- Proper documentation links for features
130-
- See documentation_handling for link patterns
131-
</includes>
132174
</step>
133175

134176
<step number="4">
@@ -153,63 +195,64 @@
153195
<tool>new_task with mode="documentation-writer"</tool>
154196
</step>
155197
</phase>
156-
157-
<phase name="review" optional="true">
158-
<step number="1">
159-
<action>Cross-reference with changelog if exists</action>
160-
<details>Compare generated notes with changelog entries</details>
161-
</step>
162-
163-
<step number="2">
164-
<action>User review loop</action>
165-
<loop_until>User approves or cancels</loop_until>
166-
<options>
167-
- Create PR
168-
- Make changes
169-
- Show files
170-
</options>
171-
</step>
172-
</phase>
173198
</main_workflow>
174199

175200
<special_workflows>
176201
<workflow name="discord_only">
177202
<description>Generate Discord format from existing release files</description>
203+
<transformations>
204+
- Remove PR links and numbers
205+
- Convert /path to https://docs.roocode.com/path
206+
- Add footer link with markdown format
207+
- Handle compression if requested
208+
- Wrap entire output in markdown code block
209+
</transformations>
210+
<formatting_rules>
211+
<rule>Title format: # 🚀 Roo Code X.Y.Z Release Notes</rule>
212+
<rule>Include summary in intro sentence listing key features</rule>
213+
<rule>Use "Feature Highlights" instead of "Major Features"</rule>
214+
<rule>Never use the word "powerful"</rule>
215+
<rule>No version numbers in body text (only header/footer)</rule>
216+
<rule>No "Happy coding!" or similar closings</rule>
217+
<rule>Footer: 📚 **Full Release Notes** [vX.Y.Z](link)</rule>
218+
</formatting_rules>
219+
<output>Formatted text wrapped in ```markdown code block (no files created)</output>
220+
</workflow>
221+
222+
<workflow name="discord_combined">
223+
<description>Generate combined Discord format from multiple release files</description>
178224
<steps>
179-
<step>Parse version numbers from request</step>
180-
<step>Verify files exist</step>
181-
<step>Apply Discord transformations:
182-
- Remove PR links
183-
- Convert internal links to full URLs
184-
- Add footer link
185-
- Handle compression if requested
186-
</step>
187-
<step>Output formatted text (no files created)</step>
225+
<step>Read all specified release note files</step>
226+
<step>Merge and deduplicate features across versions</step>
227+
<step>Create unified summary sentence</step>
228+
<step>Apply Discord formatting rules</step>
188229
</steps>
230+
<formatting_rules>
231+
<rule>Title format: # 🚀 Roo Code X.Y.Z-X.Y.Z Release Updates</rule>
232+
<rule>Intro sentence summarizes all key features from all versions</rule>
233+
<rule>Combine similar sections across versions</rule>
234+
<rule>Footer with links to each version: [vX.Y.Z](link) | [vX.Y.Z](link)</rule>
235+
<rule>Wrap entire output in ```markdown code block</rule>
236+
</formatting_rules>
237+
<output>Combined formatted text (no files created)</output>
189238
</workflow>
190239

191240
<workflow name="version_only">
192241
<description>Extract PR list when user provides just a version</description>
193242
<steps>
194243
<step>Spawn PR extraction subtask</step>
195244
<step>Subtask writes PR list to temp_pr_list.md</step>
196-
<step>Ask user how to proceed:
197-
- Create full release notes
198-
- Show PR list
199-
- Select specific PRs
200-
- Cancel
201-
</step>
245+
<step>Ask user how to proceed</step>
202246
</steps>
203247
</workflow>
204248

205249
<workflow name="latest">
206250
<description>Auto-detect missing versions</description>
207251
<steps>
208252
<step>Find most recent release notes</step>
209-
<step>Read changelog (or GitHub releases)</step>
253+
<step>Read changelog or GitHub releases</step>
210254
<step>Identify missing versions</step>
211255
<step>Ask which to process</step>
212-
<step>Process selected versions sequentially</step>
213256
</steps>
214257
</workflow>
215258
</special_workflows>
@@ -227,5 +270,8 @@
227270
<rule priority="HIGH">
228271
Focus on user benefits, not technical implementation
229272
</rule>
273+
<rule priority="HIGH">
274+
QOL Improvements section MUST come before Bug Fixes
275+
</rule>
230276
</critical_rules>
231277
</workflow_instructions>

0 commit comments

Comments
 (0)