ci(qp-topic-label): offer claude-opus-5-5; claude CLI pin → 2.1.280 - #1962
Merged
Merged
Conversation
… to 2.1.280 Opus 5.5 needs Claude Code 2.1.280 or newer; the pin moves in step across run-analytics, run-backtest and integration-test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
Adds
claude-opus-5-5(Claude Opus 5.5) as alabel_modelchoice for theqp-topic-labelmode ofrun-analytics. The default stays Haiku.Opus 5.5 needs Claude Code 2.1.280 or newer. Older CLIs reject the model id with a 400 ("version 2.1.280 or newer is required"). The labeler installs its own pinned CLI (
@anthropic-ai/claude-code@2.1.259), so the pin moves to 2.1.280. The comment in run-analytics says the pin is kept in version step with run-backtest and integration-test, and a test enforces a single pin across the three workflows. So the change touches all four places:run-analytics.yml: the labeler installintegration-test.yml: the engine-smoke CLI install and qp-labeler-smokerun-backtest.yml: the replay CLI installThe
claude-code-actionpin (v1.0.217) is deliberately not bumped here. The labeler passes itpath_to_claude_code_executable, so the CLI bundled with the action goes unused. Production predict/evaluate cells keep running on that bundled CLI. Moving them to Opus 5.5 is a separate change, staged in its own PR, which waits until after the long conference.Artifact served: the qp-topic labels artifact (
data/qp-topics/). This PR adds a model option; it produces nothing on its own.Comments updated:
Risk, and the checks that settle it (maintainer dispatches)
The action's agent SDK (0.3.263) will now drive a 2.1.280 CLI. A newer executable is usually compatible, but the SDK↔CLI protocol is not a documented stable contract. The labeler's count-keyed publication and agreement gate keep bad labels from landing, but a mismatch could still waste a run. This is unverified until these run:
gh workflow run integration-test.yml --repo ModelMirrorAI/fedcourtsai --ref staging -f scenario=qp-labeler-smokegh workflow run run-analytics.yml --repo ModelMirrorAI/fedcourtsai --ref staging -f mode=qp-topic-label -f label_model=claude-opus-5-5Expected: the resolve/install step prints
2.1.280 (Claude Code), the agent step runs onclaude-opus-5-5, and the measure step reports an agreement figure.The CLI bump also reaches the backtest's claude replay cells and the claude engine-smoke leg.
engine-smokeon staging covers that pairing.Promotion effect check: on a prod
qp-topic-labeldispatch withlabel_model=claude-opus-5-5, the labels artifact's batch recordslabeler: claude-code/claude-opus-5-5.Review
workflow-reviewerverdict: recommended, no blockers. Its two comment findings are fixed. The SDK/CLI skew risk is the dispatch plan above. zizmor 1.26.1 and actionlint are clean, andtests/test_workflow_cell_invariants.pypasses (76).This PR is under
.github/workflows/, so it waits for the maintainer; I have not merged it.🤖 Generated with Claude Code