diff --git a/.github/review-instructions.md b/.github/review-instructions.md index 021bf9134..7889693d7 100644 --- a/.github/review-instructions.md +++ b/.github/review-instructions.md @@ -2,29 +2,150 @@ ## Summary -When conducting a code review, follow these steps to ensure a thorough and constructive process. - +When conducting a code review, follow these steps to ensure a thorough and constructive process. **Ensure that all review guidelines are followed. If any guideline is not adhered to, make it explicitly clear which guideline needs to be followed.** ## Review Process 1. 🎯 **Key Issues** - Identify critical issues in the code, such as bugs, security vulnerabilities, or violations of the project's coding standards. + Identify critical issues in the code such as bugs, security vulnerabilities, or violations of the project's coding standards. + _Include specific links to files and line numbers (e.g., file.js#L10) where applicable._ 2. 💡 **Suggestions for Improvement** - Highlight areas where the code can be improved, such as readability, performance, or maintainability. + Highlight areas where the code can be enhanced in terms of readability, performance, maintainability, or adherence to best practices. + _Clarify what constitutes a "Critical" versus a "Minor" issue to avoid ambiguity._ 3. ✨ **Code Examples** - Provide specific examples of how the code can be improved. Use concise code snippets to illustrate your suggestions. + Provide specific, concise code snippets that illustrate your suggestions. + _Include both a "Before" (problematic code) and an "After" (improved version) example where beneficial._ 4. 📚 **Relevant Documentation Links** - Include links to relevant documentation or resources to help the author understand your suggestions better. + Attach links to useful resources or official documentation to support the suggested changes. + _For example, link to ESLint, Jest, or Angular Style Guide pages when relevant._ ## Tone and Feedback -- Be constructive and supportive. Frame suggestions as opportunities for growth. -- Use emojis to categorize feedback: - - 🚨 Critical issues - - ⚠️ Warnings - - 💡 Suggestions - - ✅ Good practices +- Be constructive and supportive. + Frame suggestions as opportunities for growth rather than criticism. +- Use the following emojis to categorize your feedback: + - 🚨 **Critical issues** + - ❗ **Minor Issues** + - ⚠️ **Warnings** + - 💡 **Suggestions** + - ✅ **Good practices** + +## Additional Informations + +- Treat missing tests and JSDocs as warnings + +### Review Template + +````markdown +# Code Review + +## Summary + +A brief overview of the code’s overall quality, highlighting key strengths and areas needing attention. This sets the stage for the detailed feedback below. + +--- + +## 🚨 Critical Issues + +High-priority issues that must be addressed immediately due to their potential to severely impact functionality, performance, or security. + +### 1. High Priority: [Issue Title] + +#### 🎯 Issue + +Describe the issue clearly, including links to specific files and lines (e.g., file.js#L10). Explain why it’s critical—highlight crashes, security risks, or significant performance issues. + +#### 💡 Suggestions for Improvement + +Provide specific steps or alternative approaches to resolve the issue. + +#### ✨ Code Example + +```typescript +// Before: Problematic code +// After: Improved version +``` + +#### 📚 Relevant Documentation + +Include URLs for further research (e.g., [Jest Documentation](https://jestjs.io/docs/getting-started)). + +--- + +## ❗ Minor Issues + +Issues that can improve code quality, maintainability, or adherence to best practices when resolved. + +### 1. Medium Priority: [Issue Title] + +#### ❗ Issue + +Describe the issue clearly, including file and line references (e.g., file.js#L10). Explain the impact on the project. + +#### 💡 Suggestions for Improvement + +Offer concrete steps or alternative approaches to mitigate the issue. + +#### ✨ Code Example + +```typescript +// Before: Problematic code +// After: Improved version +``` + +#### 📚 Relevant Documentation + +Provide links to further resources. + +--- + +## ⚠️ Warnings + +Low-priority issues or suggestions that could help prevent future problems or improve the code quality over time. + +### 1. Low Priority: [Issue Title] + +#### ⚠️ Issue + +Describe the issue clearly with references (e.g., file.js#L10). Explain the potential impact if left unaddressed. + +#### 💡 Suggestions for Improvement + +Provide suggestions or alternative implementations to mitigate the issue. + +#### ✨ Code Example + +```typescript +// Before: Problematic code +// After: Improved version +``` + +#### 📚 Relevant Documentation + +Include relevant resources for more information. + +--- + +## ✅ Good Practices + +Highlight positive aspects of the code to reinforce well-implemented patterns and encourage good practices. Use funny emoji at the beginning of each good practice. + +- Emoji **Good Practice 1**: + Describe a specific strength (e.g., clear code structure) with an example reference (e.g., file.js#L20). Explain why it’s commendable. +- Emoji **Good Practice 2**: + Outline another positive feature (e.g., effective error handling) with a snippet reference. +- Emoji **Good Practice 3**: + Outline another positive feature (e.g., effective error handling) with a snippet reference. +- ... + +--- + +## 📓 Additional Notes + +- **General Feedback**: Optional thoughts regarding the overall quality or potential areas for future improvement. +- **Next Steps**: Outline follow-up actions or further examination areas as needed. +````