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 evaluate removing our fixer workflows and maybe just come up with a nice way to automatically trigger a second Agent to create a PR from the detection flows?
The repo should not remove fixer workflows in one step; the safest path is a phased migration to a detector-triggered second PR agent, then deprecate fixers pair-by-pair after parity is proven.
Recommendation
Keep current fixer workflows for now, add an explicit detector → second-agent PR handoff (opt-in), pilot it on one detector/fixer pair, and only then remove specialized fixers that are redundant.
Findings
The architecture is currently documented as detector/fixer pairs, not detector-only:
docs/workflows/gh-agent-workflows.md:70-83 (pair model and current pairs)
Define scope in Remove Fixer workflows #436: which workflows are in-scope for removal (scheduled fixers only vs all “fixer”-named workflows).
Add detector → second-agent handoff using one generic PR agent path first (recommended to build on scheduled-fix semantics in .github/workflows/gh-aw-scheduled-fix.md).
Pilot one pair (e.g., detector issue output -> generic fixer PR) and measure: noop rate, PR quality, reviewer churn, and false positives.
Deprecate pair-by-pair: keep old fixer as compatibility wrapper for one release cycle, then remove.
tl;dr: the cleanest scalable handoff is a single label-driven PR worker (based on issue-fixer/scheduled-fix) and keep detectors as report-only producers.
Recommendation
Use a two-stage contract:
Detector/Triage stage creates or updates an issue and marks it ai:fix-ready only when acceptance criteria are concrete.
PR Worker stage triggers on issues.labeled (ai:fix-ready) and opens one focused draft PR.
This gives one reusable PR engine, clear gates, and avoids N detector→N fixer coupling.
Why this is the best fit here
You already have detector/fixer architecture documented (docs/workflows/gh-agent-workflows.md:70-73).
You already have reusable base workflows intended to pair (gh-agent-workflows/README.md:12-20).
scheduled-fix already supports selecting issues by title prefix/label (gh-agent-workflows/scheduled-fix/README.md:36-39).
Today issue-triage and issue-fixer are both wired to issues.opened (gh-agent-workflows/issue-triage/example.yml:3-4, gh-agent-workflows/issue-fixer/example.yml:3-4), which is not a true handoff.
Scalable rollout (minimal churn)
Define a small issue contract for PR eligibility (required fields + ai:fix-ready label).
Add one new trigger workflow for the PR worker on issues.labeled (plus workflow_dispatch for retries).
Keep existing fixers as compatibility wrappers initially; route them through the same worker logic.
After parity, remove specialized fixers pair-by-pair and update setup docs/scripts in one sweep.
Operational guardrails to keep it clean
Concurrency key per issue number (prevents duplicate PR attempts).
Idempotency check: if open PR already references that issue, comment and stop.
Keep draft PR default, promote to ready only after checks.
Restrict auto-handoff to trusted issue sources (existing role/association gates).
If useful, I can draft the exact issues.labeled trigger YAML and the label/state contract next.
/ai great idea let's update our detection workflows to have an input for labels to apply to the issue that's created and when let's publish an example of a generic auto-fix workflow which fires from the label and fixes the issue
Activity
github-actions commentedon Feb 27, 2026
The repo should not remove fixer workflows in one step; the safest path is a phased migration to a detector-triggered second PR agent, then deprecate fixers pair-by-pair after parity is proven.
Recommendation
Keep current fixer workflows for now, add an explicit detector → second-agent PR handoff (opt-in), pilot it on one detector/fixer pair, and only then remove specialized fixers that are redundant.
Findings
docs/workflows/gh-agent-workflows.md:70-83(pair model and current pairs)gh-agent-workflows/README.md:12-19,35-39(base Scheduled Audit/Fix + “Fixers” section).github/workflows/gh-aw-scheduled-fix.md:3-4,13,114-124(generic fixer by issue prefix/label).github/workflows/gh-aw-pr-actions-detective.md:78-90(read-only detective).github/workflows/gh-aw-pr-actions-fixer.md:82-83,91-95(separate fixer that can push)gh-agent-workflows/pr-actions-detective/README.md:7-8andgh-agent-workflows/pr-actions-fixer/README.md:7,23,36-37scripts/quick-setup.sh:128-142(--continuous-improvementstill includes fixer workflows)scripts/trigger-ci-workflows.sh:28-36(improvers list includes multiple fixers).github/workflows/smoke-test-install.yml:51,59,63,68,74,75(smoke test installs fixer workflows).github/workflows/trigger-*-fixer.ymlfiles currently present for several fixerspr-ci-fixer) but retained the broader detector/fixer model.Verification
I validated current repo behavior and references with existing tooling:
Detailed Action Plan
scheduled-fixsemantics in.github/workflows/gh-aw-scheduled-fix.md).gh-agent-workflows/README.md,docs/workflows/gh-agent-workflows.md, pair-specific docsscripts/quick-setup.shscripts/trigger-ci-workflows.sh.github/workflows/smoke-test-install.yml,trigger-*-fixer.ymlmake compileandmake lintand verify no stale fixer references remain.Related Items
docs/workflows/gh-agent-workflows.md:70-83.github/workflows/gh-aw-scheduled-fix.mdscripts/quick-setup.sh:128-142.github/workflows/smoke-test-install.yml:44-81What is this? | From workflow: Issue Triage
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
strawgate commentedon Feb 27, 2026
/ai what's the best way to automate the issue -> PR handoff? what will be clean and scalable?
github-actions commentedon Feb 27, 2026
tl;dr: the cleanest scalable handoff is a single label-driven PR worker (based on
issue-fixer/scheduled-fix) and keep detectors as report-only producers.Recommendation
Use a two-stage contract:
ai:fix-readyonly when acceptance criteria are concrete.issues.labeled(ai:fix-ready) and opens one focused draft PR.This gives one reusable PR engine, clear gates, and avoids N detector→N fixer coupling.
Why this is the best fit here
docs/workflows/gh-agent-workflows.md:70-73).gh-agent-workflows/README.md:12-20).scheduled-fixalready supports selecting issues by title prefix/label (gh-agent-workflows/scheduled-fix/README.md:36-39).issue-triageandissue-fixerare both wired toissues.opened(gh-agent-workflows/issue-triage/example.yml:3-4,gh-agent-workflows/issue-fixer/example.yml:3-4), which is not a true handoff.Scalable rollout (minimal churn)
ai:fix-readylabel).issues.labeled(plusworkflow_dispatchfor retries).Operational guardrails to keep it clean
If useful, I can draft the exact
issues.labeledtrigger YAML and the label/state contract next.What is this? | From workflow: Mention in Issue
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
strawgate commentedon Feb 28, 2026
/ai great idea let's update our detection workflows to have an input for labels to apply to the issue that's created and when let's publish an example of a generic auto-fix workflow which fires from the label and fixes the issue