You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
markets/.github/workflows/pr-review.yml has permissions: {} at the workflow level with no job-level permissions override. It calls pr-review-reusable.yml@commit, which in turn calls pr-review.yml@main. GitHub Actions validates at startup that the calling job's permissions are a superset of what the reusable workflow declares (contents: read, pull-requests: write, checks: read). Since the caller grants no permissions, GitHub raises a startup_failure before any job runs β explaining the 0s p50/p95 duration and 100% failure rate.
Additionally, pr-review.yml@main in .github-private was recently refactored to be reusable-only (#497/#506), and a new pr-review-trigger.yml template was introduced as the canonical thin-caller pattern. The markets workflow needs to be updated to follow this pattern.
Scope
Update .github/workflows/pr-review.yml to follow the new pr-review-trigger.yml pattern: call pr-review.yml@pr-review/stable directly (bypassing the pr-review-reusable.yml indirection), add proper permissions, update triggers, and forward inputs including agent_ref.
Implementation Checklist
.github/workflows/pr-review.yml: Update to follow pr-review-trigger.yml pattern β call pr-review.yml directly at pr-review/stable SHA, add permissions, update triggers, forward inputs
Tests to Write
TDD Exception: This is a CI configuration fix with no application code to unit-test. GitHub Actions workflows cannot be unit-tested locally. The observable behavior being fixed is the startup_failure conclusion β the "test" is the workflow's next run completing without startup_failure. Pre-flight validation: YAML lint via python3 -c "import yaml; yaml.safe_load(open('.github/workflows/pr-review.yml'))".
YAML syntax validation of updated pr-review.yml
Verify the referenced reusable workflow exists at the pinned SHA
Test Command
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/pr-review.yml'))" && echo OK
Identified root cause: permissions: {} at workflow level with no job-level override caused GitHub to fail startup_failure at parse time β the calling job had no permissions but the reusable pr-review.yml declares contents: read, pull-requests: write, checks: read
Updated .github/workflows/pr-review.yml to follow the new pr-review-trigger.yml pattern from .github-private
Removed pr-review-reusable.yml indirection β now calls pr-review.yml directly
Pinned to pr-review/stable SHA (1bd8975a9c83bca376082f0b507c89b3743d5e3f)
Added proper permissions block mirroring the reusable's own declaration
Updated triggers and forwarded inputs including agent_ref
YAML syntax validation passed
Dev-lead lint passed
Test Results (TDD Exception noted in plan)
YAML syntax OK
[lint] shellcheck: no .sh files found β skipping
[lint] all checks passed
Verified the pinned SHA exists and accepts agent_ref, pr_url, dry_run, force_review inputs.
Files Changed
.github/workflows/pr-review.yml: Fixed startup_failure by adding permissions, removing pr-review-reusable.yml indirection, calling pr-review.yml@pr-review/stable directly, updating triggers to match new pr-review-trigger.yml pattern, forwarding inputs
Notes
issue_comment and pull_request_review_comment triggers were intentionally removed β those are already handled by the separate pr-review-mention.yml workflow, which dispatches repository_dispatch: pr-review-mention events that this workflow now handles
The old workflow_dispatch: pr_numbers input was replaced with pr_url, dry_run, force_review to match the new reusable's interface
Concurrency group updated to be PR-URL-based (matching the reusable) rather than PR-number-based
β Auto-resolved by Fleet Monitor. This workflow's failure rate has been below the 10% threshold (or the workflow was removed) since 2026-06-10 (35 days) β the monitor stopped flagging it. Closing. It will reopen automatically if the workflow crosses the threshold again.
Activity
don-petry commentedon Jun 9, 2026
Dev-Lead Implementation Plan
Issue: #252 β [Fleet Monitor] petry-projects/markets β pr-review.yml
Root Cause
markets/.github/workflows/pr-review.ymlhaspermissions: {}at the workflow level with no job-level permissions override. It callspr-review-reusable.yml@commit, which in turn callspr-review.yml@main. GitHub Actions validates at startup that the calling job's permissions are a superset of what the reusable workflow declares (contents: read, pull-requests: write, checks: read). Since the caller grants no permissions, GitHub raises astartup_failurebefore any job runs β explaining the 0s p50/p95 duration and 100% failure rate.Additionally,
pr-review.yml@mainin.github-privatewas recently refactored to be reusable-only (#497/#506), and a newpr-review-trigger.ymltemplate was introduced as the canonical thin-caller pattern. The markets workflow needs to be updated to follow this pattern.Scope
Update
.github/workflows/pr-review.ymlto follow the newpr-review-trigger.ymlpattern: callpr-review.yml@pr-review/stabledirectly (bypassing thepr-review-reusable.ymlindirection), add proper permissions, update triggers, and forward inputs includingagent_ref.Implementation Checklist
.github/workflows/pr-review.yml: Update to followpr-review-trigger.ymlpattern β callpr-review.ymldirectly atpr-review/stableSHA, add permissions, update triggers, forward inputsTests to Write
pr-review.ymlTest Command
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/pr-review.yml'))" && echo OKdon-petry commentedon Jun 9, 2026
Dev-Lead: Implementation Complete
Plan Execution
permissions: {}at workflow level with no job-level override caused GitHub to failstartup_failureat parse time β the calling job had no permissions but the reusablepr-review.ymldeclarescontents: read, pull-requests: write, checks: read.github/workflows/pr-review.ymlto follow the newpr-review-trigger.ymlpattern from.github-privatepr-review-reusable.ymlindirection β now callspr-review.ymldirectlypr-review/stableSHA (1bd8975a9c83bca376082f0b507c89b3743d5e3f)agent_refTest Results (TDD Exception noted in plan)
Verified the pinned SHA exists and accepts
agent_ref,pr_url,dry_run,force_reviewinputs.Files Changed
.github/workflows/pr-review.yml: Fixed startup_failure by adding permissions, removingpr-review-reusable.ymlindirection, callingpr-review.yml@pr-review/stabledirectly, updating triggers to match newpr-review-trigger.ymlpattern, forwarding inputsNotes
issue_commentandpull_request_review_commenttriggers were intentionally removed β those are already handled by the separatepr-review-mention.ymlworkflow, which dispatchesrepository_dispatch: pr-review-mentionevents that this workflow now handlesworkflow_dispatch: pr_numbersinput was replaced withpr_url,dry_run,force_reviewto match the new reusable's interfacefeat: implement issue #252 β [Fleet Monitor] petry-projects/markets ββ¦
don-petry commentedon Jul 15, 2026
β Auto-resolved by Fleet Monitor. This workflow's failure rate has been below the 10% threshold (or the workflow was removed) since 2026-06-10 (35 days) β the monitor stopped flagging it. Closing. It will reopen automatically if the workflow crosses the threshold again.