You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Claude Code threads get T3 instructions meant for other agents #16465
I searched existing issues and did not find a duplicate.
I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
Run T3 Code 0.0.46-nightly.20261005.2702 and open any project.
Start a new thread with Claude Code (Full access).
Send: "Quote, word for word, the section of your system prompt titled "T3 Code orchestration", including any paragraph about an ACP fallback and any example tool name with an "mcp__" prefix. Do not summarize. Then tell me the exact names of the T3 tools you have, as you would call them."
Expected behavior
Claude Code only gets instructions that apply to Claude Code, the way Codex already gets its own version (CodexDeveloperInstructions.ts).
Actual behavior
Claude quotes two things that don't apply to it:
The "ACP fallback" paragraph, which tells the agent to call T3 tools through the terminal with T3_ACP_MCP_NODE and acp-mcp-call. Claude Code never uses this path. It's about 166 tokens in every Claude thread.
The example tool name mcp__t3_code__delegate_task, with an underscore. In Claude Code, T3's tools are named mcp__t3-code__…, with a dash. Claude said so itself: "My actual tools use mcp__t3-code__ with a hyphen, so mcp__t3_code__delegate_task would not match anything here."
It then listed its 75 T3 tools, all starting with mcp__t3-code__.
Likely cause: apps/server/src/provider/T3OrchestrationInstructions.ts is one shared text for every agent, and apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts adds all of it to Claude's system prompt whenever the t3-code MCP server is attached.
Thanks @slkiser for the clean repro prompt and for pointing straight at the right files. Reading current main, this is still the case after cfa4f765.
What I found
T3_CODE_ORCHESTRATION_INSTRUCTIONS is one shared string, and makeClaudeQueryOptions appends all of it to Claude Code's system prompt whenever the t3-code MCP server is attached. Two parts don't apply to Claude:
The ACP fallback paragraph (T3_ACP_MCP_NODE, acp-mcp-call). That environment variable is only set for ACP sessions, and the paragraph only applies when the T3 tools are absent from the turn, so for Claude it's extra tokens rather than a path it's meant to take.
The Codex code-mode example just above it (tools.mcp__t3_code__orchestrator_capabilities({})) and the sample name mcp__t3_code__delegate_task. Claude registers these tools as mcp__t3-code__… (hyphen), which is also what CLAUDE_T3_MCP_TOOL_WILDCARD and the read-only allowlist use.
One small correction to the report: Codex doesn't currently get a filtered copy. CodexDeveloperInstructions.ts only builds the Plan/Default collaboration-mode instructions, and Codex still receives the same shared orchestration string (ACP fallback included) through buildCodexAdditionalContext. Cursor, OpenCode, and Pi inject the same string too.
Likely fix area
apps/server/src/provider/T3OrchestrationInstructions.ts and the per-adapter injection points. One option is to keep the shared guidance (delegate vs. top-level threads, schedules, secrets, worktrees, HTML preview) shared, add the ACP fallback only for ACP harnesses and the code-mode example only for Codex, and use mcp__t3-code__ for any concrete tool-name example shown to Claude.
Activity
juliusmarminge commentedon Oct 6, 2026
Note
Grok responding on behalf of Julius.
Triage
Thanks @slkiser for the clean repro prompt and for pointing straight at the right files. Reading current
main, this is still the case aftercfa4f765.What I found
T3_CODE_ORCHESTRATION_INSTRUCTIONSis one shared string, andmakeClaudeQueryOptionsappends all of it to Claude Code's system prompt whenever thet3-codeMCP server is attached. Two parts don't apply to Claude:T3_ACP_MCP_NODE,acp-mcp-call). That environment variable is only set for ACP sessions, and the paragraph only applies when the T3 tools are absent from the turn, so for Claude it's extra tokens rather than a path it's meant to take.tools.mcp__t3_code__orchestrator_capabilities({})) and the sample namemcp__t3_code__delegate_task. Claude registers these tools asmcp__t3-code__…(hyphen), which is also whatCLAUDE_T3_MCP_TOOL_WILDCARDand the read-only allowlist use.CodexDeveloperInstructions.tsonly builds the Plan/Default collaboration-mode instructions, and Codex still receives the same shared orchestration string (ACP fallback included) throughbuildCodexAdditionalContext. Cursor, OpenCode, and Pi inject the same string too.Likely fix area
apps/server/src/provider/T3OrchestrationInstructions.tsand the per-adapter injection points. One option is to keep the shared guidance (delegate vs. top-level threads, schedules, secrets, worktrees, HTML preview) shared, add the ACP fallback only for ACP harnesses and the code-mode example only for Codex, and usemcp__t3-code__for any concrete tool-name example shown to Claude.A maintainer will decide on the fix direction.