Variable claudeCodeBuiltinAgentToolsConst
claudeCodeBuiltinAgentTools: readonly [
"Read",
"Grep",
"Glob",
"Bash",
"PowerShell",
"Edit",
"Write",
"NotebookEdit",
"WebFetch",
"WebSearch",
"TodoWrite",
"Skill",
"ToolSearch",
"EnterWorktree",
"ExitWorktree",
"Monitor",
"TaskStop",
"SendMessage",
"Artifact",
"Agent",
"Task",
"ExitPlanMode",
"ListAgents",
"LSP",
"ShareOnboardingGuide",
"CronCreate",
"CronDelete",
"CronList",
"TaskCreate",
"TaskGet",
"TaskList",
"TaskUpdate",
] = ...
The Claude Code built-in subagent tool catalog as a
consttuple, so a typed authoring surface can derive a LITERAL union (ClaudeCodeBuiltinTool) from it.DERIVED, not authored: it is exactly the vocabulary's declarable terms — the ones the platform provides outright plus the ones it withholds only under a condition. Both halves are legitimate to write in a
tools:line, which is whyAgentbelongs here and used to sit inneverAvailableToolsinstead. Because this is a projection rather than a second hand-kept list, the two can no longer disagree;vocabularyProjectionProblemsasserts it in the conformance kit rather than leaving it to care.