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
Let's add an internal trigger to detect workflow drift -- where we've refactored all but one workflow to follow a pattern -- most typically because the refactor and the new workflow were open in side-by-side PRs.
tl;dr: I recommend adding a dedicated internal workflow drift detector (scheduled + manual) and a CI parity gate; current checks catch lock-file drift but miss trigger/example and source/lock parity drift.
Recommendation
Implement a new internal scheduled workflow (e.g., .github/workflows/gh-aw-workflow-drift.md) that validates workflow parity and opens a single tracked issue when drift is detected, then add a CI guard that fails PRs when parity checks fail.
Findings
Trigger files are generated by scripts/dogfood.sh, with only two explicit exclusions (flaky-test-triage, issue-triage-pr) at scripts/dogfood.sh:20-23, and copy logic at scripts/dogfood.sh:29-45.
CI currently runs make compile and checks for a dirty tree (.github/workflows/ci.yml:37-46), but does not run make sync/dogfood.sh in that job.
make compile currently runs only the gh-aw compiler (Makefile:135-138) and does not include trigger sync.
The repo still has parity drift classes consistent with this issue’s motivation:
missing source for lock: .github/workflows/gh-aw-release-update.lock.yml exists while .github/workflows/gh-aw-release-update.md is missing.
orphan trigger: trigger-downstream-users.yml exists without a corresponding gh-agent-workflows/downstream-users/example.yml (internal-only case).
$ git --no-pager status --short
M .github/workflows/trigger-issue-triage.yml
M .github/workflows/trigger-mention-in-issue.yml
M .github/workflows/trigger-mention-in-pr.yml
M .github/workflows/trigger-update-pr-body.yml
?? .github/workflows/trigger-pr-review-fork.yml
These outputs confirm drift can exist outside the current make compile verification path.
Detailed Action Plan
Add internal workflow source .github/workflows/gh-aw-workflow-drift.md (modeled after .github/workflows/gh-aw-upgrade-check.md):
on.schedule weekdays + workflow_dispatch.
safe-outputs: create-issue (max 1, close older) + noop.
Prompt executes deterministic parity checks and reports only concrete mismatches.
In the workflow prompt/check logic, enforce these invariants:
every .github/workflows/gh-aw-*.lock.yml has matching .github/workflows/gh-aw-*.md (with explicit allowlist if needed);
every gh-agent-workflows/*/example.yml (minus excluded/internal allowlist) has .github/workflows/trigger-(name).yml;
no trigger-(name).yml exists without matching gh-agent-workflows/(name)/example.yml unless explicitly internal.
Add/clarify a canonical internal allowlist in one place (e.g., scripts/dogfood.sh + docs) for intentionally internal workflows like downstream-users and upgrade-check.
Strengthen CI in .github/workflows/ci.yml:
run make sync before/with compile checks;
fail if parity script reports mismatches, so drift is caught in PRs rather than only by schedule.
Update DEVELOPING.md and gh-agent-workflows/DEVELOPING.md to document the new drift detector and parity invariants.
Activity
github-actions commentedon Feb 21, 2026
tl;dr: I recommend adding a dedicated internal workflow drift detector (scheduled + manual) and a CI parity gate; current checks catch lock-file drift but miss trigger/example and source/lock parity drift.
Recommendation
Implement a new internal scheduled workflow (e.g.,
.github/workflows/gh-aw-workflow-drift.md) that validates workflow parity and opens a single tracked issue when drift is detected, then add a CI guard that fails PRs when parity checks fail.Findings
scripts/dogfood.sh, with only two explicit exclusions (flaky-test-triage,issue-triage-pr) atscripts/dogfood.sh:20-23, and copy logic atscripts/dogfood.sh:29-45.make compileand checks for a dirty tree (.github/workflows/ci.yml:37-46), but does not runmake sync/dogfood.shin that job.make compilecurrently runs only the gh-aw compiler (Makefile:135-138) and does not include trigger sync..github/workflows/gh-aw-release-update.lock.ymlexists while.github/workflows/gh-aw-release-update.mdis missing.trigger-downstream-users.ymlexists without a correspondinggh-agent-workflows/downstream-users/example.yml(internal-only case).gh-aw-release-updateandgh-aw-downstream-users#235 (release-update source/docs drift), but it does not create a generic drift detector workflow for future regressions.Verification
I ran the existing repo sync path and parity checks locally:
These outputs confirm drift can exist outside the current
make compileverification path.Detailed Action Plan
.github/workflows/gh-aw-workflow-drift.md(modeled after.github/workflows/gh-aw-upgrade-check.md):on.scheduleweekdays +workflow_dispatch.safe-outputs:create-issue(max 1, close older) +noop..github/workflows/gh-aw-*.lock.ymlhas matching.github/workflows/gh-aw-*.md(with explicit allowlist if needed);gh-agent-workflows/*/example.yml(minus excluded/internal allowlist) has.github/workflows/trigger-(name).yml;trigger-(name).ymlexists without matchinggh-agent-workflows/(name)/example.ymlunless explicitly internal.scripts/dogfood.sh+ docs) for intentionally internal workflows likedownstream-usersandupgrade-check..github/workflows/ci.yml:make syncbefore/with compile checks;DEVELOPING.mdandgh-agent-workflows/DEVELOPING.mdto document the new drift detector and parity invariants.Related Items
scripts/dogfood.sh:20-23scripts/dogfood.sh:29-45Makefile:135-138make compiledoes not include sync.github/workflows/ci.yml:37-46What is this? | From workflow: Issue Triage Agent
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not. for issue #257