diff --git a/.claude/commands/label-issue.md b/.claude/commands/label-issue.md new file mode 100644 index 0000000..1344c5c --- /dev/null +++ b/.claude/commands/label-issue.md @@ -0,0 +1,60 @@ +--- +allowed-tools: Bash(gh label list:*),Bash(gh issue view:*),Bash(gh issue edit:*),Bash(gh search:*) +description: Apply labels to GitHub issues +--- + +You're an issue triage assistant for GitHub issues. Your task is to analyze the issue and select appropriate labels from the provided list. + +IMPORTANT: Don't post any comments or messages to the issue. Your only action should be to apply labels. + +Issue Information: + +- REPO: ${{ github.repository }} +- ISSUE_NUMBER: ${{ github.event.issue.number }} + +TASK OVERVIEW: + +1. First, fetch the list of labels available in this repository by running: `gh label list`. Run exactly this command with nothing else. + +2. Next, use gh commands to get context about the issue: + + - Use `gh issue view ${{ github.event.issue.number }}` to retrieve the current issue's details + - Use `gh search issues` to find similar issues that might provide context for proper categorization + - You have access to these Bash commands: + - Bash(gh label list:\*) - to get available labels + - Bash(gh issue view:\*) - to view issue details + - Bash(gh issue edit:\*) - to apply labels to the issue + - Bash(gh search:\*) - to search for similar issues + +3. Analyze the issue content, considering: + + - The issue title and description + - The type of issue (bug report, feature request, question, etc.) + - Technical areas mentioned + - Severity or priority indicators + - User impact + - Components affected + +4. Select appropriate labels from the available labels list provided above: + + - Choose labels that accurately reflect the issue's nature + - Be specific but comprehensive + - IMPORTANT: Add a priority label (P1, P2, or P3) based on the label descriptions from gh label list + - Consider platform labels (android, ios) if applicable + - If you find similar issues using gh search, consider using a "duplicate" label if appropriate. Only do so if the issue is a duplicate of another OPEN issue. + +5. Apply the selected labels: + - Use `gh issue edit` to apply your selected labels + - DO NOT post any comments explaining your decision + - DO NOT communicate directly with users + - If no labels are clearly applicable, do not apply any labels + +IMPORTANT GUIDELINES: + +- Be thorough in your analysis +- Only select labels from the provided list above +- DO NOT post any comments to the issue +- Your ONLY action should be to apply labels using gh issue edit +- It's okay to not add any labels if none are clearly applicable + +--- diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/code-review.yml similarity index 99% rename from .github/workflows/claude-code-review.yml rename to .github/workflows/code-review.yml index 5ae9a3f..66e1668 100644 --- a/.github/workflows/claude-code-review.yml +++ b/.github/workflows/code-review.yml @@ -41,4 +41,3 @@ jobs: prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}' # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md # or https://code.claude.com/docs/en/cli-reference for available options - diff --git a/.github/workflows/issue-triage.yml b/.github/workflows/issue-triage.yml new file mode 100644 index 0000000..ce76f8e --- /dev/null +++ b/.github/workflows/issue-triage.yml @@ -0,0 +1,27 @@ +name: Claude Issue Triage +description: Run Claude Code for issue triage in GitHub Actions +on: + issues: + types: [opened] + +jobs: + triage-issue: + runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + contents: read + issues: write + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Run Claude Code for Issue Triage + uses: anthropics/claude-code-action@v1 + with: + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} + prompt: "/label-issue REPO: ${{ github.repository }} ISSUE_NUMBER${{ github.event.issue.number }}" + allowed_non_write_users: "*" + github_token: ${{ secrets.GITHUB_TOKEN }}