1+ <discord_only_workflow_instructions >
2+ <overview >
3+ Specialized workflow for generating Discord-formatted release notes from existing release files.
4+ This allows users to quickly get Discord-ready announcements without creating release notes from scratch.
5+ </overview >
6+
7+ <entry_patterns >
8+ <description >
9+ User messages that trigger the Discord-only workflow
10+ </description >
11+ <patterns >
12+ <pattern >Discord release notes for X.Y.Z</pattern >
13+ <pattern >Generate Discord format for vX.Y.Z</pattern >
14+ <pattern >Discord announcement for X.Y.Z, A.B.C, D.E.F</pattern >
15+ <pattern >Discord notes for v3.23.14</pattern >
16+ <pattern >Discord release notes for 3.23.14, 3.23.15</pattern >
17+ </patterns >
18+ </entry_patterns >
19+
20+ <workflow_steps >
21+ <step number =" 1" >
22+ <title >Parse Version Numbers</title >
23+ <action >Extract version numbers from user request</action >
24+ <details >
25+ Support multiple formats:
26+ - Single version: "3.23.14" or "v3.23.14"
27+ - Multiple versions: "3.23.14, 3.23.15, 3.23.16"
28+ - Mixed formats: "v3.23.14, 3.23.15, v3.23.16"
29+ </details >
30+ <parsing_rules >
31+ <rule >Strip 'v' prefix if present</rule >
32+ <rule >Split by commas for multiple versions</rule >
33+ <rule >Trim whitespace</rule >
34+ <rule >Validate version format (X.Y.Z)</rule >
35+ </parsing_rules >
36+ </step >
37+
38+ <step number =" 2" >
39+ <title >Check File Existence</title >
40+ <action >Verify release notes files exist</action >
41+ <tool >list_files</tool >
42+ <details >
43+ Check docs/update-notes/ for each requested version file (vX.Y.Z.mdx)
44+ </details >
45+ <error_handling >
46+ <missing_files >
47+ <action >Report which versions are missing</action >
48+ <example ><![CDATA[
49+ <ask_followup_question>
50+ <question>I couldn't find release notes for the following versions: v3.23.16, v3.23.17. Would you like me to:</question>
51+ <follow_up>
52+ <suggest>Generate Discord notes for the versions that exist (3.23.14, 3.23.15)</suggest>
53+ <suggest mode="release-notes-writer">Create release notes for v3.23.16 first</suggest>
54+ <suggest>Cancel this request</suggest>
55+ </follow_up>
56+ </ask_followup_question>
57+ ]]> </example >
58+ </missing_files >
59+ </error_handling >
60+ </step >
61+
62+ <step number =" 3" >
63+ <title >Process Each Version</title >
64+ <action >Generate Discord format for each existing version</action >
65+ <substeps >
66+ <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 >
70+ </substep >
71+ <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+ </substep >
81+ <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 >
93+ </substep >
94+ </substeps >
95+ </step >
96+
97+ <step number =" 4" >
98+ <title >Format Output</title >
99+ <action >Present Discord-ready text</action >
100+ <single_version_format ><![CDATA[
101+ # Roo Code X.Y.Z Release Notes
102+
103+ [Summary sentence from original]
104+
105+ ## [Major Feature Name]
106+
107+ [Feature description without PR links]
108+
109+ ## Bug Fixes
110+
111+ * **[Fix Name]**: [Description] (thanks [contributors]!)
112+ * **[Another Fix]**: [Description] (thanks [contributors]!)
113+
114+ [Full X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z)
115+ ]]> </single_version_format >
116+ <multiple_versions_format ><![CDATA[
117+ # Roo Code Release Notes
118+
119+ ## Version X.Y.Z
120+
121+ [Summary and key changes]
122+
123+ ## Version A.B.C
124+
125+ [Summary and key changes]
126+
127+ ---
128+ Full release notes:
129+ - [X.Y.Z Release Notes](https://docs.roocode.com/update-notes/vX.Y.Z)
130+ - [A.B.C Release Notes](https://docs.roocode.com/update-notes/vA.B.C)
131+ ]]> </multiple_versions_format >
132+ </step >
133+
134+ <step number =" 5" >
135+ <title >Provide Copy Instructions</title >
136+ <action >Give user the formatted text with copy guidance</action >
137+ <completion_message >
138+ Here's the Discord-formatted release notes. You can copy and paste this directly into Discord.
139+
140+ [Include formatted text in a code block for easy copying]
141+ </completion_message >
142+ </step >
143+ </workflow_steps >
144+
145+ <implementation_details >
146+ <detail name =" no_file_creation" >
147+ <description >This workflow does not create or modify any files</description >
148+ <reason >It only reads existing files and outputs formatted text</reason >
149+ </detail >
150+ <detail name =" no_github_api" >
151+ <description >No GitHub API calls are needed</description >
152+ <reason >All information comes from existing release note files</reason >
153+ </detail >
154+ <detail name =" immediate_response" >
155+ <description >Workflow completes quickly without subtasks</description >
156+ <reason >Simple file reading and text transformation</reason >
157+ </detail >
158+ </implementation_details >
159+
160+ <examples >
161+ <example name =" single_version" >
162+ <user_request >Discord release notes for 3.23.14</user_request >
163+ <workflow >
164+ 1. Parse version: 3.23.14
165+ 2. Check file exists: docs/update-notes/v3.23.14.mdx ✓
166+ 3. Read file and transform
167+ 4. Output Discord-formatted text
168+ </workflow >
169+ </example >
170+
171+ <example name =" multiple_versions" >
172+ <user_request >Generate Discord announcement for v3.23.14, v3.23.15, v3.23.16</user_request >
173+ <workflow >
174+ 1. Parse versions: 3.23.14, 3.23.15, 3.23.16
175+ 2. Check files: v3.23.14.mdx ✓, v3.23.15.mdx ✓, v3.23.16.mdx ✗
176+ 3. Ask user how to proceed with missing v3.23.16
177+ 4. Process existing versions
178+ 5. Output combined Discord announcement
179+ </workflow >
180+ </example >
181+
182+ <example name =" with_compression" >
183+ <user_request >Discord notes for 3.23.14, compress the minor fixes</user_request >
184+ <workflow >
185+ 1. Parse version and compression request
186+ 2. Check file exists
187+ 3. Read and transform with compression
188+ 4. Output condensed Discord format
189+ </workflow >
190+ </example >
191+ </examples >
192+
193+ <error_scenarios >
194+ <scenario name =" no_versions_found" >
195+ <trigger >User provides version numbers but no files exist</trigger >
196+ <response >Explain that no release notes exist and offer to create them</response >
197+ </scenario >
198+ <scenario name =" invalid_version_format" >
199+ <trigger >User provides invalid version format (e.g., "3.23" without patch)</trigger >
200+ <response >Ask for clarification on the full version number</response >
201+ </scenario >
202+ <scenario name =" ambiguous_request" >
203+ <trigger >Unclear if user wants Discord format or full release notes</trigger >
204+ <response >Ask for clarification with suggested options</response >
205+ </scenario >
206+ </error_scenarios >
207+ </discord_only_workflow_instructions >
0 commit comments