Skip to content

Splat build.ps1 arguments as a hashtable so the CI dispatch inputs work #299

Splat build.ps1 arguments as a hashtable so the CI dispatch inputs work

Splat build.ps1 arguments as a hashtable so the CI dispatch inputs work #299

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:
# Fork PRs cannot request OIDC tokens and contain untrusted input. A
# maintainer can request a review explicitly by commenting `@claude`.
if: github.event.pull_request.head.repo.full_name == github.repository
# 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: |
Please review this pull request and provide feedback on:
- Breaking changes, if any
- Style and conventions
- New quantities or units
- See `.agents/criteria-for-adding-quantities-and-units.md` for guidance and criteria, they should be widely used and well defined
- If it seems domain specific or obscure we ask for justification and use cases
- Changes to generated code
- Focus feedback on changes to code generators
- Tie feedback to specific examples from generated code to explain, try to pick 1-3 quantities of different types, e.g. `Length` (`ILinearQuantity`), `Temperature` (`IAffineQuantity`) and `Level` (`ILogarithmicQuantity`)
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Test coverage
- Security concerns, but only if medium or higher severity
Use the repository's CLAUDE.md for guidance on style and conventions.
Be constructive and helpful in your feedback, keep it concise.
Make the review outcome and every bullet point easy to scan:
- Start with exactly one of these headings:
- `## ✅ Review: No actionable findings`
- `## ⚠️ Review: Non-blocking findings`
- `## ❌ Review: Blocking findings`
- Prefix every section heading with an emoji that summarizes its most severe bullet,
for example `### ✅ Test coverage`, `### ⚠️ Breaking changes`, or `### ❌ Code quality & correctness`.
- For both the overall review and each section, use ❌ if it contains any defects or blocking issues,
otherwise ⚠️ if it contains any non-blocking concerns, questions, or suggestions, otherwise ✅.
- Prefix every feedback bullet with exactly one status emoji:
- ✅ for a positive verification or something that is correct as-is
- ⚠️ for a non-blocking concern, question, or suggestion
- ❌ for a defect or blocking issue that should be fixed
- Keep each bullet to one status. If a point contains both positive and negative feedback, split it into separate bullets.
- When a section has no findings, either omit it or write `✅ No concerns identified.`
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/sdk#command-line 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:*)"'