All posts

Blog

Claude Code 2.1.269 adds plugin eval harness and workflow concurrency controls

FindAmNow
claude-codeanthropicpluginscoding-agents

Claude Code 2.1.269 adds claude plugin eval for scored plugin suites with JSON and HTML reports, plus CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS to raise Workflow tool concurrency. Version 2.1.270 follows with a related git permission fix.

What’s new in Claude Code 2.1.269

Anthropic’s Claude Code CHANGELOG lists 2.1.269 with two developer-facing additions for plugin quality and multi-agent workflows: `claude plugin eval` and `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS`. Related notes for 2.1.270 and official docs on plugin evals and workflows flesh out how those features are meant to be used.

claude plugin eval: scored, reproducible plugin tests

The changelog states that 2.1.269 added `claude plugin eval`: run a plugin’s eval suite against Claude Code and get scored, reproducible results as a JSON and HTML report (see claude plugin eval --help).

Official docs at Test plugins with evals require Claude Code v2.1.269 or later. The command runs a plugin against a suite of test cases. Each case is a realistic prompt plus one or more graders—pass/fail checks such as a regex over the reply, whether a particular tool was called, or a rubric judged by a second model.

You can scaffold cases with `claude plugin eval init`, which proposes prompts and graders, pilots them, and writes files under an evals/ directory (or another path configured in the plugin manifest). Runs start a fresh, isolated non-interactive session with only the target plugin loaded. By default each case runs multiple times with and without the plugin so you can compare scores (WITH, W/OUT, and Δ). Results include an HTML report and aggregate JSON suitable for CI gating via --threshold, --json, and related flags.

The Create plugins guide also points authors from local --plugin-dir testing toward claude plugin eval when they need to measure how often Claude reaches for a plugin and whether it gets the right result—especially across plugin or model changes.

This eval format is documented as separate from the older evals/evals.json layout used by the skill-creator plugin.

Workflow concurrency: CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS

The same 2.1.269 entry added `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` (1–256) to raise the Workflow tool’s per-run concurrent agent limit for inference-bound fan-outs.

Claude Code’s dynamic workflows documentation explains that workflows orchestrate many subagents from a script Claude writes and a runtime executes in the background. Under behavior and limits, the docs state a default bound of up to 16 concurrent agents (fewer when fewer CPUs are available, including inside a CPU-limited container), plus other caps such as items per parallel()/pipeline() call and agents total per run. The new environment variable gives teams a documented way to lift the per-run concurrent-agent ceiling within the 1–256 range when work is limited by inference rather than local CPU.

Related 2.1.270 note

Immediately above 2.1.269 in the changelog, 2.1.270 records a follow-up fix: read-only git commands in Bash unexpectedly asking for permission after a session had been running for a while—a regression in 2.1.269. Teams upgrading for plugin eval or workflow concurrency should note that 2.1.270 addresses that permission regression.

Other 2.1.269 highlights (from the changelog)

Beyond the two headline items, 2.1.269 also lists additions such as `/output-style [name]` for listing and switching output styles (including over Remote Control and in cloud/headless sessions), plus numerous terminal, prompt-cache, plugin MCP/LSP, VS Code, and Claude Tag fixes. The changelog remains the authoritative list; this draft focuses on plugin eval and workflow concurrency as the named theme of the release.

Source: Claude Code CHANGELOG.md (2.1.269 / 2.1.270); Test plugins with evals; Create plugins; Dynamic workflows

Source