fix(ci): rewrite Claude Code workflow for working automated PR reviews#43
fix(ci): rewrite Claude Code workflow for working automated PR reviews#43carlos-alm merged 1 commit intomainfrom
Conversation
Switch from broken v1 plugin-based config to @beta with direct_prompt: - Use direct_prompt instead of prompt + invalid allowed_tools input - Use @beta action which supports automated review without @claude mention - Use read permissions (action handles posting via OIDC token) - Skip bot-generated PRs (dependabot, renovate) - Add phased review prompt (root cause → config scrutiny → test integrity → code quality) - Upgrade actions/checkout to v6
Greptile SummaryThis PR fixes the broken Claude Code automated review workflow by switching from Major changes:
Key improvements:
Considerations:
Confidence Score: 4/5
Important Files Changed
Last reviewed commit: 1ed4121 |
| (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'))) | ||
| automated-review: | ||
| if: github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' |
There was a problem hiding this comment.
Bot filtering logic may not work as expected — github.event.pull_request.user.type should check against the string 'Bot' (case-sensitive). GitHub sets this field to 'Bot' for apps like Dependabot, but verify this matches the actual API response structure.
Also note: this won't filter Renovate if it runs as a user account rather than a bot account. Consider checking github.actor against a list of known bot names if needed.
| permissions: | ||
| contents: read | ||
| pull-requests: write | ||
| issues: write | ||
| pull-requests: read | ||
| issues: read | ||
| id-token: write |
There was a problem hiding this comment.
Downgrading permissions from write to read — verify that the @beta action can post PR review comments via OIDC without needing pull-requests: write. If the action posting fails, you'll need to restore pull-requests: write.
- GitNexus overall score corrected from 4.7 to 4.5 to match the arithmetic mean of its six sub-scores (5+5+4+4+4+5)/6 = 4.5 - Tier 2 renumbered starting at #38 (was duplicating #37 with Tier 1); also resolves the pre-existing duplicate #43 (Bikach/ChrisRoyse now #44/#45), with all subsequent entries incremented accordingly - jelly section header updated from 417 to 423 stars to match the ranking table
…#559) * docs: update competitive analysis for v3.2.0 and March 2026 landscape Re-rank codegraph from #8 (4.0) to #5 (4.5) reflecting v3.2.0 features: 41 CLI commands, 32 MCP tools, dataflow across all 11 languages, CFG, sequence diagrams, architecture boundaries, unified graph model. Add new competitors: GitNexus (#1, 18k stars), DeusData/codebase-memory-mcp (#6, 793 stars in 25 days). Update star counts and feature status across all 85+ ranked projects. Mark 7 roadmap items as DONE. Flag stagnant projects. Update joern.md (3,021 stars, 75 contributors, 4 community MCP wrappers) and narsil-mcp.md (129 stars, SPA frontend, +36 security rules, development paused since Feb 25). * docs: fix narsil SPA version attribution in competitive analysis overview Line 18 incorrectly stated "v1.6.1" as the version when the SPA feature was introduced. The SPA frontend was added in v1.6.0; v1.6.1 is the current release. Updated to "added v1.6.0, current v1.6.1" to match the detailed narsil-mcp.md entry. * docs: remove hardcoded star count from joern comparison table The "32 stars, growing" value in the Community & maturity row hardcodes a stale star count. Other comparison tables use "Growing" consistently for codegraph's community status. Updated to match. * fix: correct GitNexus score, Tier 2 rank numbering, and jelly star count - GitNexus overall score corrected from 4.7 to 4.5 to match the arithmetic mean of its six sub-scores (5+5+4+4+4+5)/6 = 4.5 - Tier 2 renumbered starting at #38 (was duplicating #37 with Tier 1); also resolves the pre-existing duplicate #43 (Bikach/ChrisRoyse now #44/#45), with all subsequent entries incremented accordingly - jelly section header updated from 417 to 423 stars to match the ranking table * fix: correct aider rank and codegraph star count per review feedback * fix: align scoring breakdown sub-scores with overall rankings for stagnant projects glimpse: Community 4→2 (stagnant since Jan 2026), avg now 3.83≈3.8 matching ranking. autodev-codebase: Community 3→1 (stagnant since Jan 2026), avg now 3.33, ranking updated 3.4→3.3. * fix: align ranking scores with sub-score averages for colbymchenry and axon * fix: correct ranking inversion at positions #23/#24 (#559) autodev-codebase (3.3) was ranked #23 above Claude-code-memory (3.4) at #24. Swapped to maintain descending score order. * fix: correct score mismatches for code-graph-rag (4.5→4.2) and arbor (3.7→4.2) (#559) * fix: sync breakdown table row order with ranking table for #23/#24 (#559) * fix: correct ranking inversions and stale rank references (#559) * fix: correct sub-score/overall-score mismatches for codexray, loregrep, MATE * fix: correct score mismatches and aider header rank * fix: update narsil-mcp Key Metrics to reflect development stagnation (#559) * fix: add missing "vs arbor" comparison section (#559) * fix: remove duplicate vs-glimpse section and correct role names in vs-arbor (#559) The duplicate vs-glimpse block (stale rank #10) was left behind when vs-arbor was inserted. Removed it — the correct version exists at #11. Also fixed role vocabulary in vs-arbor: bridge → adapter, added entry.
Summary
allowed_toolsis not a valid input on@v1and the plugin config was brokenanthropics/claude-code-action@v1to@betawhich supportsdirect_promptfor automated PR reviewswritetoread(beta action handles posting via OIDC)What was broken
allowed_toolsinput doesn't exist on the action — silently ignored, Claude's Bash calls were permission-deniedcode-review@claude-code-plugins) wasn't loadingprompton@v1is meant for mention-triggered flows, not automated reviewsTest plan
automated-reviewjob posts a review commentinteractive-claudestill responds to@claudementions