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
58 lines
1.9 KiB
YAML
58 lines
1.9 KiB
YAML
# Model capability tiers for typed-pipeline routing.
|
|
#
|
|
# Each tier defines score floors (against model-registry/*.yaml `scores` dimensions).
|
|
# The CP picks the cheapest registry entry meeting ALL floors (MR-9/MR-11 — cheapest-wins).
|
|
#
|
|
# Stages that need a specific tier set `tier:` on their `kind: agent` node (W2).
|
|
# Until W2 lands, templates hardcode `model:` directly and these floors serve as
|
|
# documentation of the intended constraint.
|
|
#
|
|
# See claude/stage-routing.md for the authoritative pipeline stage map.
|
|
|
|
tiers:
|
|
|
|
planning:
|
|
description: >
|
|
Judgment-heavy work: plan generation, spec re-draft (replan-spec-opus),
|
|
architecture review escalation (review-spec-opus). Requires sustained
|
|
reasoning over large context windows.
|
|
min_scores:
|
|
complexity: 9
|
|
creativity: 9
|
|
context_utilisation: 9
|
|
qualifies_today:
|
|
- deepseek-v4flash # benchmark-inflated 9s; hold to allowed_models ceiling
|
|
- minimax
|
|
- claude-opus-5
|
|
note: >
|
|
WF-SCH-14 allowed_models ceiling remains authoritative until M7 observed-score
|
|
recalibration corrects benchmark-inflated registry entries.
|
|
|
|
spec-test:
|
|
description: >
|
|
Spec-adherent structured work: spec drafting, spec arch review, scope/decompose,
|
|
test writing, impl review, merge verdict. Needs reliable spec adherence and
|
|
test execution.
|
|
min_scores:
|
|
spec_adherence: 9
|
|
test_pass_rate: 9
|
|
qualifies_today:
|
|
- minimax
|
|
- claude-sonnet-5
|
|
- claude-opus-5
|
|
|
|
coding:
|
|
description: >
|
|
Narrow TDD implementation against pre-validated tests. Lower floors because
|
|
tests already constrain the solution space.
|
|
min_scores:
|
|
spec_adherence: 7
|
|
test_pass_rate: 7
|
|
qualifies_today:
|
|
- airouter-qwen3
|
|
- airouter-deepseekv4flash
|
|
- minimax
|
|
- claude-sonnet-5
|
|
- claude-opus-5
|
|
- claude-fable-5
|