Skip to content

[Phase 1] Extend the model-ab.yml liveness probe: headroom probe, effort levels and the real triage engine path for any candidate #2105

Closed

Description

@github-actions

Story

As a maintainer onboarding a new triage-tier model,
I want the candidate's liveness proven through the real engine path, the headroom probe, and the effort levels triage might use,
so that CLI or API differences (adaptive thinking, rejected parameters, new content blocks) surface before a swap rather than on live PRs, as the Opus 5.5 deep tier did in #1957.

Acceptance Criteria

  1. The Liveness & effort probe step in .github/workflows/model-ab.yml also sends the headroom probe's raw max_tokens:1 Messages request (the same request scripts/engine.sh sends) to the candidate and records whether it returns 2xx with x-ratelimit-*-tokens headers.
  2. The probe records separately whether --effort low and --effort medium are accepted by the candidate, as well as the existing --effort high.
  3. The probe runs one triage prompt through run_triage with CLAUDE_TRIAGE_MODEL_CHAIN=<candidate> and records whether the result parses as triage JSON. This covers thinking or other new content blocks in the output path.
  4. All new results appear in the step summary table. Every probe stays bounded by the existing PROBE_TIMEOUT_SECS / --kill-after budget.
  5. No model id is hard-coded in the new steps. They use the candidate input, so the probe is reusable by the onboarding pipeline.

Tasks / Subtasks

Dev Notes

  • Workflow class: org-private automation, not a thin caller stub. Any new third-party action must be SHA-pinned via the GitHub API, never guessed (AGENTS.md).
  • The headroom probe is in scripts/engine.sh (the curl to /v1/messages with max_tokens:1 against the first triage-chain model). Haiku 5.5 has adaptive thinking on by default, so confirm this still returns 200.
  • Haiku 5.5 rejects temperature!=1, top_k and assistant prefill with 400 (migration guide via the research pass). The engine path must not send them. Record any 400 as FAIL.
  • Testing: keep the probe's pass/fail parsing in a shell function covered by bats where practical. Run shellcheck on extracted scripts. The live run itself is the evidence story.

Project Structure Notes

Extends the existing probe step rather than adding a new workflow.

References

Likely target surface

  • .github/workflows/model-ab.yml

Story prepared by the BMAD Scrum Master (Bob) for epic #2101. 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