Skip to content

Collapse per-repo hourly review-repair callers into one roster file #1362

Description

@seonghobae

Decision

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.

Collapse these existing callers

  • accounting-information-platform-hourly-review-repair.yml
  • afipc-hourly-review-repair.yml
  • bandscope-hourly-review-repair.yml
  • clearfolio-hourly-review-repair.yml
  • contextual-orchestrator-hourly-review-repair.yml
  • disksage-hourly-review-repair.yml
  • fast-mlsirm-hourly-review-repair.yml
  • github-hourly-review-repair.yml
  • governance-risk-compliance-hourly-review-repair.yml
  • inkspan-hourly-review-repair.yml
  • metering-billing-platform-hourly-review-repair.yml
  • nonnest2-hourly-review-repair.yml
  • orgmetra-hourly-review-repair.yml
  • originweave-hourly-review-repair.yml
  • psychometrics-commons-hourly-review-repair.yml
  • quarantine-sandbox-hourly-review-repair.yml
  • semantic-data-portal-hourly-review-repair.yml

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.
  • LineageWeave and learning-contracts enter as roster rows (base_branch: "*" where stacked) after feat(ci): route central review through vendored contextual-orchestrator (orchestrator/free, ZDR-first) #1360, not as dedicated files.
  • No secrets: inherit, no caller-scoped provider keys, no COPILOT_GITHUB_TOKEN.
  • Protected merge, independent exact-head OpenCode APPROVE, and product-home lane ownership stay unchanged.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions