Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 74 additions & 77 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,28 @@
name: Detailed Feature Proposal
description: Propose a specific, actionable feature or enhancement for implementation
description: Report a specific problem that needs solving in Roo Code
labels: ["proposal", "enhancement"]
body:
- type: markdown
attributes:
value: |
**Thank you for proposing a feature for Roo Code!**
**Thank you for submitting a feature request for Roo Code!**

This template is for specific, actionable proposals following our [Issue-First Approach](https://github.com/RooCodeInc/Roo-Code/blob/main/CONTRIBUTING.md).
This template helps you describe problems that need solving. Focus on the problem - the Roo team will work to design solutions unless you want to contribute the implementation yourself.

**Quality over speed:** We prefer detailed, clear proposals over quick ones. Vague proposals often get closed or require multiple rounds of clarification, which wastes everyone's time.
**Quality over speed:** We prefer detailed, clear problem descriptions over quick ones. Vague requests often get closed or require multiple rounds of clarification, which wastes everyone's time.

**Before submitting:**
- Search existing [Issues](https://github.com/RooCodeInc/Roo-Code/issues) and [Discussions](https://github.com/RooCodeInc/Roo-Code/discussions) to avoid duplicates
- For general ideas, use [GitHub Discussions](https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests) first, or use the #collaboration-board channel in our [Discord](https://discord.gg/roocode)
- Join [Discord](https://discord.gg/roocode) and DM **Hannes Rudolph** (`hrudolph`) for guidance

**Review process:** A maintainer (especially @hannesrudolph) will review this proposal. **Do not start implementation until approved and assigned.** We're a small team with limited resources, so every code addition needs careful consideration. We're always happy to receive clear, actionable proposals though!
- For general ideas, use [GitHub Discussions](https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests) instead of this template.

- type: markdown
attributes:
value: |
## ❌ Common mistakes that lead to proposal rejection:
## ❌ Common mistakes that lead to request rejection:
- **Vague problem descriptions:** "UI is bad" -> Should be: "Submit button is invisible on dark theme"
- **Solution without context:** "Add feature X" -> Should explain the problem first, then the solution
- **Missing user impact:** "This would be cool" -> Should explain who benefits and how
- **No acceptance criteria:** How do we know when it's done? What does success look like?
- **No specific context:** Describe exactly when and how the problem occurs

If you're unsure how a good proposal should look like, you can check out our [Roadmap](https://github.com/orgs/RooCodeInc/projects/1/views/1?query=sort%3Aupdated-desc+is%3Aopen&filterQuery=is%3Aissue%2Copen%2Cclosed+label%3A%22feature+request%22+status%3A%22Issue+%5BUnassigned%5D%22%2C%22Issue+%5BIn+Progress%5D%22) where we have a list of all open feature requests that are ready to be implemented or currently being worked on.

- type: textarea
id: problem-description
Expand Down Expand Up @@ -55,11 +50,68 @@ body:
validations:
required: true


- type: textarea
id: additional-context
attributes:
label: Additional context (optional)
description: Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.

- type: checkboxes
id: checklist
attributes:
label: Request checklist
options:
- label: I've searched existing Issues and Discussions for duplicates
required: true
- label: This describes a specific problem with clear impact and context
required: true

- type: markdown
attributes:
value: |
---

## 🛠️ **Optional: Contributing & Technical Analysis**

**🎯 Just reporting a problem?** You can click "Submit new issue" right now! The sections below are only needed if you want to contribute a solution via pull request.

**⚠️ Only continue if you want to:**
- Propose a specific solution design
- Implement the feature yourself via pull request
- Provide technical analysis to help with implementation

**For contributors who continue:**
- A maintainer (especially @hannesrudolph) will review this proposal. **Do not start implementation until approved and assigned.** We're a small team with limited resources, so every code addition needs careful consideration. We're always happy to receive clear, actionable proposals though!
- Join [Discord](https://discord.gg/roocode) and DM **Hannes Rudolph** (`hrudolph`) for guidance on implementation
- Check our [Roadmap](https://github.com/orgs/RooCodeInc/projects/1/views/1?query=sort%3Aupdated-desc+is%3Aopen&filterQuery=is%3Aissue%2Copen%2Cclosed+label%3A%22feature+request%22+status%3A%22Issue+%5BUnassigned%5D%22%2C%22Issue+%5BIn+Progress%5D%22) to see open feature requests ready to be implemented or currently being worked on

- type: checkboxes
id: willingness-to-contribute
attributes:
label: Interested in implementing this?
description: |
**Important:** If you check "Yes" below, the technical sections become REQUIRED.
We need detailed technical analysis from contributors to ensure quality implementation.
options:
- label: Yes, I'd like to help implement this feature
required: false

- type: checkboxes
id: implementation-approval
attributes:
label: Implementation requirements
options:
- label: I understand this needs approval before implementation begins
required: false

- type: textarea
id: proposed-solution
attributes:
label: How should this be solved?
label: How should this be solved? (REQUIRED if contributing, optional otherwise)
description: |
**If you want to implement this feature, this section is REQUIRED.**

**Describe your solution in detail.** Explain not just what to build, but how it should work.

✅ **Good examples:**
Expand All @@ -77,14 +129,14 @@ body:
- How will users interact with it?
- What will the new behaviour look like?
placeholder: Describe the specific changes and how they will work. Include user interaction details if relevant.
validations:
required: true

- type: textarea
id: acceptance-criteria
attributes:
label: How will we know it works? (Acceptance Criteria)
label: How will we know it works? (Acceptance Criteria - REQUIRED if contributing, optional otherwise)
description: |
**If you want to implement this feature, this section is REQUIRED.**

**This is crucial - don't skip it.** Define what "working" looks like with specific, testable criteria.

**Format suggestion:**
Expand All @@ -108,42 +160,14 @@ body:
placeholder: |
Define specific, testable criteria. What should users be able to do? What should happen? What should NOT happen?
Use the Given/When/Then format above or your own clear structure.
validations:
required: true

- type: textarea
id: estimated-effort
attributes:
label: Estimated effort and complexity
description: |
**Help us understand the scope.** This helps with planning and prioritisation.

**Please include:**
- **Size estimate:** XS/Small/Medium/Large/XL (or hours/days if you prefer)
- **Reasoning:** What makes it this size? Which parts are complex?
- **Main challenges:** What's the trickiest bit to implement?
- **Dependencies:** Does this require other changes or external libraries?

**Example:**
```
Size: Large (2-3 weeks)
Reasoning: Touches task execution engine, UI components, and state management
Main challenges: Preventing memory leaks with parallel execution and managing shared resources
Dependencies: Might need to add a new dependency for the new feature
```
placeholder: |
Size: [your estimate]
Reasoning: [why this size?]
Main challenges: [what's tricky?]
Dependencies: [what else is needed?]
validations:
required: true

- type: textarea
id: technical-considerations
attributes:
label: Technical considerations (optional but helpful)
label: Technical considerations (REQUIRED if contributing, optional otherwise)
description: |
**If you want to implement this feature, this section is REQUIRED.**

Share technical insights that could help planning:
- Implementation approach or architecture changes
- Performance implications
Expand All @@ -155,40 +179,13 @@ body:
- type: textarea
id: trade-offs-and-risks
attributes:
label: Trade-offs and risks (optional)
label: Trade-offs and risks (REQUIRED if contributing, optional otherwise)
description: |
**If you want to implement this feature, this section is REQUIRED.**

What could go wrong or what alternatives did you consider?
- Alternative approaches and why you chose this one
- Potential negative impacts (performance, UX, etc.)
- Breaking changes or migration concerns
- Edge cases that need careful handling
placeholder: 'e.g., "Alternative: use library X but it is 500KB larger", "Risk: might slow older devices", "Breaking: changes API response format"'

- type: textarea
id: additional-context
attributes:
label: Additional context (optional)
description: Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.

- type: checkboxes
id: checklist
attributes:
label: Proposal checklist
options:
- label: I've searched existing Issues and Discussions for duplicates
required: true
- label: This is a specific, actionable proposal with clear problem and solution
required: true
- label: I've included concrete acceptance criteria
required: true
- label: I understand this needs approval before implementation begins
required: true

- type: checkboxes
id: willingness-to-contribute
attributes:
label: Interested in implementing this?
description: Optional - doesn't affect proposal consideration
options:
- label: Yes, I'd like to help implement this feature
required: false
Loading