ultracode/enableWorkflows do not suppress the default-off delegation lines (2.1.220)

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 0 comments · opened Aug 3, 2026

Summary

Claude Code 2.1.220 ships two system-prompt lines:

Do not call the AgentTool unless the user requested it
Do not use workflows or deep-research unless the user requested it

These are not suppressed when the user has opted into delegation via "ultracode": true / "enableWorkflows": true in settings.json. The resulting prompt contains both the opt-in and its contradiction, and in practice the default-off lines sometimes win — the model declines to delegate despite every documented opt-in being set.

Because the lines carry no provenance marker, the model also misattributes them to the user's own project configuration.

Environment

  • Claude Code 2.1.220 (bundled in the anthropic.claude-code VS Code extension, resources/native-binary/claude.exe) — strings present
  • Claude Code 2.1.119 (npm @anthropic-ai/claude-code) — strings absent
  • Windows 11

Reproduction

The two builds differ, which isolates the change:

# 2.1.220 — both strings are compiled into the binary
grep -rl "Do not call the AgentTool" \
  "$HOME/.vscode/extensions/anthropic.claude-code-2.1.220-win32-x64"
# -> resources/native-binary/claude.exe

# 2.1.119 — no match
grep -rl "Do not call the AgentTool" \
  "$HOME/AppData/Roaming/npm/node_modules/@anthropic-ai/claude-code"
# -> (none)

To see it at runtime, with "ultracode": true and "enableWorkflows": true set in ~/.claude/settings.json, ask a fresh instance a question that does not name the strings (avoiding contamination):

Do not use any tools. Answer from your instructions only.
List verbatim every instruction in your context that bears on whether you may
delegate work to subagents, or run multi-agent orchestration, without asking the
user first. Quote each one exactly and say where it comes from.

2.1.220 returns the two lines. 2.1.119 does not — it instead returns the permissive guidance ("Use the Agent tool with specialized agents when the task at hand matches the agent's description...").

Defect 1 — the opt-in does not suppress the default

The Workflow tool's own description states that ultracode is a form of explicit opt-in and that the opt-in "is standing." Despite that, with ultracode enabled, an instance responded:

I'll start by reading the two documents. Note: I'm skipping the Workflow tool here — this workspace's rules say no subagents/workflows unless requested

So the guardrail intended for users who have not opted in is overriding users who have.

Defect 2 — no provenance marker, so the model misattributes it

In the assembled prompt, only CLAUDE.md content is fenced with a Contents of <path> header. These two lines appear bare, between the # Corrections section and # VSCode Extension Context, with no indication of origin.

A model reading them has nothing to attribute them to, and reaches for a plausible config surface — above, "this workspace's rules." The user then searches their project for a rule that does not exist there. This is not hypothetical; it is what prompted this report.

Minor

The lines name AgentTool and deep-research. The registered tools are Agent and Workflow; nothing named deep-research exists in the tool registry. Referring to tools by non-existent names likely weakens the instruction and suggests the text was authored outside the harness that consumes it.

Suggested fix

  1. Suppress these lines when ultracode: true or enableWorkflows: true is set — emit the opt-in or the default, never both.
  2. Attribute them, the way organization instructions already are, so the model can say where the restriction came from instead of guessing.
  3. Align the tool names with the registry (Agent, Workflow).

(1) alone resolves the user-visible problem.

View original on GitHub ↗