Skip to content

Commit b0f4ea7

Browse files
feat: update issue-writer mode rules for streamlined feature request template (RooCodeInc#4850)
1 parent 775457c commit b0f4ea7

File tree

5 files changed

+267
-112
lines changed

5 files changed

+267
-112
lines changed

.roo/rules-issue-writer/1_workflow.xml

Lines changed: 95 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@
3030
- Any error messages or logs
3131

3232
For Feature Requests, ensure you have:
33-
- Specific problem description with impact
34-
- Detailed proposed solution
35-
- Clear acceptance criteria in Given/When/Then format
36-
- Effort estimation with reasoning
33+
- Specific problem description with impact (who is affected, when it happens, current vs expected behavior, impact)
34+
- Additional context if available (mockups, screenshots, links)
35+
36+
IMPORTANT: Do NOT ask for solution design, acceptance criteria, or technical details
37+
unless the user explicitly states they want to contribute the implementation.
3738

3839
Use multiple ask_followup_question calls if needed to gather all information.
3940
Be specific in your questions based on what's missing.
@@ -63,8 +64,31 @@
6364
</step>
6465

6566
<step number="4">
66-
<name>Explore Codebase for Context</name>
67+
<name>Determine if User Wants to Contribute</name>
6768
<instructions>
69+
Before exploring the codebase, determine if the user wants to contribute the implementation:
70+
71+
<ask_followup_question>
72+
<question>Are you interested in implementing this feature yourself, or are you just reporting the problem for the Roo team to solve?</question>
73+
<follow_up>
74+
<suggest>Just reporting the problem - the Roo team can design the solution</suggest>
75+
<suggest>I want to contribute and implement this feature myself</suggest>
76+
<suggest>I'm not sure yet, but I'd like to provide technical analysis</suggest>
77+
</follow_up>
78+
</ask_followup_question>
79+
80+
Based on their response:
81+
- If just reporting: Skip to step 6 (Draft Issue - Problem Only)
82+
- If contributing: Continue to step 5 (Explore Codebase)
83+
- If providing analysis: Continue to step 5 but make technical sections optional
84+
</instructions>
85+
</step>
86+
87+
<step number="5">
88+
<name>Explore Codebase for Contributors</name>
89+
<instructions>
90+
ONLY perform this step if the user wants to contribute or provide technical analysis.
91+
6892
Use codebase_search FIRST to understand the relevant parts of the codebase:
6993

7094
For Bug Reports:
@@ -88,22 +112,27 @@
88112
- read_file on specific files to understand implementation
89113
- search_files for specific error messages or patterns
90114

91-
Formulate an independent technical plan to solve the problem, disregarding any solution proposed by the issue author.
115+
Formulate an independent technical plan to solve the problem.
92116

93117
Document all relevant findings including:
94118
- File paths and line numbers
95119
- Current implementation details
96120
- Your proposed implementation plan
97121
- Related code that might be affected
122+
123+
Then gather additional technical details:
124+
- Ask for proposed solution approach
125+
- Request acceptance criteria in Given/When/Then format
126+
- Discuss technical considerations and trade-offs
98127
</instructions>
99128
</step>
100129

101-
<step number="5">
102-
<name>Draft Complete Issue Content</name>
130+
<step number="6">
131+
<name>Draft Issue Content</name>
103132
<instructions>
104-
Create the complete issue body following the exact template structure.
133+
Create the issue body based on whether the user is just reporting or contributing.
105134

106-
For Bug Reports, format as:
135+
For Bug Reports, format is the same regardless of contribution intent:
107136
```
108137
## App Version
109138
[version from user]
@@ -137,6 +166,7 @@
137166
[paste any error messages or logs]
138167
```
139168

169+
[If user is contributing, add:]
140170
## Technical Analysis
141171

142172
Based on my investigation:
@@ -146,7 +176,30 @@
146176
- **Proposed Fix:** [Detail the fix from your implementation plan.]
147177
```
148178

149-
For Feature Requests, format as:
179+
For Feature Requests - PROBLEM REPORTERS (not contributing):
180+
```
181+
## What specific problem does this solve?
182+
183+
[Detailed problem description following the template guidelines]
184+
185+
**Who is affected:** [user groups]
186+
**When this happens:** [specific scenarios]
187+
**Current behavior:** [what happens now]
188+
**Expected behavior:** [what should happen]
189+
**Impact:** [time wasted, errors, productivity loss]
190+
191+
## Additional context
192+
193+
[Any mockups, screenshots, links, or other supporting information]
194+
195+
## Related Discussions
196+
197+
[If any related discussions were found, list them here]
198+
- Closes #[discussion number] - [discussion title]
199+
- Related to #[discussion number] - [discussion title]
200+
```
201+
202+
For Feature Requests - CONTRIBUTORS (implementing the feature):
150203
```
151204
## What specific problem does this solve?
152205

@@ -158,9 +211,20 @@
158211
**Expected behavior:** [what should happen]
159212
**Impact:** [time wasted, errors, productivity loss]
160213

214+
## Additional context
215+
216+
[Any mockups, screenshots, links, or other supporting information]
217+
218+
---
219+
220+
## 🛠️ Contributing & Technical Analysis
221+
222+
✅ **I'm interested in implementing this feature**
223+
✅ **I understand this needs approval before implementation begins**
224+
161225
## How should this be solved?
162226

163-
[Based on your independent analysis, describe your proposed solution here. Disregard the author's proposal.]
227+
[Based on your analysis, describe the proposed solution]
164228

165229
**What will change:**
166230
- [Specific change 1]
@@ -182,29 +246,32 @@
182246

183247
[Add multiple scenarios as needed]
184248

185-
## Estimated Effort and Complexity
186-
187-
**Size:** [estimate]
188-
**Reasoning:** [why this size]
189-
**Main challenges:** [technical difficulties]
190-
**Dependencies:** [what's needed]
191-
192-
## Technical Implementation Plan
249+
## Technical Considerations
193250

194-
Based on my analysis from the previous step:
251+
**Implementation approach:**
195252
- Key files to modify: [list with paths]
196253
- Current architecture: [brief description]
197254
- Integration points: [where this fits]
198255
- Similar patterns in codebase: [examples]
199-
- Implementation Steps: [Provide a detailed, step-by-step guide for your proposed solution.]
200256

201-
## Technical Considerations
257+
**Performance implications:**
258+
[Any performance considerations]
202259

203-
[Any additional technical details]
260+
**Compatibility concerns:**
261+
[Any compatibility issues]
204262

205263
## Trade-offs and Risks
206264

207-
[Alternatives considered and potential issues]
265+
**Alternatives considered:**
266+
- [Alternative 1]: [Why not chosen]
267+
- [Alternative 2]: [Why not chosen]
268+
269+
**Potential risks:**
270+
- [Risk 1]: [Mitigation strategy]
271+
- [Risk 2]: [Mitigation strategy]
272+
273+
**Breaking changes:**
274+
[Any breaking changes or migration needs]
208275

209276
## Related Discussions
210277

@@ -215,7 +282,7 @@
215282
</instructions>
216283
</step>
217284

218-
<step number="6">
285+
<step number="7">
219286
<name>Review and Confirm with User</name>
220287
<instructions>
221288
Present the complete drafted issue to the user for review:
@@ -238,7 +305,7 @@
238305
</instructions>
239306
</step>
240307

241-
<step number="7">
308+
<step number="8">
242309
<name>Create GitHub Issue</name>
243310
<instructions>
244311
Once user confirms, create the issue using the GitHub MCP tool:
@@ -251,7 +318,7 @@
251318
"owner": "RooCodeInc",
252319
"repo": "Roo-Code",
253320
"title": "[Create a descriptive title based on the issue content]",
254-
"body": "[The complete formatted issue body from step 4]",
321+
"body": "[The complete formatted issue body from step 6]",
255322
"labels": [Use ["bug"] for bug reports or ["proposal", "enhancement"] for features]
256323
}
257324
</arguments>

.roo/rules-issue-writer/2_github_issue_templates.xml

Lines changed: 55 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@
6969

7070
<feature_request_template>
7171
<name>Detailed Feature Proposal</name>
72-
<description>Propose a specific, actionable feature or enhancement for implementation</description>
72+
<description>Report a specific problem that needs solving in Roo Code</description>
7373
<labels>["proposal", "enhancement"]</labels>
74-
<fields>
74+
<required_fields>
7575
<field name="problem-description" type="textarea" required="true">
7676
<label>What specific problem does this solve?</label>
7777
<description>
@@ -95,9 +95,30 @@
9595
</description>
9696
<placeholder>Be specific about the problem, who it affects, and the impact. Avoid generic statements like "it's slow" or "it's confusing."</placeholder>
9797
</field>
98-
<field name="proposed-solution" type="textarea" required="true">
99-
<label>How should this be solved?</label>
98+
<field name="additional-context" type="textarea" required="false">
99+
<label>Additional context (optional)</label>
100+
<description>Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.</description>
101+
</field>
102+
</required_fields>
103+
104+
<contributor_fields>
105+
<field name="willingness-to-contribute" type="checkbox">
106+
<label>Interested in implementing this?</label>
107+
<description>
108+
**Important:** If you check "Yes" below, the technical sections become REQUIRED.
109+
We need detailed technical analysis from contributors to ensure quality implementation.
110+
</description>
111+
<option>Yes, I'd like to help implement this feature</option>
112+
</field>
113+
<field name="implementation-approval" type="checkbox">
114+
<label>Implementation requirements</label>
115+
<option>I understand this needs approval before implementation begins</option>
116+
</field>
117+
<field name="proposed-solution" type="textarea" required_if_contributing="true">
118+
<label>How should this be solved? (REQUIRED if contributing, optional otherwise)</label>
100119
<description>
120+
**If you want to implement this feature, this section is REQUIRED.**
121+
101122
**Describe your solution in detail.** Explain not just what to build, but how it should work.
102123

103124
✅ **Good examples:**
@@ -117,9 +138,11 @@
117138
</description>
118139
<placeholder>Describe the specific changes and how they will work. Include user interaction details if relevant.</placeholder>
119140
</field>
120-
<field name="acceptance-criteria" type="textarea" required="true">
121-
<label>How will we know it works? (Acceptance Criteria)</label>
141+
<field name="acceptance-criteria" type="textarea" required_if_contributing="true">
142+
<label>How will we know it works? (Acceptance Criteria - REQUIRED if contributing, optional otherwise)</label>
122143
<description>
144+
**If you want to implement this feature, this section is REQUIRED.**
145+
123146
**This is crucial - don't skip it.** Define what "working" looks like with specific, testable criteria.
124147

125148
**Format suggestion:**
@@ -146,35 +169,11 @@
146169
Use the Given/When/Then format above or your own clear structure.
147170
</placeholder>
148171
</field>
149-
<field name="estimated-effort" type="textarea" required="true">
150-
<label>Estimated effort and complexity</label>
172+
<field name="technical-considerations" type="textarea" required_if_contributing="true">
173+
<label>Technical considerations (REQUIRED if contributing, optional otherwise)</label>
151174
<description>
152-
**Help us understand the scope.** This helps with planning and prioritisation.
175+
**If you want to implement this feature, this section is REQUIRED.**
153176

154-
**Please include:**
155-
- **Size estimate:** XS/Small/Medium/Large/XL
156-
- **Reasoning:** What makes it this size? Which parts are complex?
157-
- **Main challenges:** What's the trickiest bit to implement?
158-
- **Dependencies:** Does this require other changes or external libraries?
159-
160-
**Example:**
161-
```
162-
Size: Large
163-
Reasoning: Touches task execution engine, UI components, and state management
164-
Main challenges: Preventing memory leaks with parallel execution and managing shared resources
165-
Dependencies: Might need to add a new dependency for the new feature
166-
```
167-
</description>
168-
<placeholder>
169-
Size: [your estimate]
170-
Reasoning: [why this size?]
171-
Main challenges: [what's tricky?]
172-
Dependencies: [what else is needed?]
173-
</placeholder>
174-
</field>
175-
<field name="technical-considerations" type="textarea" required="false">
176-
<label>Technical considerations (optional but helpful)</label>
177-
<description>
178177
Share technical insights that could help planning:
179178
- Implementation approach or architecture changes
180179
- Performance implications
@@ -184,9 +183,11 @@
184183
</description>
185184
<placeholder>e.g., "Will need to refactor task manager", "Could impact memory usage on large files", "Requires a large portion of code to be rewritten"</placeholder>
186185
</field>
187-
<field name="trade-offs-and-risks" type="textarea" required="false">
188-
<label>Trade-offs and risks (optional)</label>
186+
<field name="trade-offs-and-risks" type="textarea" required_if_contributing="true">
187+
<label>Trade-offs and risks (REQUIRED if contributing, optional otherwise)</label>
189188
<description>
189+
**If you want to implement this feature, this section is REQUIRED.**
190+
190191
What could go wrong or what alternatives did you consider?
191192
- Alternative approaches and why you chose this one
192193
- Potential negative impacts (performance, UX, etc.)
@@ -195,10 +196,24 @@
195196
</description>
196197
<placeholder>e.g., "Alternative: use library X but it is 500KB larger", "Risk: might slow older devices", "Breaking: changes API response format"</placeholder>
197198
</field>
198-
<field name="additional-context" type="textarea" required="false">
199-
<label>Additional context (optional)</label>
200-
<description>Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.</description>
201-
</field>
202-
</fields>
199+
</contributor_fields>
203200
</feature_request_template>
201+
202+
<template_changes_summary>
203+
<change type="focus_shift">
204+
Template now focuses on problem reporting first, with solution contribution as optional
205+
</change>
206+
<change type="required_fields">
207+
Only problem description and context are required for basic submission
208+
</change>
209+
<change type="contributor_section">
210+
Technical fields (solution, acceptance criteria, etc.) are only required if user wants to contribute
211+
</change>
212+
<change type="clear_exit_point">
213+
Users can submit after describing the problem without technical details
214+
</change>
215+
<change type="guidance_separation">
216+
Implementation guidance moved to contributor section only
217+
</change>
218+
</template_changes_summary>
204219
</github_issue_templates>

0 commit comments

Comments
 (0)