Problem
Every caller repo in petry-projects that uses the pr-review-mention.yml thin caller stub has been failing at parse time with:
error parsing called workflow: failed to fetch workflow: workflow was not found.
The caller stubs reference:
petry-projects/.github/.github/workflows/pr-review-mention-reusable.yml@v1
But the v1 lightweight tag in petry-projects/.github points at commit 0cb4bba11d7563bf197ad805f12fb8639e4879e4, which predates the existence of .github/workflows/pr-review-mention-reusable.yml. That file was first added on main on 2026-05-11 in commit a2b3b464... (PR #237 "feat: make pr-review-mention an org standard") and most recently updated on 2026-05-13 in commit d3d768dabb7f28cc63283cdfe48630da53700e50 (PR #266, @petry-review-bot → @donpetry-bot rename).
Verified: fetching the raw blob at the v1 ref returns 404; fetching at d3d768d returns the file. So @v1 is unresolvable for callers.
⚠️ There is an existing google-app-scripts PR #272 ("fix: pin pr-review-mention reusable workflow to SHA") that tries to pin to 0cb4bba1... — the same broken commit, just spelled as a SHA. DO NOT MERGE #272 AS-IS. It must be updated to the correct SHA or closed and superseded.
Scope — 5 files across 4 repos
Caller repos discovered via gh api search/code for the reusable path:
| Repo |
File |
| petry-projects/.github |
.github/workflows/pr-review-mention.yml (dogfooded caller) |
| petry-projects/.github |
standards/workflows/pr-review-mention.yml (template) |
| petry-projects/google-app-scripts |
.github/workflows/pr-review-mention.yml |
| petry-projects/TalkTerm |
.github/workflows/pr-review-mention.yml |
| petry-projects/bmad-bgreat-suite |
.github/workflows/pr-review-mention.yml |
Decisions
-
Pin target SHA for every caller:
d3d768dabb7f28cc63283cdfe48630da53700e50
(latest commit on petry-projects/.github main containing the reusable)
-
v1 tag in petry-projects/.github:
Force-move it to d3d768d AND cut a new v2 tag at the same SHA.
Moving v1 unbreaks production for any lagging caller immediately.
v2 gives new adopters a clean semver tag to point at.
-
Pin form in YAML (matches ci-standards.md action-pinning policy):
uses: petry-projects/.github/.github/workflows/pr-review-mention-reusable.yml@d3d768dabb7f28cc63283cdfe48630da53700e50 # main
Execution Order
Step 1 — petry-projects/.github (do FIRST; unbreaks production)
a. Move the v1 tag to d3d768d:
gh api -X PATCH repos/petry-projects/.github/git/refs/tags/v1 -f sha=d3d768dabb7f28cc63283cdfe48630da53700e50 -F force=true
b. Cut a new v2 tag at d3d768d:
gh api -X POST repos/petry-projects/.github/git/refs -f ref=refs/tags/v2 -f sha=d3d768dabb7f28cc63283cdfe48630da53700e50
c. On a feature branch in petry-projects/.github, update:
.github/workflows/pr-review-mention.yml (caller stub)
standards/workflows/pr-review-mention.yml (template)
Each: change the uses: line from @v1 to @d3d768dabb7f28cc63283cdfe48630da53700e50 # main.
Open draft PR titled: fix: pin pr-review-mention reusable to d3d768d SHA.
Step 2 — Caller repos (parallel after Step 1a/1b)
For each of:
petry-projects/google-app-scripts
petry-projects/TalkTerm
petry-projects/bmad-bgreat-suite
Apply this one-line diff in .github/workflows/pr-review-mention.yml:
- uses: petry-projects/.github/.github/workflows/pr-review-mention-reusable.yml@v1
+ uses: petry-projects/.github/.github/workflows/pr-review-mention-reusable.yml@d3d768dabb7f28cc63283cdfe48630da53700e50 # main
Open draft PRs. Commit message: fix: pin pr-review-mention reusable to SHA with body explaining the stale-v1-tag root cause.
For google-app-scripts specifically:
Step 3 — Verify each caller after merge
For each of the four caller repos:
- As an OWNER/MEMBER, post a comment containing
@donpetry-bot on any open PR.
- Confirm a new run of "PR Review — Mention Trigger" appears in Actions and reaches the
handle-mention job (no parse error).
Step 4 — Close compliance findings
- Close
petry-projects/google-app-scripts#271 once the SHA-pin lands on main.
- Search and close analogous compliance-audit issues in
.github, TalkTerm, and bmad-bgreat-suite if any exist:
gh search issues "in:title pr-review-mention" --owner petry-projects --state open --json repository,number,title
Step 5 — Prevent recurrence
Add a one-line note to petry-projects/.github CONTRIBUTING (or to the file header of pr-review-mention-reusable.yml):
"When publishing a new SHA of this reusable, also update standards/workflows/pr-review-mention.yml and open a fanout PR across caller repos."
This prevents the template and the callers from drifting again.
Guardrails
- Do NOT skip git hooks, force-push to main, or bypass signing.
- The
v1 tag move is the only destructive git op authorized; use the gh api PATCH form above, not git push --force.
- Open all PRs as drafts.
- Do not change anything else in the caller stubs — they are thin caller stubs by design and the file headers warn against modification beyond the
uses: line.
Done When
Report back with: links to the 4 PRs, confirmation that the v1/v2 tags moved, and the URL of one successful verification run.
Problem
Every caller repo in
petry-projectsthat uses thepr-review-mention.ymlthin caller stub has been failing at parse time with:The caller stubs reference:
But the
v1lightweight tag inpetry-projects/.githubpoints at commit0cb4bba11d7563bf197ad805f12fb8639e4879e4, which predates the existence of.github/workflows/pr-review-mention-reusable.yml. That file was first added onmainon 2026-05-11 in commita2b3b464...(PR #237 "feat: make pr-review-mention an org standard") and most recently updated on 2026-05-13 in commitd3d768dabb7f28cc63283cdfe48630da53700e50(PR #266,@petry-review-bot→@donpetry-botrename).Verified: fetching the raw blob at the
v1ref returns 404; fetching atd3d768dreturns the file. So@v1is unresolvable for callers.Scope — 5 files across 4 repos
Caller repos discovered via
gh api search/codefor the reusable path:.github/workflows/pr-review-mention.yml(dogfooded caller)standards/workflows/pr-review-mention.yml(template).github/workflows/pr-review-mention.yml.github/workflows/pr-review-mention.yml.github/workflows/pr-review-mention.ymlDecisions
Pin target SHA for every caller:
d3d768dabb7f28cc63283cdfe48630da53700e50(latest commit on
petry-projects/.githubmain containing the reusable)v1tag inpetry-projects/.github:Force-move it to
d3d768dAND cut a newv2tag at the same SHA.Moving
v1unbreaks production for any lagging caller immediately.v2gives new adopters a clean semver tag to point at.Pin form in YAML (matches ci-standards.md action-pinning policy):
Execution Order
Step 1 — petry-projects/.github (do FIRST; unbreaks production)
a. Move the
v1tag tod3d768d:b. Cut a new
v2tag atd3d768d:c. On a feature branch in
petry-projects/.github, update:.github/workflows/pr-review-mention.yml(caller stub)standards/workflows/pr-review-mention.yml(template)Each: change the
uses:line from@v1to@d3d768dabb7f28cc63283cdfe48630da53700e50 # main.Open draft PR titled:
fix: pin pr-review-mention reusable to d3d768d SHA.Step 2 — Caller repos (parallel after Step 1a/1b)
For each of:
petry-projects/google-app-scriptspetry-projects/TalkTermpetry-projects/bmad-bgreat-suiteApply this one-line diff in
.github/workflows/pr-review-mention.yml:Open draft PRs. Commit message:
fix: pin pr-review-mention reusable to SHAwith body explaining the stale-v1-tag root cause.For google-app-scripts specifically:
claude/issue-271-20260511-1237(the PR's head branch) so 💡 Reusable Workflow Semantic Versioning and Release Automation #272 becomes correct, ORclaude/fix-pr-review-workflow-AIYvKcreated for this fix; pick whichever branch you prefer and close the other to avoid confusion.Step 3 — Verify each caller after merge
For each of the four caller repos:
@donpetry-boton any open PR.handle-mentionjob (no parse error).Step 4 — Close compliance findings
petry-projects/google-app-scripts#271once the SHA-pin lands on main..github, TalkTerm, and bmad-bgreat-suite if any exist:gh search issues "in:title pr-review-mention" --owner petry-projects --state open --json repository,number,titleStep 5 — Prevent recurrence
Add a one-line note to
petry-projects/.githubCONTRIBUTING (or to the file header ofpr-review-mention-reusable.yml):This prevents the template and the callers from drifting again.
Guardrails
v1tag move is the only destructive git op authorized; use thegh api PATCHform above, notgit push --force.uses:line.Done When
v1tag inpetry-projects/.githubpoints tod3d768dv2tag inpetry-projects/.githubexists atd3d768dd3d768dvia SHA pin@donpetry-boton any caller-repo PR produces a successful "PR Review — Mention Trigger" run with an ack commentReport back with: links to the 4 PRs, confirmation that the v1/v2 tags moved, and the URL of one successful verification run.