docs(runtime): the judge no longer runs on a dead credential

`provider_alias_for` still documented the judge as deliberately sitting on
`anthropic.judge`/API key, so a subscription throttle would degrade missions
while verification kept working. That credential is an account with a zero
balance — driving the real path returns 400 "Your credit balance is too low" —
so the comment pointed the next reader at something that cannot answer.

`anthropic.default` and `anthropic.judge` are retired from the runtime config
and every agent that named them was repointed onto a live credential. The
independence argument that put the judge there still holds; it is now served by
a different FAMILY rather than a different key — CLAWMATES_VALIDATOR_MODEL is
glm:glm-4.7 on gw-04, and cross_provider_judge already refuses a validator in
the implementer's own family.

Config-side (gw-04, not in this repo): 755 -> 246 lines, 128 -> 14 agent
blocks, after sweeping 19 [agents.claw_<uuid>] corpses — every one verified
against agents WHERE deleted_at IS NULL. Nothing reaped those, and the file is
byte-copied into every mission.

Verified: scout/judge/worker_kimi/worker_glm each answer on their new
provider, and multirole passes 4/4 against the reorganized config.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
Omar Sobh
2026-08-10 13:18:16 -07:00
co-authored by Claude Opus 5
parent 104e3ef27c
commit e2c312b728
+17 -8
View File
@@ -22,15 +22,24 @@ pub fn claw_alias(claw_id: Uuid) -> String {
///
/// Claude models resolve to `claude_cli.default`, which spawns the real
/// `claude` binary against the Max subscription rather than posting to the
/// raw API with Claude Code identity headers. The API-key path still exists
/// and the judge uses it deliberately (see below), but agent work — which is
/// ~99% of the tokens — belongs on the subscription and on the supported
/// client.
/// raw API with Claude Code identity headers. Agent work — ~99% of the
/// tokens — belongs on the subscription and on the supported client.
///
/// The judge stays on `anthropic.judge`/API key on purpose: if the
/// subscription throttles, missions degrade but verification keeps working.
/// Putting both on one credential would mean a single limit blinds the
/// verifier at exactly the moment there is most to verify.
/// **The API-key path is gone.** `anthropic.default` and `anthropic.judge`
/// were retired from the runtime config on 2026-08-10: both held `sk-ant-api`
/// keys on an account whose balance is zero, which the real code path reports
/// as `400 … "Your credit balance is too low"`. Every agent that named them
/// was repointed onto a live credential.
///
/// The independence argument that put the judge there still holds — a
/// verifier sharing one credential with the implementer goes blind at exactly
/// the moment there is most to verify — but it is now served by a different
/// FAMILY rather than a different key: the validator runs on
/// `CLAWMATES_VALIDATOR_MODEL` (`glm:glm-4.7` on gw-04) while agents run on
/// the subscription, and `cross_provider_judge` refuses a validator in the
/// implementer's own family. `claude_cli.default` also carries
/// `fallback = ["claude_cli.kimi", "claude_cli.glm"]`, so a throttle degrades
/// across credentials instead of stopping.
///
/// Non-Claude families are unchanged: `groq.default` and the GLM/Kimi
/// substitution below. Gemini was removed entirely — a `gemini*` model now