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
endpoint: claude-haiku-4
name: claude-haiku-4-5
endpoint: claude-haiku-4-5
provider: anthropic
scores:
complexity: 5

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,8 +1,8 @@
name: claude-sonnet-4
name: claude-haiku-4-5
provider: anthropic
endpoint:
type: cloud_api
api_key_env: ANTHROPIC_API_KEY
runner: claude
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
endpoint:
type: cloud_api
api_key_env: ANTHROPIC_API_KEY
runner: claude
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
runner: agentic
default_flags:
model: "anthropic/claude-sonnet-4-20250514"
model: "anthropic/claude-sonnet-5"

View File

@@ -19,7 +19,7 @@ nodes:
- id: review-opus
kind: agent
role: plan-review # M36 v0.6 (bug 69370eda fix)
model: claude-opus-4
model: claude-opus-5
runtime_env:
AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git"
AGENT_BRANCH: "task/${item.uuid}"
@@ -93,7 +93,7 @@ nodes:
- id: judge-haiku
kind: agent
role: plan-review
model: claude-haiku-4
model: claude-haiku-4-5
depends_on: [improve-sonnet]
runtime_env:
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
# the ungrounded top-level `runtime: review-loop-repo`.
# Harness resolution: (role, model) → composite.
model: claude-opus-4
model: claude-opus-5
runtime_env:
AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git"
AGENT_BRANCH: "spec/${item.uuid}"
@@ -104,7 +104,7 @@ nodes:
- id: judge-haiku
kind: agent
role: spec-review
model: claude-haiku-4
model: claude-haiku-4-5
depends_on: [improve-sonnet]
runtime_env:
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
description: >
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.
MiniMax is not in the model registry and will not be auto-selected; use the