fix: migrate Claude model files to current API IDs (opus-5, sonnet-5, haiku-4.5)

Bug 57d8a047-d26d-47ce-ae6f-bc5cb98fef0e: Opus-tier tasks 404'd because
models/claude-opus-4.yaml pinned default_flags.model to "claude-opus-4-5",
a retired ID. models/claude-sonnet-4.yaml was pinned to a dated snapshot
("claude-sonnet-4-20250514") with the same problem.

Slug strategy: the registry slug (filename / RegistryEntry.name) doubles
as the literal --model argument on the workflow-template pass-through path
(task-templates/workflow/*.yaml `model:` field -> compiler WF-COMP-18 ->
payload.runtime.model -> entrypoint/runners/claude.py `--model`), which has
no translation step through this file's default_flags. So rather than
patch default_flags.model in place (leaving the slug stale and the
pass-through bug latent), rename the slug to match the current API ID:

- models/claude-opus-4.yaml, model-registry/claude-opus-4.yaml
  -> claude-opus-5.yaml (name/endpoint/default_flags.model: claude-opus-5)
- models/claude-sonnet-4.yaml, model-registry/claude-sonnet-4.yaml
  -> claude-sonnet-5.yaml (claude-sonnet-5)
- model-registry/claude-haiku-4.yaml -> claude-haiku-4-5.yaml
  (claude-haiku-4-5); added the previously-missing models/claude-haiku-4-5.yaml
  so the claude runner can actually resolve this endpoint
- model-registry/harness-roles.yaml, model-registry/tiers.yaml,
  workflows/smart-agent.yaml, task-templates/workflow/{spec,plan}-review-loop@1.yaml:
  updated every claude-opus-4 / claude-sonnet-4 / claude-haiku-4 reference
  to the new slugs
- models/openrouter-sonnet.yaml: dated snapshot "claude-sonnet-4-20250514"
  -> "claude-sonnet-5" (third-party router proxying the same retired ID)
- refreshed cost_per_1k_tokens on the three renamed registry entries to
  current published pricing

Claude-Session: https://claude.ai/code/session_015nXvGNNNixJPFwZKZHNyha
This commit is contained in:
Paul O'Reilly
2026-09-10 12:05:14 +12:00
parent 30c3a75c20
commit e31d472ff9
12 changed files with 36 additions and 28 deletions

View File

@@ -1,5 +1,5 @@
name: claude-haiku-4 name: claude-haiku-4-5
endpoint: claude-haiku-4 endpoint: claude-haiku-4-5
provider: anthropic provider: anthropic
scores: scores:
complexity: 5 complexity: 5

View File

@@ -1,5 +1,5 @@
name: claude-opus-4 name: claude-opus-5
endpoint: claude-opus-4 endpoint: claude-opus-5
provider: anthropic provider: anthropic
scores: scores:
complexity: 10 complexity: 10
@@ -9,7 +9,7 @@ scores:
cost_efficiency: 3 cost_efficiency: 3
context_utilisation: 10 context_utilisation: 10
cost_per_1k_tokens: cost_per_1k_tokens:
input: 0.015 input: 0.005
output: 0.075 output: 0.025
source: benchmark source: benchmark
harness_version: null harness_version: null

View File

@@ -1,5 +1,5 @@
name: claude-sonnet-4 name: claude-sonnet-5
endpoint: claude-sonnet-4 endpoint: claude-sonnet-5
provider: anthropic provider: anthropic
scores: scores:
complexity: 8 complexity: 8
@@ -9,7 +9,7 @@ scores:
cost_efficiency: 6 cost_efficiency: 6
context_utilisation: 8 context_utilisation: 8
cost_per_1k_tokens: cost_per_1k_tokens:
input: 0.003 input: 0.002
output: 0.015 output: 0.01
source: benchmark source: benchmark
harness_version: null harness_version: null

View File

@@ -2,8 +2,8 @@ roles:
code-tdd: code-tdd:
airouter-qwen3: code-airouter-tdd-repo airouter-qwen3: code-airouter-tdd-repo
airouter-deepseekv4flash: code-airouter-deepseekv4flash-tdd-repo airouter-deepseekv4flash: code-airouter-deepseekv4flash-tdd-repo
claude-sonnet-4: code-sonnet-tdd-repo claude-sonnet-5: code-sonnet-tdd-repo
claude-opus-4: code-opus-tdd-repo claude-opus-5: code-opus-tdd-repo
claude-haiku-4: code-haiku-tdd-repo claude-haiku-4-5: code-haiku-tdd-repo
minimax: code-minimax-tdd-repo minimax: code-minimax-tdd-repo
claude-fable-5: code-fable-tdd-repo claude-fable-5: code-fable-tdd-repo

View File

@@ -23,7 +23,7 @@ tiers:
qualifies_today: qualifies_today:
- deepseek-v4flash # benchmark-inflated 9s; hold to allowed_models ceiling - deepseek-v4flash # benchmark-inflated 9s; hold to allowed_models ceiling
- minimax - minimax
- claude-opus-4 - claude-opus-5
note: > note: >
WF-SCH-14 allowed_models ceiling remains authoritative until M7 observed-score WF-SCH-14 allowed_models ceiling remains authoritative until M7 observed-score
recalibration corrects benchmark-inflated registry entries. recalibration corrects benchmark-inflated registry entries.
@@ -38,8 +38,8 @@ tiers:
test_pass_rate: 9 test_pass_rate: 9
qualifies_today: qualifies_today:
- minimax - minimax
- claude-sonnet-4 - claude-sonnet-5
- claude-opus-4 - claude-opus-5
coding: coding:
description: > description: >
@@ -52,6 +52,6 @@ tiers:
- airouter-qwen3 - airouter-qwen3
- airouter-deepseekv4flash - airouter-deepseekv4flash
- minimax - minimax
- claude-sonnet-4 - claude-sonnet-5
- claude-opus-4 - claude-opus-5
- claude-fable-5 - claude-fable-5

View File

@@ -1,8 +1,8 @@
name: claude-sonnet-4 name: claude-haiku-4-5
provider: anthropic provider: anthropic
endpoint: endpoint:
type: cloud_api type: cloud_api
api_key_env: ANTHROPIC_API_KEY api_key_env: ANTHROPIC_API_KEY
runner: claude runner: claude
default_flags: default_flags:
model: "claude-sonnet-4-20250514" model: "claude-haiku-4-5"

View File

@@ -1,8 +1,8 @@
name: claude-opus-4 name: claude-opus-5
provider: anthropic provider: anthropic
endpoint: endpoint:
type: cloud_api type: cloud_api
api_key_env: ANTHROPIC_API_KEY api_key_env: ANTHROPIC_API_KEY
runner: claude runner: claude
default_flags: default_flags:
model: "claude-opus-4-5" model: "claude-opus-5"

View File

@@ -0,0 +1,8 @@
name: claude-sonnet-5
provider: anthropic
endpoint:
type: cloud_api
api_key_env: ANTHROPIC_API_KEY
runner: claude
default_flags:
model: "claude-sonnet-5"

View File

@@ -6,4 +6,4 @@ endpoint:
api_key_env: OPENROUTER_API_KEY api_key_env: OPENROUTER_API_KEY
runner: agentic runner: agentic
default_flags: default_flags:
model: "anthropic/claude-sonnet-4-20250514" model: "anthropic/claude-sonnet-5"

View File

@@ -19,7 +19,7 @@ nodes:
- id: review-opus - id: review-opus
kind: agent kind: agent
role: plan-review # M36 v0.6 (bug 69370eda fix) role: plan-review # M36 v0.6 (bug 69370eda fix)
model: claude-opus-4 model: claude-opus-5
runtime_env: runtime_env:
AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git" AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git"
AGENT_BRANCH: "task/${item.uuid}" AGENT_BRANCH: "task/${item.uuid}"
@@ -93,7 +93,7 @@ nodes:
- id: judge-haiku - id: judge-haiku
kind: agent kind: agent
role: plan-review role: plan-review
model: claude-haiku-4 model: claude-haiku-4-5
depends_on: [improve-sonnet] depends_on: [improve-sonnet]
runtime_env: runtime_env:
AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git" AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git"

View File

@@ -24,7 +24,7 @@ nodes:
role: spec-review # M36 v0.6 (bug 69370eda fix): per-node role replaces role: spec-review # M36 v0.6 (bug 69370eda fix): per-node role replaces
# the ungrounded top-level `runtime: review-loop-repo`. # the ungrounded top-level `runtime: review-loop-repo`.
# Harness resolution: (role, model) → composite. # Harness resolution: (role, model) → composite.
model: claude-opus-4 model: claude-opus-5
runtime_env: runtime_env:
AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git" AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git"
AGENT_BRANCH: "spec/${item.uuid}" AGENT_BRANCH: "spec/${item.uuid}"
@@ -104,7 +104,7 @@ nodes:
- id: judge-haiku - id: judge-haiku
kind: agent kind: agent
role: spec-review role: spec-review
model: claude-haiku-4 model: claude-haiku-4-5
depends_on: [improve-sonnet] depends_on: [improve-sonnet]
runtime_env: runtime_env:
AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git" AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git"

View File

@@ -2,7 +2,7 @@ name: smart-agent
version: 1 version: 1
description: > description: >
High-capability single-agent workflow. Routes to the best available reasoning model High-capability single-agent workflow. Routes to the best available reasoning model
(complexity ≥ 9 — currently claude-opus-4). Use for complex implementation, planning, (complexity ≥ 9 — currently claude-opus-5). Use for complex implementation, planning,
or analysis tasks where quality matters more than cost. or analysis tasks where quality matters more than cost.
MiniMax is not in the model registry and will not be auto-selected; use the MiniMax is not in the model registry and will not be auto-selected; use the