The distinction I'd draw out here is between the Skill file and the tool wiring behind it, since they have different fixes. The markdown itself should be portable in principle, it's just text with instructions, but that's not actually what broke for you: the skill assumed a specific set of tool connections were sitting there (Firecrawl via MCP, the model APIs), and those don't travel with the file. A router like BeatAPI fixes exactly that half well, one connection instead of re-registering per host. What it doesn't fix on its own is a skill that names a tool by an exact shape the router doesn't expose the same way, so the failure mode moves rather than disappears, from "skill won't run because the API isn't set up" to "skill runs but calls something slightly different than what it expects." Has that shown up yet with Social Data, where a skill written against one search API's response shape gets a differently-shaped result from BeatAPI's own?