Skip to content

[Phase E] Extend the onboarding pipeline beyond Claude to the Gemini and Copilot chains #2131

Open

Description

@github-actions

Story

As a maintainer of a multi-provider engine,
I want new Gemini and Copilot models detected, gated and promoted by the same pipeline,
so that every provider chain in engine-models.sh stays current without hand-run rollouts.

Acceptance Criteria

  1. Detection also polls Gemini's model list and diffs it against the gemini:* chains in scripts/lib/engine-models.sh, opening onboarding records the same way as for Claude.
  2. Copilot models are detected from a source named in the policy file and diffed against the copilot:* chains. If no machine-readable source exists, the PR documents this and Copilot detection is disabled with that reason recorded, rather than guessed.
  3. Pricing, preflight, quality gate, promotion and watch steps accept a provider argument. Provider-specific parts (pricing rows, liveness invocation, chain-variable names) are isolated and covered by bats for each provider.
  4. Existing Claude behaviour is unchanged (the Claude pipeline tests still pass).

Tasks / Subtasks

Dev Notes

  • Chains today: gemini:triage|action = gemini-3.8-flash,gemini-3.1-pro-preview; gemini:deep|audit|single = gemini-3.1-pro-preview,gemini-3.8-flash; Copilot has a single model per key (see the duck/copilot rule ~line 160 of scripts/lib/engine-models.sh).
  • Gemini pricing rows have a history of stale wildcards ([Phase 1] Correct the stale *gemini*pro* wildcard: add verified gemini-2.5-pro and gemini-3.1-pro pricing rows #1141), so the tiered-pricing and price-source rules apply equally.
  • Gemini quota caps live in scripts/lib/gemini-quota-caps.tsv; check them before enabling shadow runs on Gemini.
  • Keep the per-provider code in pure, bats-tested functions (ADR-0004).

Project Structure Notes

Generalises the Phase A–D libraries; no new workflows beyond provider inputs.

References

Story prepared by the BMAD Scrum Master (Bob) for epic #2113. Status: ready-for-dev.

Metadata

Metadata

Assignees

No one assigned

    Labels

    initiativeEpic / initiative tracking issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions