/** * Skills, served over MCP. * * Claude Code reads `skills/` out of the plugin directory directly. Codex, * Gemini CLI and Cursor have no such concept — so without this, everyone except * Claude Code gets raw tools and none of the craft that makes the tools produce * decent sprites. Serving the same markdown as MCP resources *and* MCP prompts * closes that gap with one source of truth on disk. * * Resources are the discovery surface (an agent can list and read them at will); * prompts are the invocation surface (they show up as slash commands in clients * that render them). Both point at the same file. * * Tracks the Skills Extension direction of the MCP Skills-over-MCP WG * (SEP-2640, resources-based). When that lands in the SDK the transport here * becomes the standard one; the on-disk format does not change. */ export interface SkillDoc { /** Directory name, and the name the agent invokes. */ name: string; title: string; description: string; /** Full markdown body, frontmatter stripped. */ body: string; file: string; /** Extra files shipped next to SKILL.md, exposed as sub-resources. */ assets: string[]; } export interface RuleDoc { name: string; title: string; body: string; file: string; } export declare function loadSkills(root: string): SkillDoc[]; export declare function loadRules(root: string): RuleDoc[]; /** * The server's `instructions` string — the one piece of guidance every MCP * client sees, whether or not it understands skills or plugins. Keep it short: * it is paid for on every session, so it carries only the rules an agent gets * wrong catastrophically, and points at the skills for everything else. */ export declare function serverInstructions(skills: SkillDoc[], mode?: "live" | "headless"): string;