Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.207 ·

Walnut Spire (plugin eval General Availability) [In Development]

Entry
JSON All of v2.1.207
EntryKind: in v2.1.207,
In DevelopmentSection of the release
What

The plugin eval CLI subcommand (for evaluating plugins against test cases) was previously hard-gated behind tengu_walnut_spire. The gate is still present but is now also unlockable via the CLAUDE_CODE_WALNUT_SPIRE environment variable.

Details
  • When mvc() returns false (both tengu_walnut_spire flag and CLAUDE_CODE_WALNUT_SPIRE env var absent), invoking claude plugin eval or claude plugin eval init immediately aborts with the message "plugin eval is currently in early access" — no command logic runs.
  • claude plugin eval [target] discovers eval cases from evals//case.yaml or evals//prompt.md + graders/*.md under the target directory. The target may be a file-system path, an installed plugin name, or a plugin@marketplace id; skills-dir plugins also resolve and automatically add a no-plugin baseline arm for comparison.
  • The command exposes a full suite of options: --case <glob> (filter cases by name), --tag <tag...> (filter by tag, repeatable), --runs <n> (default from case.runs ?? 3), --model (override model), --judge-model (LLM grader model, default Haiku), --max-cost-usd (hard budget ceiling — breaching it exits with code 2 and reports partial results; the overrunning agent skips paid graders but free graders still score), --output-dir (default ./evals/results/<timestamp>/), --json (emit aggregate-result.json to stdout for CI), --threshold <0..1> (exit 1 if any case score falls below this value, default 1.0), --allow-tools <tools...> (operator grant for gated tools: Bash, Write, Edit, WebFetch, mcp__; supports Tool(pattern:) syntax), --scaffold/--no-scaffold (run scaffold_script from case files, off by default), --ablation (none | with-without, automatically with-without when targeting a plugin by name), --keep-temp (preserve scaffold dirs for debugging), --verbose (stream trace as it runs).
  • claude plugin eval init [name] authors an eval suite under evals/ via an interactive interview (--interactive/--interview) or writes a blank single-case template (--bare).
  • Model-trigger evaluation (the "would the model route to this skill?" check) is still incomplete: when the model callback returns null, the case receives verdict skipped with reason "Model evaluation not yet wired up — tracks the plugin evaluation framework." All other eval machinery (grading, scoring, reporting) does execute.
Status

Feature-flagged via tengu_walnut_spire; also enabled by CLAUDE_CODE_WALNUT_SPIRE env var.

Evidence

Gate helper mvc() (line 184017) with check if (!mvc()) ms(...) at lines 780193–780194 (eval) and line 780275 (eval init); full command definition lines 780196–780284; partial-results skipped verdict at lines 672882–672889 (search for "CLAUDE_CODE_WALNUT_SPIRE" and "Model evaluation not yet wired up")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Read from
Feature flag
tengu_walnut_spire Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.207: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.207. It isn't a statement about your account. What a flag value here can and cannot tell you

What has happened since
Flag reading moved The flag server now returns off for tengu_walnut_spire, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns nothing at all, having stopped carrying it for tengu_walnut_spire, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.

See this across every release →

See this entry in the whole of v2.1.207 →

Feedback