From 805bb4e74179f6c61291df4dff3d61f47a49bc1a Mon Sep 17 00:00:00 2001 From: Steven Date: Sat, 8 Nov 2025 10:28:51 +0800 Subject: [PATCH] chore(github): streamline issue templates with validation and better structure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Improve bug report and feature request templates to reduce duplicate submissions and gather better information: Bug Report Template: - Add pre-submission checklist requiring users to search existing issues and test on latest version/demo - Add dropdown for issue location (stable, dev, demo site, older version) - Restructure fields with clearer labels and better placeholders - Add "Expected Behavior" section for clarity - Combine screenshots and context with helpful prompts Feature Request Template: - Add pre-submission checklist to confirm issue search - Expand feature type categories (API/Backend, Integrations/Plugins, Security/Privacy, Performance) - Add "Problem or Use Case" field to understand the underlying need - Add "Alternatives Considered" section - Improve placeholders with specific examples 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/ISSUE_TEMPLATE/bug_report.yml | 87 ++++++++++++++++------ .github/ISSUE_TEMPLATE/feature_request.yml | 70 +++++++++++++---- .github/workflows/claude-code-review.yml | 57 -------------- .github/workflows/claude.yml | 50 ------------- 4 files changed, 120 insertions(+), 144 deletions(-) delete mode 100644 .github/workflows/claude-code-review.yml delete mode 100644 .github/workflows/claude.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index e0ddebd68..89e12f1c7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -5,35 +5,78 @@ body: - type: markdown attributes: value: | - Before submitting a bug report, please check if the issue is already present in the issues. If it is, please add a reaction to the issue. If it isn't, please fill out the form below. - - type: textarea + Thank you for taking the time to report a bug! Please complete the form below to help us understand and fix the issue. + + - type: checkboxes + id: pre-check attributes: - label: Describe the bug - description: | - Briefly describe the problem you are having in a few paragraphs. + label: Pre-submission Checklist + description: Please confirm you have completed the following steps before submitting + options: + - label: I have searched the existing issues and this bug has not been reported yet + required: true + - label: I have tested this issue on the [demo site](https://demo.usememos.com) or the latest version + required: true + + - type: dropdown + id: issue-location + attributes: + label: Where did you encounter this bug? + description: Select where you tested and confirmed this issue + options: + - Latest stable version (self-hosted) + - Latest development version (self-hosted) + - Demo site (demo.usememos.com) + - Older version (please specify below) + default: 0 validations: required: true - - type: textarea + + - type: input + id: version attributes: - label: Steps to reproduce - description: | - Provide the steps to reproduce the issue. + label: Memos Version + description: Provide the exact version (e.g., `v0.25.2`). Find this in Settings → About or via `--version` flag + placeholder: v0.25.2 + validations: + required: true + + - type: textarea + id: bug-description + attributes: + label: Bug Description + description: A clear and concise description of what the bug is + placeholder: When I try to..., the application... + validations: + required: true + + - type: textarea + id: reproduction-steps + attributes: + label: Steps to Reproduce + description: Detailed steps to reproduce the behavior placeholder: | 1. Go to '...' - 2. Click on '....' - 3. See error - validations: - required: true - - type: input - attributes: - label: | - The version of Memos you're using - description: | - Provide the version of Memos you're using. Please use the following format: `v0.22.0` instead of `stable` or `latest`. + 2. Click on '...' + 3. Scroll down to '...' + 4. See error validations: required: true + - type: textarea + id: expected-behavior attributes: - label: Screenshots or additional context - description: | - If applicable, add screenshots to help explain your problem. And add any other context about the problem here. Such as the device you're using, etc. + label: Expected Behavior + description: What did you expect to happen? + placeholder: I expected... + + - type: textarea + id: additional-context + attributes: + label: Screenshots & Additional Context + description: Add screenshots, browser/OS info, deployment method (Docker/binary), or any other relevant details + placeholder: | + - Browser: Chrome 120 + - OS: macOS 14 + - Deployment: Docker + - Database: SQLite diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 6a312f56d..f76b5737f 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -5,32 +5,72 @@ body: - type: markdown attributes: value: | - Before submitting a feature request, please check if the issue is already present in the issues. If it is, please add a reaction to the issue. If it isn't, please fill out the form below. - - type: textarea + Thank you for suggesting a new feature! Please complete the form below to help us understand your idea. + + - type: checkboxes + id: pre-check attributes: - label: Describe the solution you'd like - description: | - A clear and concise description of what you want to happen. - placeholder: | - It would be great if [...] - validations: - required: true + label: Pre-submission Checklist + description: Please confirm you have completed the following steps before submitting + options: + - label: I have searched the existing issues and this feature has not been requested yet + required: true + - type: dropdown + id: feature-type attributes: - label: Type of feature + label: Type of Feature description: What type of feature is this? options: - User Interface (UI) - User Experience (UX) - - API + - API / Backend - Documentation - - Integrations + - Integrations / Plugins + - Security / Privacy + - Performance - Other default: 0 validations: required: true + - type: textarea + id: problem-statement attributes: - label: Additional context - description: | - What are you trying to do? Why is this important to you? + label: Problem or Use Case + description: What problem does this feature solve? What are you trying to accomplish? + placeholder: | + I often need to... but currently there's no way to... + This would help me/users to... + validations: + required: true + + - type: textarea + id: proposed-solution + attributes: + label: Proposed Solution + description: A clear and concise description of what you want to happen + placeholder: | + It would be great if Memos could... + For example, a button/feature that... + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Have you considered any alternative solutions or workarounds? + placeholder: | + I've tried... but it doesn't work well because... + An alternative could be... + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context, mockups, screenshots, or examples about the feature request + placeholder: | + - Similar feature in other apps: ... + - Mockups or screenshots: ... + - Related discussions: ... diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml deleted file mode 100644 index 205b0fe26..000000000 --- a/.github/workflows/claude-code-review.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Claude Code Review - -on: - pull_request: - types: [opened, synchronize] - # Optional: Only run on specific file changes - # paths: - # - "src/**/*.ts" - # - "src/**/*.tsx" - # - "src/**/*.js" - # - "src/**/*.jsx" - -jobs: - claude-review: - # Optional: Filter by PR author - # if: | - # github.event.pull_request.user.login == 'external-contributor' || - # github.event.pull_request.user.login == 'new-developer' || - # github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' - - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: read - issues: read - id-token: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Run Claude Code Review - id: claude-review - uses: anthropics/claude-code-action@v1 - with: - claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} - prompt: | - REPO: ${{ github.repository }} - PR NUMBER: ${{ github.event.pull_request.number }} - - Please review this pull request and provide feedback on: - - Code quality and best practices - - Potential bugs or issues - - Performance considerations - - Security concerns - - Test coverage - - Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback. - - Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR. - - # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md - # or https://docs.claude.com/en/docs/claude-code/cli-reference for available options - claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"' - diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml deleted file mode 100644 index 412cef9e6..000000000 --- a/.github/workflows/claude.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Claude Code - -on: - issue_comment: - types: [created] - pull_request_review_comment: - types: [created] - issues: - types: [opened, assigned] - pull_request_review: - types: [submitted] - -jobs: - claude: - if: | - (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || - (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || - (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || - (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: read - issues: read - id-token: write - actions: read # Required for Claude to read CI results on PRs - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Run Claude Code - id: claude - uses: anthropics/claude-code-action@v1 - with: - claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} - - # This is an optional setting that allows Claude to read CI results on PRs - additional_permissions: | - actions: read - - # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it. - # prompt: 'Update the pull request description to include a summary of changes.' - - # Optional: Add claude_args to customize behavior and configuration - # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md - # or https://docs.claude.com/en/docs/claude-code/cli-reference for available options - # claude_args: '--allowed-tools Bash(gh pr:*)' -