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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions