Search, Diff, Shell, and Tests are not valid Claude Code tools, so every generated subagent silently launched with a broken or empty tool set. Map each role to the tools its own prompt actually needs, and use a __SHELL__ placeholder so build resolves it to the target package's own shell tool instead of granting both Bash and PowerShell unconditionally. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>