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
Per-repo *-hourly-review-repair.yml files are the wrong increment. The reusable engine stays pr-review-fix-scheduler.yml. Product identity (repository, cron minute, base branch, max_prs, max_dispatches, retry_hours) belongs in one roster file that calls that engine.
Do not add another thin caller, doctoring file, or per-product pytest that only asserts YAML strings. Stack the collapse on #1360 (vendored contextual-orchestrator / orchestrator/free / ZDR-first). Do not revive NVIDIA NIM, OpenRouter-direct, or OpenAI/Azure sequential fallback hops.
Why this is closed as a copy-PR class
#1288 (LineageWeave), #1267 (Inkspan), and #1361 (learning-interoperability-contracts) each add another 30-line caller plus a contract test and doctoring page. The only real difference is four inputs. That pattern already produced 17 copies on protected main.
Keep pr-review-fix-scheduler.yml and pr-review-autofix.yml. Replace hourly-nvidia-nim-review-repair.yml path-filter sprawl with the single roster plus its one contract test.
Acceptance
One workflow file owns the hourly roster (matrix or equivalent data, not N YAML clones).
Adding a product is a roster row, not a new workflow/PR.
Decision
Per-repo
*-hourly-review-repair.ymlfiles are the wrong increment. The reusable engine stayspr-review-fix-scheduler.yml. Product identity (repository, cron minute, base branch,max_prs,max_dispatches,retry_hours) belongs in one roster file that calls that engine.Do not add another thin caller, doctoring file, or per-product pytest that only asserts YAML strings. Stack the collapse on #1360 (vendored contextual-orchestrator /
orchestrator/free/ ZDR-first). Do not revive NVIDIA NIM, OpenRouter-direct, or OpenAI/Azure sequential fallback hops.Why this is closed as a copy-PR class
#1288 (LineageWeave), #1267 (Inkspan), and #1361 (learning-interoperability-contracts) each add another 30-line caller plus a contract test and doctoring page. The only real difference is four inputs. That pattern already produced 17 copies on protected
main.Collapse these existing callers
accounting-information-platform-hourly-review-repair.ymlafipc-hourly-review-repair.ymlbandscope-hourly-review-repair.ymlclearfolio-hourly-review-repair.ymlcontextual-orchestrator-hourly-review-repair.ymldisksage-hourly-review-repair.ymlfast-mlsirm-hourly-review-repair.ymlgithub-hourly-review-repair.ymlgovernance-risk-compliance-hourly-review-repair.ymlinkspan-hourly-review-repair.ymlmetering-billing-platform-hourly-review-repair.ymlnonnest2-hourly-review-repair.ymlorgmetra-hourly-review-repair.ymloriginweave-hourly-review-repair.ymlpsychometrics-commons-hourly-review-repair.ymlquarantine-sandbox-hourly-review-repair.ymlsemantic-data-portal-hourly-review-repair.ymlKeep
pr-review-fix-scheduler.ymlandpr-review-autofix.yml. Replacehourly-nvidia-nim-review-repair.ymlpath-filter sprawl with the single roster plus its one contract test.Acceptance
base_branch: "*"where stacked) after feat(ci): route central review through vendored contextual-orchestrator (orchestrator/free, ZDR-first) #1360, not as dedicated files.secrets: inherit, no caller-scoped provider keys, noCOPILOT_GITHUB_TOKEN.