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
Allow configuring default instructions or a default skill per provider model
#21259
I use a route skill that classifies each incoming request and escalates harder work to stronger models via T3's delegate_task. It pays off most on threads that start on the cheapest models:
T3 Code has no way to attach default instructions or a skill to a specific model, so I type /route at the start of every message on those models.
What T3 already has
On main (b5b6c8c), T3 can already deliver instructions across providers, but none of it is user-configurable per model:
packages/provider-core/src/server/orchestrationInstructions.ts defines T3_CODE_ORCHESTRATION_INSTRUCTIONS and injects instructions into threads for each provider when T3's MCP tools are present, via t3OrchestrationSystemPrompt, t3OrchestrationPromptForFirstRun, and t3AcpPromptWithInstructions. The text is fixed.
packages/contracts/src/settings.ts has sourceControlWritingStyle.customInstructions, the only user-editable instructions setting. It applies to commit and PR writing only.
packages/shared/src/projectSettings.ts has defaultModelSelection, which picks a project's default model but carries no instructions.
Proposal
A user setting for default instructions and/or a default skill, keyed by provider instance and model ID, with globs such as antigravity / gemini-3.8-flash-*.
Scope: applies to every thread running on a matching model, including a thread that switches to that model mid-conversation.
Delivery path: the same mechanism T3 uses for its orchestration instructions, so it reaches every provider, including Antigravity, which doesn't load rules files today.
Per-turn injection: a reminder on each turn, not only at thread start. In my testing, Haiku ignored a one-time CLAUDE.md instruction on the first turn but followed a per-prompt hook reminder.
Defaults and opt-out: empty by default, so nothing changes for existing users. Optionally, an escape prefix to skip it for one message.
Example configuration (the shape is illustrative; key names are made up):
{
"modelInstructions": [
{
"provider": "claudeAgent",
"model": "claude-haiku-5-5",
"skill": "route"
},
{
"provider": "codex",
"model": "gpt-6-luna",
"instructions": "Classify the request first and delegate complex tasks via delegate_task."
},
{
"provider": "antigravity",
"model": "gemini-3.8-flash-*",
"instructions": "Classify the request first and delegate complex tasks via delegate_task."
}
]
}
Current workaround
Claude: a model-conditional rule in global CLAUDE.md ("if your model ID starts with claude-haiku-, invoke the route skill") loaded into context, but Haiku ignored it on the first turn. A Claude Code UserPromptSubmit hook that injects the reminder on every prompt works, but only for Claude threads.
Codex: global AGENTS.md applies to every Codex model, so it can't target gpt-6-luna alone.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Problem
I use a
routeskill that classifies each incoming request and escalates harder work to stronger models via T3'sdelegate_task. It pays off most on threads that start on the cheapest models:claudeAgent/claude-haiku-5-5)codex/gpt-6-luna)antigravity/gemini-3.8-flash-*)T3 Code has no way to attach default instructions or a skill to a specific model, so I type
/routeat the start of every message on those models.What T3 already has
On
main(b5b6c8c), T3 can already deliver instructions across providers, but none of it is user-configurable per model:packages/provider-core/src/server/orchestrationInstructions.tsdefinesT3_CODE_ORCHESTRATION_INSTRUCTIONSand injects instructions into threads for each provider when T3's MCP tools are present, viat3OrchestrationSystemPrompt,t3OrchestrationPromptForFirstRun, andt3AcpPromptWithInstructions. The text is fixed.packages/contracts/src/settings.tshassourceControlWritingStyle.customInstructions, the only user-editable instructions setting. It applies to commit and PR writing only.packages/shared/src/projectSettings.tshasdefaultModelSelection, which picks a project's default model but carries no instructions.Proposal
A user setting for default instructions and/or a default skill, keyed by provider instance and model ID, with globs such as
antigravity/gemini-3.8-flash-*.CLAUDE.mdinstruction on the first turn but followed a per-prompt hook reminder.Example configuration (the shape is illustrative; key names are made up):
{ "modelInstructions": [ { "provider": "claudeAgent", "model": "claude-haiku-5-5", "skill": "route" }, { "provider": "codex", "model": "gpt-6-luna", "instructions": "Classify the request first and delegate complex tasks via delegate_task." }, { "provider": "antigravity", "model": "gemini-3.8-flash-*", "instructions": "Classify the request first and delegate complex tasks via delegate_task." } ] }Current workaround
CLAUDE.md("if your model ID starts withclaude-haiku-, invoke therouteskill") loaded into context, but Haiku ignored it on the first turn. A Claude CodeUserPromptSubmithook that injects the reminder on every prompt works, but only for Claude threads.AGENTS.mdapplies to every Codex model, so it can't targetgpt-6-lunaalone.AGENTS.mdorGEMINI.mdrules ([Bug]: Antigravity sessions load no AGENTS.md/GEMINI.md rules (global or workspace), unlike Claude and Codex #15283), so there's no file-based workaround.Related
delegate_taskpicks. This proposal is the other half: instructions that follow the model the thread itself runs on.AGENTS.mdorGEMINI.mdrules.Environment
0.1.1-nightly.20261017.3238🤖 Generated with Claude Code
All reactions