Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
e88f51c
Add scheduled PR review agent
Apr 8, 2026
0b82e8c
Use Claude Code OAuth token instead of API key
Apr 9, 2026
8667c45
Enforce single-PR scope and default to dry-run
Apr 9, 2026
f1e4acc
Add 3-model council + commit-SHA-aware iterative review
Apr 9, 2026
0a790d7
Upgrade maintainability lens from Haiku 4.5 to Sonnet 4.6
Apr 9, 2026
88a16bd
Go-live improvements for PR review agent (#2)
don-petry Apr 9, 2026
08eb385
Add Claude delegation, auto-merge, and rebase handling (#3)
don-petry Apr 10, 2026
b8a873c
Optimize review: small-PR and incremental fast paths (#4)
don-petry Apr 10, 2026
138d342
Add Claude Code workflow (#8)
don-petry Apr 16, 2026
1275c4a
feat: add Copilot engine support via REVIEW_ENGINE toggle (#5)
don-petry Apr 16, 2026
5fbe32c
feat: inline Claude Code workflow to access repo secrets directly (#9)
don-petry Apr 16, 2026
66da6ba
feat: cross-engine adversarial rubber duck review (#11)
don-petry Apr 16, 2026
5f16ae2
fix: filter already-reviewed PRs from backlog to unblock queue
Apr 16, 2026
1155c43
docs: clarify PR review batching issue
Apr 16, 2026
3ab7951
fix: complete PR #10 fix - don't count no-ops toward MAX_PRS budget
Apr 16, 2026
7c368ce
feat: CI gate + poll-loop rebase wait across all review prompts (#14)
don-petry Apr 18, 2026
916ca8c
fix: replace --checks passing with --checks success in list-prs.sh (#15)
don-petry Apr 19, 2026
8d864e6
docs: update repo references from self to pr-review-agent
Apr 21, 2026
7215240
feat: add car-hunt skill for used vehicle research and ranking
Apr 25, 2026
5611987
fix: fix FB Marketplace links, improve AutoTrader fetch, add Sheets e…
Apr 25, 2026
0322f87
fix: add Craigslist as explicit source, enforce real-URL-only link rule
Apr 25, 2026
f9b017d
fix: split zip/radius questions, rename MAX_MILES to MAX_ODOMETER
Apr 25, 2026
029b7aa
fix: include self-authored PRs awaiting review in agent enumeration (…
don-petry Apr 25, 2026
13129f9
feat: add doors/transmission fields, update-mode sheet, fix CarGurus/…
Apr 25, 2026
b695653
feat: add hard disqualification filters for finance-speak, title issu…
Apr 25, 2026
5ee88fd
feat: add Distance to Car field using Nominatim geocoding + Haversine…
Apr 25, 2026
1e11484
fix: address low result count — batch URL extraction, preview-filter …
Apr 25, 2026
de224c5
fix: make cascade-action prompt explicit about gh pr review --approve
Apr 25, 2026
ebd609b
improve: make cascade-action body composition and escalation more exp…
Apr 25, 2026
8c6cc90
refactor: move review posting logic from agent prompts to bash script
Apr 25, 2026
2777530
add: cleanup script to fix PRs with comment approvals instead of revi…
Apr 25, 2026
4bcce01
fix: cleanup script now requires bot account token
Apr 25, 2026
c9bd722
add: workflow to fix stuck PRs using bot account token
Apr 25, 2026
235cf0b
fix: pass GH_PAT to checkout action so workflow uses bot account
Apr 25, 2026
34de688
debug: simplify account check, add authentication debug output
Apr 25, 2026
a5afa10
docs: add comprehensive petry-review-bot setup instructions
Apr 25, 2026
7e3fc92
docs: add GitHub App setup guide (recommended approach)
Apr 26, 2026
4ecb943
docs: add comprehensive GitHub App setup documentation
Apr 26, 2026
d490a76
fix: silence auth check in fix-stuck-prs when using GitHub App token
Apr 26, 2026
170e437
fix: use explicit author instead of @me in stuck PR search
Apr 26, 2026
25922cc
fix: avoid subshell in while loop to preserve variable state
Apr 26, 2026
4a08c9b
docs: add comprehensive status report for GitHub App setup
Apr 27, 2026
1891c48
docs: document stuck PR cleanup status and script fixes
Apr 28, 2026
db640f9
fix: update list-prs.sh to search all repos by owner instead of @me
Apr 28, 2026
eb43c54
docs: add investigation report for PR review agent workflow failures
Apr 28, 2026
020157f
fix: move env section before steps in workflow to fix YAML structure
Apr 28, 2026
fc1029e
script: add backfill-approvals to retroactively apply real approvals
Apr 28, 2026
51806b8
feat: add backfill-approvals workflow to run as GitHub App bot
Apr 28, 2026
b20768f
fix: convert inner while loop to process substitution to preserve cou…
Apr 28, 2026
1dfeccc
car-hunt: add VIN-deep-dive flow, printable checklists, location-tier…
Apr 28, 2026
c2ab6a2
fix: re-approve PRs where approval predates last commit (stale approval)
Apr 28, 2026
516c520
Enforce MAX_REVIEW_CYCLES cap before running the cascade (#18)
don-petry Apr 29, 2026
1e03831
Reliability hardening: session circuit breaker, timeouts, retry, dedu…
don-petry Apr 29, 2026
888b2fb
Remove car-hunt skill and scheduled tasks (moved to don-petry/don-pet…
don-petry Apr 30, 2026
0963cad
Add daily PR review health check workflow (#23)
don-petry May 2, 2026
105c224
fix: apply Copilot fallback hardening and reuse GH_PAT for Copilot auth
don-petry May 3, 2026
98258ff
fix: switch Copilot engine to gh built-in and fix app-id deprecation
don-petry May 3, 2026
7fc8626
fix: harden Copilot fallback path and remove stale worktrees (#25)
claude[bot] May 3, 2026
6529770
ci: add pre-flight dedup check to prevent duplicate claude-issue PRs …
don-petry May 3, 2026
670f718
refactor: migrate to machine user PAT auth (closes #27) (#28)
don-petry May 5, 2026
0d50d0d
refactor: merge approval repair scripts into single automation
don-petry May 5, 2026
92bf25f
fix(health-check): correct workflow_dispatch indentation and schedule…
don-petry May 5, 2026
38a37fb
fix(health-check): use time-based search to capture all hourly runs
don-petry May 6, 2026
c77dc15
feat: add @mention trigger for on-demand PR reviews (#30)
don-petry May 6, 2026
1560824
fix(health-check): remove undefined RUN_LIMIT variable from prompt (#31)
don-petry May 6, 2026
5d361a8
fix(health-check): use github.token for issue creation instead of bot…
don-petry May 6, 2026
fb634a9
feat(health-check): F-style executive summary format
don-petry May 7, 2026
0e9cfa5
fix: harden rebase, review dismissal, and health log diagnostics (#40)
don-petry May 7, 2026
144c496
refactor: migrate to org-wide .github-private convention (#41)
don-petry May 7, 2026
ee12051
ci: add dependabot-automerge.yml workflow (#73)
don-petry May 10, 2026
30677c7
fix(pr-review): unblock queue starvation from self-authored PRs (#96)…
don-petry May 10, 2026
265674d
chore: rename GH_PAT_WORKFLOWS secret to DON_PETRY_BOT_GH_PAT (#99)
don-petry May 10, 2026
83cafa2
chore: remove frameworks directory (#101)
don-petry May 10, 2026
b437f87
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
7a4cd68
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
21e4071
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
04fe54f
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
77a94d4
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
dec41af
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
77e682c
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
94e99c9
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
b51307e
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
29aef8b
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
7d5c161
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
ab6aa97
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
3104c31
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
797485f
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
1af0efe
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
b48565c
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
8bee65b
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
e4db301
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
b9888f5
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
59457b0
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
c926991
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
1a4972e
chore: deprecate pr-review-agent — remove all traces
don-petry May 11, 2026
ffaeb40
revert: restore all erroneously deleted files (items 4-34) (#104)
don-petry May 11, 2026
a1053d9
docs: add CLAUDE.md with repo-specific Claude Code instructions
don-petry May 11, 2026
349a61d
feat: add Gemini Pro support and optimize PR review fallback chain (#…
don-petry May 11, 2026
6295fcc
revert: remove CLAUDE.md (added in error, not required)
don-petry May 11, 2026
66596ff
fix(pr-review): gate rate-limit detection on non-zero exit code
May 11, 2026
632c98c
fix(claude): sync inlined workflow with org standard (#109)
don-petry May 11, 2026
2922dd0
ci: replace inlined claude.yml with standard thin-caller stub
don-petry May 11, 2026
abe3af9
fix: replace gh copilot suggest with GitHub Models REST API (#151)
don-petry May 12, 2026
7fd26f5
feat: prioritise .github/.github-private PRs, oldest-first within tie…
don-petry May 13, 2026
dec172d
fix: restore pr-review.yml content (accidentally emptied in revert)
don-petry May 13, 2026
86c0166
fix: restore pr-review.yml (file was accidentally emptied)
don-petry May 13, 2026
3a58668
chore(deps): bump actions/cache from 4 to 5 (#165)
dependabot[bot] May 13, 2026
1c1fb22
chore(deps): bump actions/setup-node from 4.4.0 to 6.4.0 (#167)
dependabot[bot] May 13, 2026
e1135ae
chore(deps): bump actions/github-script from 7.1.0 to 9.0.0 (#162)
dependabot[bot] May 13, 2026
1abd1c9
chore(deps): bump petry-projects/.github/.github/workflows/claude-cod…
dependabot[bot] May 13, 2026
1426075
chore(deps): bump actions/checkout from 4 to 6 (#171)
dependabot[bot] May 13, 2026
eed2a1e
fix(list-prs): search DELEGATION_ORGS and drop --checks success pre-f…
don-petry May 13, 2026
a6c1e41
fix: add org baseline secret patterns to .gitignore
github-actions[bot] May 8, 2026
c04d1a3
fix(dev-lead): PR-level exhaustion guard prevents token waste on larg…
don-petry May 15, 2026
5f082f1
refactor: replace Claude analysis with pure gh/jq telemetry in health…
don-petry May 16, 2026
2f77924
refactor: drop Node/Claude steps from daily-pr-review-health workflow
don-petry May 16, 2026
ff76e71
rename: daily-pr-review-health → actions-fleet-monitor
don-petry May 16, 2026
1bab21b
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
cf221fe
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
c3aa3b5
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
31e4cc7
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
f2e7184
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
8087c6c
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
552e6ef
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
aef2a90
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
1a2811e
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
dffb234
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
96e82bc
Merge branch 'main' into claude/issue-71-20260508-1426
don-petry May 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# ─────────────────────────────────────────────────────────────────────────────
# SOURCE OF TRUTH: petry-projects/.github/standards/workflows/claude.yml
# Standard: petry-projects/.github/standards/ci-standards.md#4-claude-code-claudeyml
# Reusable: petry-projects/.github/.github/workflows/claude-code-reusable.yml
#
# AGENTS — READ BEFORE EDITING:
# • This file is a THIN CALLER STUB. All Claude Code logic, the prompt,
# allowedTools, and trigger gating live in the reusable workflow above.
# • You MAY change: nothing in this file in normal use. Adopt verbatim.
# • You MUST NOT change: trigger events, job permissions, the `uses:` line,
# or `secrets: inherit`. These are required for the reusable to work.
# • If you need different behaviour, open a PR against the reusable in the
# central repo. The change will propagate everywhere on next run.
#
# WHY THIS FILE IS IMMUTABLE (agents: read before opening any PR here):
# Anthropic's OIDC token endpoint validates that this file on a PR branch
# is byte-for-byte identical to the file on the default branch. Any diff —
# even a whitespace or comment change — causes the token exchange to fail:
# "401 Unauthorized — Workflow validation failed"
# Claude Code will not run on that PR. Do not open compliance PRs against
# this file. Do not SHA-pin the `uses:` line — internal reusable workflow
# refs are exempt from the Action Pinning Policy (ci-standards.md
# §Action Pinning Policy). The @v1 tag is the correct, stable reference.
#
# NARROW GUARD: The paths-ignore setting (lines 38-39) under pull_request
# prevents the workflow from triggering only when the PR's entire changeset
# is limited to claude.yml alone. PRs that modify claude.yml *plus other
# files* will still trigger the workflow and hit the 401 error at token
# exchange. Other triggers (issue_comment, pull_request_review_comment,
# issues, check_run) are unaffected by paths-ignore and run as configured.
# ─────────────────────────────────────────────────────────────────────────────
#
# Claude Code — thin caller that delegates to the org-level reusable workflow.
# To adopt: copy this file to .github/workflows/claude.yml in your repo.
# Required org/repo secret: CLAUDE_CODE_OAUTH_TOKEN
# Optional org/repo secret: GH_PAT_WORKFLOWS (PAT with `workflow` scope —
# required if Claude needs to push changes to .github/workflows/*.yml)

name: Claude Code

on:
pull_request:
branches: [main]
types: [opened, reopened, synchronize]
paths-ignore:
- '.github/workflows/claude.yml' # OIDC invariant — see header above
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [labeled]
check_run:
types: [completed]

permissions: {}

jobs:
claude-code:
uses: petry-projects/.github/.github/workflows/claude-code-reusable.yml@v2
secrets: inherit
permissions:
contents: write
id-token: write
pull-requests: write
issues: write
actions: read
checks: read
6 changes: 6 additions & 0 deletions .github/workflows/pr-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,12 @@ jobs:
path: ~/.npm-global
key: claude-code-${{ env.CLAUDE_CODE_VERSION }}-${{ runner.os }}

- name: Cache claude-code CLI
uses: actions/cache@v5
with:
path: ~/.npm-global
key: claude-code-${{ env.CLAUDE_CODE_VERSION }}-${{ runner.os }}

- name: Install review engine CLIs
run: |
set -euo pipefail
Expand Down
Loading
Loading