feat(ui): added august changelog #19
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Claude Code Review Workflow | |
# | |
# This workflow provides automated code review using Claude AI with a dual-job architecture: | |
# | |
# 1. **pr_review_summary**: Automatic summary review on every PR (opened/reopened/synchronized) | |
# - Provides a high-level review with severity table and quality score | |
# - Uses simplified GitHub API tools for commenting | |
# - Runs silently without verbose output | |
# | |
# 2. **code_review**: Detailed inline review triggered by "@claude please review" comments | |
# - Provides detailed inline comments using GitHub's review system | |
# - Uses comprehensive GitHub API tools for pull request reviews | |
# - Creates pending review, adds inline comments, then submits as non-blocking | |
# | |
# 3. **claude**: General purpose Claude assistant for any "@claude" mentions | |
# - Responds to comments, issues, and reviews containing "@claude" | |
# - Uses the main Claude action with standard toolset | |
# | |
# Race condition prevention: Jobs have mutually exclusive triggers to prevent conflicts. | |
name: Claude Code | |
# Prevent concurrent runs on the same PR to avoid conflicts | |
concurrency: | |
group: claude-${{ github.event_name }}-${{ github.event.pull_request.number || github.event.issue.number || github.run_id }} | |
cancel-in-progress: false | |
on: | |
pull_request: | |
types: [opened, reopened, synchronize] | |
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') && !contains(github.event.comment.body, '@claude please review')) || | |
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude') && !contains(github.event.comment.body, '@claude please review')) || | |
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude') && !contains(github.event.review.body, '@claude please review')) || | |
(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 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Run Claude Code | |
id: claude | |
uses: anthropics/claude-code-action@main | |
with: | |
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
pr_review_summary: | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pull-requests: write | |
issues: write | |
id-token: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Authenticate GitHub CLI | |
run: gh auth setup-git | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run Claude Code | |
id: claude | |
uses: anthropics/claude-code-action@main | |
with: | |
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
model: claude-sonnet-4-20250514 | |
use_sticky_comment: true | |
allowed_tools: | | |
mcp__github__get_pull_request_diff, | |
mcp__github__create_issue_comment, | |
mcp__github__update_issue_comment | |
direct_prompt: | | |
You are a senior product engineer. | |
Please provide a thorough review of this pull request. | |
Pay extra attention to coding standards, security practices, | |
test coverage, readability, maintainability, and performance. | |
Focus on: | |
- Correctness & hidden bugs (edge cases, race conditions, off-by-one, etc.) | |
- Performance hot-spots (Big-O, memory, DB queries, async misuse) | |
- Security implications and vulnerabilities (injection, XSS, secrets exposure) | |
- Readability & maintainability (naming, duplication, comments) | |
- Test coverage gaps (suggest unit/integration tests) | |
- Code quality and best practices | |
- Potential bugs or issues | |
- Performance considerations | |
- Documentation updates if needed | |
- Architecture and design decisions | |
Reply with: | |
- *One-sentence purpose summary* of the changes. | |
- A **table** with columns **Severity (Critical/High/Medium/Low)**, **File/Line(s)**, **Issue**, **Recommendation**. | |
- Concrete code samples for any non-trivial fix. | |
- An overall quality score **/10** and the top 3 next steps. | |
Provide constructive feedback with specific suggestions for improvement. | |
Use <details> and <summary> md tags to show summary in comment and view details on click. | |
Please review this PR and provide feedback as a single PR comment. Follow these steps: | |
1. **Get diff information**: Use `mcp__github__get_pull_request_diff` to understand the code changes and line numbers | |
2. **Create or update comment**: | |
- If a comment_id is provided, use `mcp__github__update_issue_comment` to update the existing comment | |
- If no comment_id is provided, use `mcp__github__create_issue_comment` to create a new comment | |
Provide a comprehensive review in a single comment that covers all the important aspects of the PR. Include file paths and line numbers in your feedback table for easy reference. | |
Explicitely mention in header that writing `@claude please review` in the comment will trigger a full reviews. | |
code_review: | |
if: | | |
(github.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '@claude please review')) || | |
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude please review')) | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pull-requests: write | |
issues: write | |
id-token: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Authenticate GitHub CLI | |
run: gh auth setup-git | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run Claude Code | |
id: claude | |
uses: anthropics/claude-code-action@main | |
with: | |
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
model: claude-sonnet-4-20250514 | |
use_sticky_comment: true | |
allowed_tools: | | |
mcp__github__create_pending_pull_request_review, | |
mcp__github__add_pull_request_review_comment_to_pending_review, | |
mcp__github__submit_pending_pull_request_review, | |
mcp__github__get_pull_request_diff, | |
mcp__github__delete_pending_pull_request_review, | |
mcp__github__get_pull_request_review_comments | |
direct_prompt: | | |
You are a senior product engineer. | |
Pay extra attention to coding standards, security practices, | |
test coverage, readability, maintainability, and performance. | |
Focus on: | |
- Correctness & hidden bugs (edge cases, race conditions, off-by-one, etc.) | |
- Performance hot-spots (Big-O, memory, DB queries, async misuse) | |
- Security implications and vulnerabilities (injection, XSS, secrets exposure) | |
- Readability & maintainability (naming, duplication, comments) | |
- Test coverage gaps (suggest unit/integration tests) | |
- Code quality and best practices | |
- Potential bugs or issues | |
- Performance considerations | |
- Documentation updates if needed | |
- Architecture and design decisions | |
Make sure that: | |
- in typescript code all functions and methods have to have type annotations of arguments and return value | |
- all typescript code is compatible with `strict` mode | |
Please comment on this PR and provide inline feedback using the GitHub review system. Follow these steps: | |
0. **Delete pending review**: Use `mcp__github__delete_pending_pull_request_review` to delete any existing pending review | |
1. **Start a review**: Use `mcp__github__create_pending_pull_request_review` to begin a pending review | |
2. **Get diff information**: Use `mcp__github__get_pull_request_diff` to understand the code changes and line numbers | |
3. **Get existing comments**: Use `mcp__github__get_pull_request_review_comments` to get all existing comments | |
4. **Add inline comments**: Use `mcp__github__add_pull_request_review_comment_to_pending_review` for each specific piece of feedback on particular lines. If there is already a similar comment, do not add a new comment. | |
5. **Submit the review**: Use `mcp__github__submit_pending_pull_request_review` with event type "COMMENT" (not "REQUEST_CHANGES") to publish all comments as a non-blocking review | |
6. **Important**: Submit as "COMMENT" type so the review doesn't block the PR. | |
7. **Important**: wrap all of the claude review comment in <details> tag; <summary> tag has to contain only "Claude comment inside" text | |