Skip to content

fix(fork): drop the "subagent or child" line from the orchestration prompt - #90

Merged
orbitingflea merged 1 commit into
mainfrom
fork/drop-child-no-subagent-line
Nov 7, 2026
Merged

orbitingflea merged 1 commit into
mainfrom
fork/drop-child-no-subagent-line

Conversation

@orbitingflea

Copy link
Copy Markdown
Owner

This pull request removes the bullet "If you are a subagent or child, do the work yourself. Start no subagents unless your task says to." from the orchestration prompt, T3_CODE_ORCHESTRATION_SECTIONS in packages/provider-core/src/server/orchestrationInstructions.ts.

Every thread with T3 tools gets this prompt, including delegated child threads. These children read the bullet as aimed at themselves, so they never start the subagents that some multi-agent skills need. The bullet came from upstream in pingdotgg#24850, and no upstream commit or pull request says why.

After this change, a delegated child gets no prompt rule against starting subagents. Whether it starts one depends on its task and its other instructions. Nothing else in the prompt changes. The prompt goes into the Claude system prompt append, the Codex additional context, and the ACP, OpenCode, Cursor, and Pi prompts. Native subagents never see it. agentContextBudget.json takes the two new sizes, each 101 bytes smaller.

The server and provider-core tests for the prompt and its size budget pass, and so does check:changed origin/main. The model-behavior evals were not run. To undo the change, revert the commit.

Sizes, tests, and the eval cases left as upstream

Sizes. claudeSystemAppendBytes goes from 5366 to 5265, and codexAdditionalContextBytes goes from 7096 to 6995. Each drop is the removed bullet's 101 bytes. mcpToolListJsonBytes is unchanged.

Tests. In apps/server, AgentContextBudget.test.ts, CodexDeveloperInstructions.test.ts, generalRoleParity.test.ts, and ClaudeAdapterV2.test.ts pass, with 361 tests in the 4 files. In packages/provider-core, the 5 tests in orchestrationInstructions.test.ts pass. check:changed origin/main exits with code 0. It runs format, lint, knip, typecheck, and tests.

Eval cases. Three cases in evals/mcp-tool-use/cases/threads-vs-tasks.ndjson quote the removed bullet in their rule field: tt-child-no-unprompted-thread, tt-native-subagent-no-thread-for-rewrite, and tt-child-authorized-thread. No code reads rule, and the fork does not run these evals. This pull request leaves the cases as upstream wrote them, so upstream merges stay free of conflicts in that file. tt-child-no-unprompted-thread lists Agent in notCalls, so in the fork that one expectation no longer has a prompt line behind it.

…rompt

Every thread gets the orchestration prompt, delegated workers included.
Its last bullet told a subagent or child to do the work itself and start
no subagents unless its task said to. Workers read that line as aimed at
themselves, so they never started the subagents that some skills need.

Remove the bullet. The first orchestration section now ends with the
bullet on following a running delegate's `next`. The Claude system
append and the Codex additional context each shrink by the bullet's 101
bytes, and agentContextBudget.json takes the new measured values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@orbitingflea
orbitingflea merged commit 6404cad into main Nov 7, 2026
3 of 24 checks passed
@orbitingflea
orbitingflea deleted the fork/drop-child-no-subagent-line branch November 7, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant