Skip to content

[Bug]: Claude Code threads get T3 instructions meant for other agents #16465

Description

@slkiser

Before submitting

  • 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

  1. Run T3 Code 0.0.46-nightly.20261005.2702 and open any project.
  2. Start a new thread with Claude Code (Full access).
  3. 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.

Impact

Minor bug or occasional failure

Version or commit

0.0.46-nightly.20261005.2702 (cfa4f76)

Environment

macOS 15 (Darwin 24.6), T3 run with t3 serve, Claude Code 2.1.288

Logs or stack traces

Screenshots, recordings, or supporting files

No response

Workaround

None needed. Claude mostly ignores it, but it costs tokens in every thread and the wrong tool name can mislead.

Activity

  1. added
    bugSomething is broken or behaving incorrectly.
    needs-triageIssue needs maintainer review and initial categorization.
    on Oct 6, 2026
  2. juliusmarminge commented on Oct 6, 2026

    @juliusmarminge
    Member

    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 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.

    A maintainer will decide on the fix direction.

  3. added
    via-triageFiled through npx t3 triage
    and removed
    needs-triageIssue needs maintainer review and initial categorization.
    on Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions