I’ve been building custom Skills and ran into a design question I’d love to get community input on. The situation: When a Skill involves calling an external tool or service, there are often multiple ways to do it – CLI commands, MCP server tools, or direct API calls. The best approach depends on the user’s environment and setup. For example: Claude Code users (local) might prefer CLI tools Chat users (cloud) might need MCP tools or HTTP API calls My question: How do you design a single Skill that gracefully handles these different execution paths? Keep a shared SKILL .md with the core workflow, then split variant-specific instructions into reference files At the top of the Skill, include logic like “Check if MCP tool X is available. If yes, use it. If not, check if CLI tool Y is installed. If not, fall back to API calls.” Keeps everything in one file but could get messy. Just make my-skill-cli , my-skill-mcp , my-skill-api as independent Skills. Simple but a lot of duplication. Would appreciate any insights. Thanks! submitted by /u/hirokiyn
Originally posted by u/hirokiyn on r/ClaudeCode
