From 539ce3a8012658989d11531257e16789b059d251 Mon Sep 17 00:00:00 2001 From: Maxim Vershinin Date: Wed, 2 Sep 2026 12:45:38 +0500 Subject: [PATCH] feat (git): refactoring issue template added --- .gitea/ISSUE_TEMPLATE/refactor.yaml | 160 ++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 .gitea/ISSUE_TEMPLATE/refactor.yaml diff --git a/.gitea/ISSUE_TEMPLATE/refactor.yaml b/.gitea/ISSUE_TEMPLATE/refactor.yaml new file mode 100644 index 0000000..0a40aad --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/refactor.yaml @@ -0,0 +1,160 @@ +name: "Refactor Request" +description: "Propose a code restructuring or cleanup with no behavior change" +title: "[REFACTOR]: " +labels: ["refactoring"] +body: + - type: markdown + attributes: + value: | + ## โš ๏ธ Before You Begin + Please ensure you have: + - [ ] Searched existing issues (open and closed) to avoid duplicates + - [ ] Reviewed the [project documentation](https://git.vmn.su/max/audio_splitter/wiki) for architecture guidelines + - [ ] Confirmed this is a refactor (code restructuring with NO behavior change), not a bug fix or new feature + + + - type: textarea + id: problem + attributes: + label: "๐ŸŽฏ Problem Statement" + description: "What pain points does the current code cause? Why is this refactor needed?" + placeholder: | + The current implementation is difficult to maintain because... + This code has accumulated technical debt due to... + I'm constantly frustrated when working with this module because... + validations: + required: true + + - type: textarea + id: scope + attributes: + label: "๐Ÿ“‚ Scope" + description: "Which files, modules, or components need refactoring? Be specific." + placeholder: | + - File paths: `src/auth/`, `internal/handler/` + - Component: `UserService` class + validations: + required: true + + - type: textarea + id: current-state + attributes: + label: "๐Ÿ” Current State" + description: "Describe the current code structure, its issues, and why it's problematic" + placeholder: | + - The function `processUser()` is 500+ lines long + - Duplicated logic across 3 different files + - Mixed concerns (business logic + HTTP handling) + - Poor test coverage makes changes risky + - Naming is unclear and inconsistent + validations: + required: true + + - type: textarea + id: proposed-changes + attributes: + label: "๐Ÿ’ก Proposed Solution" + description: "What should the code look like after the refactor?" + placeholder: | + - Extract `processUser()` into smaller, focused functions + - Consolidate duplicated logic into a shared utility + - Separate business logic from HTTP handlers + - Introduce interfaces for better testability + - Rename variables and functions for clarity + validations: + required: true + + - type: textarea + id: constraints + attributes: + label: "๐Ÿšซ Constraints" + description: "What must NOT change? Public APIs, behavior, backward compatibility, performance characteristics?" + placeholder: | + - All public APIs must remain identical + - Database schema must not change + - External behavior must be identical + - Response formats must stay the same + - Performance must not degrade + validations: + required: true + + - type: textarea + id: benefits + attributes: + label: "๐Ÿ“ˆ Expected Benefits" + description: "What improvements will this refactor bring?" + placeholder: | + - Improved maintainability + - Better testability + - Reduced code duplication + - Clearer separation of concerns + - Easier onboarding for new contributors + validations: + required: false + + - type: textarea + id: risks + attributes: + label: "โš ๏ธ Risks & Mitigations" + description: "What could go wrong, and how will you mitigate it?" + placeholder: | + - Risk: Regression bugs + Mitigation: Comprehensive test coverage before and after + - Risk: Large diff making code review difficult + Mitigation: Break into smaller, incremental PRs + validations: + required: false + + - type: textarea + id: testing + attributes: + label: "๐Ÿงช Testing Strategy" + description: "How will you ensure the refactor doesn't break existing functionality?" + placeholder: | + - Existing test suite must pass + - Add regression tests before refactoring + - Run benchmarks to ensure no performance regression + - Manual testing of critical paths + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: "๐Ÿ”„ Alternatives Considered" + description: "What other approaches did you consider, and why did you reject them?" + placeholder: | + - Alternative A: Complete rewrite โ€” rejected because too risky + - Alternative B: Gradual deprecation โ€” rejected because too slow + validations: + required: false + + - type: dropdown + id: contribution + attributes: + label: "๐Ÿค Are you willing to contribute this refactor?" + description: "Knowing if you can help implement this helps us prioritize" + options: + - "Yes, I can contribute" + - "Yes, but I need guidance" + - "No, but I can review" + - "No, I'm just suggesting" + validations: + required: true + + - type: checkboxes + id: checklist + attributes: + label: "โœ… Submission Checklist" + description: "Please confirm the following before submitting" + options: + - label: "I have searched for existing issues (open and closed) that request the same refactor" + required: true + - label: "I have clearly explained the problem this refactor solves" + required: true + - label: "I have described the scope of the refactor (specific files/modules)" + required: true + - label: "I have identified what must NOT change (APIs, behavior, backward compatibility)" + required: true + - label: "I have described how the refactor will be tested" + required: true