{"id":13825,"date":"2026-05-27T14:51:24","date_gmt":"2026-05-27T14:51:24","guid":{"rendered":"https:\/\/cheesecakelabs.com\/blog\/"},"modified":"2026-05-27T14:51:26","modified_gmt":"2026-05-27T14:51:26","slug":"skills-and-subagents","status":"publish","type":"post","link":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/","title":{"rendered":"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse"},"content":{"rendered":"\n<p>I had a conversation with a tech lead at a client last quarter that crystallized why this article needed to exist. They had spent three weeks building what they called &#8220;their agent fleet,&#8221; six custom agents for different parts of their codebase, with bespoke prompts, careful naming, the works. We sat down to look at why they could not figure out how to run two of them in parallel.<\/p>\n\n\n\n<p>The answer was that they had not built agents. They had built six skills. All living inside one <strong>Claude Code<\/strong> session, all loading into the same context window when their descriptions matched. By the time the third one was active, the context was past <strong>150K tokens<\/strong> and quality was degrading. Running two of them at once was not a thing because they were not separate processes. They were paragraphs in the same prompt.<\/p>\n\n\n\n<p>The conceptual gap cost them three weeks. The rewrite, once we named the primitive correctly, took two days. The system was much smaller after we were done, and it ran in parallel for the first time.<\/p>\n\n\n\n<p>This article is the layer most teams confuse, written so you do not have to lose those three weeks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The three layers. Tools, MCPs, Skills.<\/strong><\/h2>\n\n\n\n<p>Before skills versus subagents, the layer that gives both of them context. Claude Code (and any modern coding agent) operates on three orthogonal layers, and most teams have only really internalized one of them.<\/p>\n\n\n\n<p><strong>Tools are verbs.<\/strong> They are what the agent can physically do, there&#8217;s some questions, for example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Read a file.<\/li>\n\n\n\n<li>Write a file.<\/li>\n\n\n\n<li>Edit a file.<\/li>\n\n\n\n<li>Run a bash command.<\/li>\n\n\n\n<li>Search with grep.<\/li>\n\n\n\n<li>Glob a path.<\/li>\n\n\n\n<li>Fetch a URL.<\/li>\n\n\n\n<li>Search the web. <\/li>\n<\/ul>\n\n\n\n<p>These are built into the agent. You do not configure them. You allow or restrict them.<\/p>\n\n\n\n<p><strong>MCPs are external connections.<\/strong> The <a href=\"https:\/\/modelcontextprotocol.io\" target=\"_blank\" rel=\"noreferrer noopener\">Model Context Protocol<\/a> is an open standard Anthropic introduced in November 2024 and has since been <a href=\"https:\/\/www.anthropic.com\/news\/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation\" target=\"_blank\" rel=\"noreferrer noopener\">adopted by OpenAI, Google, Microsoft, Cursor, and most agent surfaces<\/a>. In December 2025, Anthropic donated MCP to the Agentic AI Foundation under the Linux Foundation.<\/p>\n\n\n\n<p><strong>Anthropic-reported adoption: <\/strong>97 million-plus monthly SDK downloads and 10,000-plus active MCP servers. MCP is the layer that connects your agent to your production database, Datadog, Sentry, GitHub, Slack, Jira, and anything else with an API.<\/p>\n\n\n\n<p>Skills are recipes \u2014 folders of markdown that tell the agent how to do a specific kind of work well in your context: when to write a Postgres migration this way and not that way, how to structure a spec at this company, what &#8220;code review&#8221; means when this particular team does it. They are the institutional knowledge of your team, version-controlled and tool-agnostic.<\/p>\n\n\n\n<p>The three layers are independent. Most teams I see have figured out tools (they ship features), have plugged in two or three MCPs (usually GitHub and a database), and have done almost nothing on skills. Skills are where the highest-leverage investment is for most teams in 2026.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Read more: <\/strong><a href=\"https:\/\/cheesecakelabs.com\/blog\/three-eras-of-software\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Three Eras of Software: From Autocomplete to Agentic Development<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What a skill actually looks like<\/strong><\/h2>\n\n\n\n<p>A skill is a folder. At minimum it contains a SKILL.md with two YAML frontmatter fields: name and description. That is the only required content. Optionally, the folder can include references\/ (additional markdown loaded on demand), examples\/ (concrete examples the agent reads when relevant), and scripts\/ (executable code the skill can call).<\/p>\n\n\n\n<p>The mechanic that makes skills cheap is what Anthropic calls <strong>progressive disclosure<\/strong>, and it is on the <a href=\"https:\/\/code.claude.com\/docs\/en\/skills\" target=\"_blank\" rel=\"noreferrer noopener\">official skills docs<\/a>. Three levels of loading.<\/p>\n\n\n\n<p>Level one is the frontmatter. Just the name and description. This is in the agent&#8217;s system prompt all the time, in every session. <strong>Claude reads only this when deciding whether to invoke the skill.<\/strong> A description like &#8220;when the user wants to plan a Postgres migration&#8221; is what tells the agent &#8220;this skill is relevant to this task.&#8221; Get the description wrong and the skill never gets used.<\/p>\n\n\n\n<p>Level two is the body of <strong><em>SKILL.md<\/em><\/strong>, loaded only when the skill is activated. Anthropic recommends keeping this under 500 lines \u2014 past that, you are pushing the agent&#8217;s working memory and the skill stops being cheap to run.<\/p>\n\n\n\n<p>Level three is the references\/ files. Loaded only when the body of the skill points to them. This is how you carry deep reference material (a 2,000-line database conventions doc, say) without paying its context cost on every task that touches the database. The agent fetches it only when it needs it.<\/p>\n\n\n\n<p><strong>Skills follow a four-level hierarchy:<\/strong> Enterprise, User, Project, Plugins. Same hierarchy as CLAUDE.md, which is intentional. Skills work across agent surfaces too. The same SKILL.md runs in Claude Code, Cursor, Codex CLI, OpenCode, and Copilot CLI. That portability is part of why skills are the layer you should invest in over surface-specific prompts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ready-made packs worth knowing<\/strong><\/h2>\n\n\n\n<p>I do not love when engineering teams build everything from scratch. Skills are an area where the community has shipped a lot of useful work, much of it free, and forking is usually the right move.<\/p>\n\n\n\n<p><strong>Superpowers<\/strong> is the <a href=\"https:\/\/github.com\/obra\/superpowers\" target=\"_blank\" rel=\"noreferrer noopener\">largest community-built skill pack<\/a>, authored by Jesse Vincent (obra). On January 15, 2026 it was accepted into Anthropic&#8217;s <a href=\"https:\/\/claude.com\/plugins\/superpowers\" target=\"_blank\" rel=\"noreferrer noopener\">official Claude Code plugin marketplace<\/a>, which is roughly the open-source equivalent of getting endorsed.<\/p>\n\n\n\n<p>It ships skills for brainstorming, test-driven development, systematic debugging, subagent-driven development with code review, and skill authoring itself (yes, a skill that writes skills).<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Install with \/plugin install superpowers@claude-plugins-official. Works across Claude Code, Cursor, Codex, Copilot CLI, Gemini CLI, and OpenCode.<\/p>\n<\/blockquote>\n\n\n\n<p><strong>GStack<\/strong> is <a href=\"https:\/\/github.com\/garrytan\/gstack\" target=\"_blank\" rel=\"noreferrer noopener\">Garry Tan&#8217;s pack<\/a>, shipped on March 12, 2026 under MIT. Garry Tan is President and CEO of Y Combinator, and GStack is opinionated in a way that reflects YC&#8217;s view of a startup engineering team. Twenty-three specialists modeled as personas (CEO, Designer, Engineering Manager, Release Manager, Doc Engineer, QA Lead, Chief Security Officer, others) plus eight power tools.<\/p>\n\n\n\n<p>The loop the pack enforces is Think, Plan, Build, Review, Test, Ship, Reflect. Useful for small teams that want a strong opinion on workflow without writing one themselves.<\/p>\n\n\n\n<p><strong>Tech Leads Club agent-skills<\/strong> is a pack <a href=\"https:\/\/github.com\/tech-leads-club\/agent-skills\" target=\"_blank\" rel=\"noreferrer noopener\">built by a Brazilian engineering community<\/a>, MIT-licensed, on npm at <strong><em>@tech-leads-club\/agent-skills<\/em><\/strong>. The flagship skill is tlc-spec-driven which implements the Specify, Design, Tasks, Execute workflow with adaptive depth.<\/p>\n\n\n\n<p>Other skills in the pack include skill-architect, subagent-creator, create-technical-design-doc, handoff, and diagnose. Install interactively with npx <em>@tech-leads-club\/agent-skills<\/em> or <em>per-skill<\/em> with <em>agent-skills <\/em>install <em>-s tlc-spec-driven.<\/em><\/p>\n\n\n\n<p>The pattern across all three is the same. Do not build from scratch what someone has already shared. Fork the pack, customize the parts that need to fit your context, contribute back if you can.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Read more: <\/strong><a href=\"https:\/\/cheesecakelabs.com\/blog\/spec-driven-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">Spec-Driven Development: How to Capture Intent Before You Burn Tokens<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Subagents are different<\/strong><\/h2>\n\n\n\n<p>This is where most teams trip. The anatomy of a subagent looks identical to a skill on paper: <strong>a markdown file with frontmatter. <\/strong>The behavior is structurally different.<\/p>\n\n\n\n<p><a href=\"https:\/\/code.claude.com\/docs\/en\/sub-agents\" target=\"_blank\" rel=\"noreferrer noopener\">The official Anthropic docs<\/a> state it plainly. &#8220;Each subagent starts with a fresh, isolated context window. It does not see your conversation history, the skills you&#8217;ve already invoked, or the files Claude has already read.&#8221; That sentence is the whole point. A subagent is a separate process with its own context, its own tools, its own model, and its own permissions.<\/p>\n\n\n\n<p>Four practical differences from skills.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Context<\/strong>: A skill injects content into the parent agent&#8217;s window. A subagent runs in a fresh, isolated window of its own. This is the difference that matters most. If two tasks need to run without interfering with each other&#8217;s working memory, they have to be subagents.<\/li>\n\n\n\n<li><strong>Model<\/strong>: A skill inherits the parent&#8217;s model. A subagent specifies its own. You can run an Opus orchestrator coordinating Sonnet implementers and a Haiku formatter. You cannot do that with skills.<\/li>\n\n\n\n<li><strong>Tools<\/strong>: A skill can declare allowed-tools to restrict what tools the parent agent uses while the skill is active. A subagent has its own tool set, granted explicitly at definition time. You can build a subagent that only has read access and grep, for example, a safe &#8220;researcher&#8221; subagent that physically cannot edit files.<\/li>\n\n\n\n<li><strong>Parallelism<\/strong>: Skills are not parallel. They are paragraphs in the same prompt. Subagents are parallel by default. The parent agent can spawn five subagents in a single tool call and they run concurrently.<\/li>\n<\/ul>\n\n\n\n<p>The rule of thumb I use is mechanical: if the same instruction will be reused across many tasks and does not need its own context, write a skill; if the work needs its own isolated window, its own model, or its own tool restrictions, spawn a subagent. Skills are how-to. Subagents are who-does-it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The orchestrator and specialists pattern<\/strong><\/h2>\n\n\n\n<p>This is the architectural pattern that makes era-three coding actually scale, and it is the reason getting the skills-vs-subagents distinction right matters.<\/p>\n\n\n\n<p>The shape is one orchestrator agent, typically running on a stronger model (Opus 4.7 in the May 2026 lineup), that coordinates several specialist subagents running in parallel on a faster, cheaper model (Sonnet 4.6).<\/p>\n\n\n\n<p>A typical feature might have a backend specialist, a frontend specialist, an infra specialist, and a product manager specialist, each working in its own context, each producing its own output. Downstream of the specialists, a reviewer subagent reads the combined diffs. The human gates after the reviewer.<\/p>\n\n\n\n<p>The reason this works is the same reason a real software team works. Each specialist has clean context. Nobody&#8217;s working memory is polluted by what another specialist is doing. The orchestrator owns the coordination and the contract between the pieces. The reviewer owns the integration check.<\/p>\n\n\n\n<p>Boris Cherny at Anthropic, in <strong>Mastering Claude Code in 30 Minutes<\/strong>, describes shipping 20 to 30 pull requests a day this way. Five parallel Claude instances, each running in a separate terminal tab with its own checkout, each started in <a href=\"https:\/\/cheesecakelabs.com\/blog\/plan-mode-claude-code\/\" type=\"post\" id=\"13797\" target=\"_blank\" rel=\"noreferrer noopener\">plan mode<\/a> so the plan can be reviewed before the implementation goes wide. That routine is not possible if your &#8220;agents&#8221; are skills sharing one context window. It requires real subagents in real worktrees.<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"810\" height=\"461\" src=\"https:\/\/www.youtube.com\/embed\/6eBSHbLKuN0\" title=\"Mastering Claude Code in 30 minutes\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Worktrees. The unsexy enabler.<\/strong><\/h2>\n\n\n\n<p>Worktrees deserve their own paragraph because they are the mechanic that makes parallel subagents safe.<\/p>\n\n\n\n<p>Git worktrees let you have multiple working directories on different branches of the same repository, all without copying the repo. Claude Code <a href=\"https:\/\/code.claude.com\/docs\/en\/worktrees\" target=\"_blank\" rel=\"noreferrer noopener\">supports them natively<\/a> through the <strong>&#8211;worktree<\/strong> (or -w) flag. claude <em><strong>&#8211;worktree feature-x creates a new worktree at .claude\/worktrees\/feature-x\/<\/strong><\/em> on a new branch worktree-feature-x and starts a session inside it. The session is isolated from your main checkout. Another session running with <strong><em>&#8211;worktree feature-y<\/em><\/strong> does not interfere.<\/p>\n\n\n\n<p>Why does this matter. Because parallel subagents need somewhere to safely write files. Two subagents editing the same working directory at the same time is a recipe for merge hell and file-stomping. Two subagents each working in their own worktree, on their own branch, with their own ignored files (.worktreeinclude controls what gets symlinked back), is a clean separation that lets the orchestrator coordinate the merge upstream.<\/p>\n\n\n\n<p>If you are running anything more than a single agent at a time, worktrees are not optional. They are how you avoid the parallel-write disaster that ends a lot of teams&#8217; experiments with multi-agent coding.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to configurate your agents<\/strong><\/h2>\n\n\n\n<p>Four moves, in order.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Audit your existing &#8220;agents.&#8221;<\/strong> For each one, ask: does this need its own context, its own model, its own tool restrictions, or to run in parallel with another? If no to all four, it is a skill. Most of what teams have built as agents turn out to be skills mislabeled. Renaming and reorganizing is usually a one-day task and clarifies the architecture immediately.<\/li>\n\n\n\n<li><strong>Install a community pack.<\/strong> Pick one: Superpowers, GStack, or Tech Leads Club agent-skills. Use it for a week as-is. The point is to learn the shape of a well-built skill before you try to write your own. Forking what others built also means you do not waste a sprint reinventing brainstorm, debug, or TDD primitives that already exist.<\/li>\n\n\n\n<li><strong>Stand up one orchestrator with two specialists on a real feature.<\/strong> One backend specialist, one frontend specialist, both as subagents, each in its own worktree, coordinated by a parent orchestrator. Sonnet 4.6 for the specialists, Opus 4.7 for the orchestrator. Pick a feature small enough to ship in a day. The point is not the feature. The point is your team&#8217;s first real run at the pattern.<\/li>\n\n\n\n<li><strong>Commit your skills to the repo.<\/strong> Every skill the team writes goes in <em><strong>.claude\/skills\/<\/strong><\/em> (or the equivalent for your tool) and gets versioned like code. Pull requests review skills the way they review tests. Knowledge that lives in skills is knowledge that survives turnover.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>The pattern that wins in 2026 is not buying everyone a Claude Code license \u2014 it is building the right primitives so engineers can ship in parallel. Skills are the recipes, subagents are the workers, the orchestrator coordinates, and worktrees keep the parallelism safe. <strong>Each primitive does one job. Most teams have not split them apart yet.<\/strong><\/p>\n\n\n\n<p>That separation is what the next year of architecture work is going to be about. The teams that figure it out first will ship at five to ten times the rate of the teams still running one agent at a time in a single context window. Not because their model is better. Because their primitives are.<\/p>\n\n\n\n<p><strong>This is the work we do at Cheesecake Labs every day.<\/strong> We help engineering teams move from &#8220;we use Claude Code&#8221; to &#8220;we have an agentic system&#8221;: versioned skills, named subagents, orchestrator patterns, worktrees, the whole stack.<\/p>\n\n\n\n<p>If your team is running agents but cannot figure out why parallelism is not working, <a href=\"https:\/\/cheesecakelabs.com\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">reach out<\/a>. The diagnosis is usually one of the four primitives being conflated with another, and the fix is faster than the conversation about whether it is worth doing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cheesecakelabs.com\/services\/\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" width=\"1200\" height=\"409\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-1200x409.jpg\" alt=\"\" class=\"wp-image-13491\" srcset=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-1200x409.jpg 1200w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-600x205.jpg 600w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-768x262.jpg 768w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-1536x524.jpg 1536w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-760x259.jpg 760w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl.jpg 1920w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>I had a conversation with a tech lead at a client last quarter that crystallized why this article needed to exist. They had spent three weeks building what they called &#8220;their agent fleet,&#8221; six custom agents for different parts of their codebase, with bespoke prompts, careful naming, the works. We sat down to look at [&hellip;]<\/p>\n","protected":false},"author":92,"featured_media":13831,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1288,432],"tags":[1399,1395,1287,1398],"class_list":["post-13825","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence","category-engineering","tag-agents","tag-ai-agent","tag-artificial-intelligence","tag-skills"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse<\/title>\n<meta name=\"description\" content=\"Skills and subagents are not the same primitive. Knowing the difference is what turns &quot;I have agents&quot; into &quot;I have an agentic system.&quot;\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse\" \/>\n<meta property=\"og:description\" content=\"Skills and subagents are not the same primitive. Knowing the difference is what turns &quot;I have agents&quot; into &quot;I have an agentic system.&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/\" \/>\n<meta property=\"og:site_name\" content=\"Cheesecake Labs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/cheesecakelabs\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-27T14:51:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-27T14:51:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"689\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Cheesecake Labs\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:site\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/\"},\"author\":{\"name\":\"Douglas da Silva\"},\"headline\":\"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse\",\"datePublished\":\"2026-05-27T14:51:24+00:00\",\"dateModified\":\"2026-05-27T14:51:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/\"},\"wordCount\":2269,\"publisher\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg\",\"keywords\":[\"agents\",\"AI agent\",\"artificial intelligence\",\"skills\"],\"articleSection\":[\"Artificial Intelligence\",\"Engineering\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/\",\"name\":\"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg\",\"datePublished\":\"2026-05-27T14:51:24+00:00\",\"dateModified\":\"2026-05-27T14:51:26+00:00\",\"description\":\"Skills and subagents are not the same primitive. Knowing the difference is what turns \\\"I have agents\\\" into \\\"I have an agentic system.\\\"\",\"breadcrumb\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg\",\"width\":1536,\"height\":689,\"caption\":\"skills and subagents cover | | Cheesecake Labs\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cheesecakelabs.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#website\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/\",\"name\":\"Cheesecake Labs\",\"description\":\"Nearshore outsourcing company for Web and Mobile design and engineering services, and staff augmentation for startups and enterprises..\",\"publisher\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cheesecakelabs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#organization\",\"name\":\"Cheesecake Labs\",\"alternateName\":\"Cheesecake Labs Inc\",\"url\":\"https:\/\/cheesecakelabs.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/cheesecakelabs.com\/#logo\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png\",\"caption\":\"Cheesecake Labs\",\"inLanguage\":\"en\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/cheesecakelabs.com\/#primary-image\",\"url\":\"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp\",\"contentUrl\":\"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp\",\"width\":1920,\"height\":1080,\"caption\":\"Cheesecake Labs \u2014 AI, Data & Blockchain software development services\",\"inLanguage\":\"en\"},\"sameAs\":[\"https:\/\/www.facebook.com\/cheesecakelabs\",\"https:\/\/x.com\/cheesecakelabs\",\"https:\/\/www.instagram.com\/cheesecakelabs\/\",\"https:\/\/www.linkedin.com\/company\/cheesecake-labs\/\",\"https:\/\/www.youtube.com\/channel\/UCdGEQ5AHJcmIlaOaI5fGGVA\",\"https:\/\/clutch.co\/profile\/cheesecake-labs\",\"https:\/\/www.behance.net\/cheesecakelabs\",\"https:\/\/dribbble.com\/cheesecakelabs\",\"https:\/\/www.designrush.com\/agency\/profile\/cheesecake-labs\",\"https:\/\/www.g2.com\/products\/cheesecake-labs\/reviews\"],\"description\":\"Cheesecake Labs is a software development studio that designs and builds custom digital products \u2014 web, mobile, and platforms \u2014 combining product design and high-performance engineering.\",\"foundingDate\":\"2013\"},{\"@type\":\"Person\",\"name\":\"Douglas da Silva\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/06\/douglas-da-silva.jpeg\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/06\/douglas-da-silva.jpeg\",\"caption\":\"Douglas da Silva\"},\"url\":\"https:\/\/cheesecakelabs.com\/blog\/autor\/douglasgimli\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse","description":"Skills and subagents are not the same primitive. Knowing the difference is what turns \"I have agents\" into \"I have an agentic system.\"","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/","og_locale":"en_US","og_type":"article","og_title":"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse","og_description":"Skills and subagents are not the same primitive. Knowing the difference is what turns \"I have agents\" into \"I have an agentic system.\"","og_url":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/","og_site_name":"Cheesecake Labs","article_publisher":"https:\/\/www.facebook.com\/cheesecakelabs","article_published_time":"2026-05-27T14:51:24+00:00","article_modified_time":"2026-05-27T14:51:26+00:00","og_image":[{"width":1536,"height":689,"url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg","type":"image\/jpeg"}],"author":"Cheesecake Labs","twitter_card":"summary_large_image","twitter_creator":"@cheesecakelabs","twitter_site":"@cheesecakelabs","twitter_misc":{"Written by":null,"Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#article","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/"},"author":{"name":"Douglas da Silva"},"headline":"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse","datePublished":"2026-05-27T14:51:24+00:00","dateModified":"2026-05-27T14:51:26+00:00","mainEntityOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/"},"wordCount":2269,"publisher":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#organization"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg","keywords":["agents","AI agent","artificial intelligence","skills"],"articleSection":["Artificial Intelligence","Engineering"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/","url":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/","name":"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg","datePublished":"2026-05-27T14:51:24+00:00","dateModified":"2026-05-27T14:51:26+00:00","description":"Skills and subagents are not the same primitive. Knowing the difference is what turns \"I have agents\" into \"I have an agentic system.\"","breadcrumb":{"@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#primaryimage","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/skills-and-subagents-cover.jpg","width":1536,"height":689,"caption":"skills and subagents cover | | Cheesecake Labs"},{"@type":"BreadcrumbList","@id":"https:\/\/cheesecakelabs.com\/blog\/skills-and-subagents\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cheesecakelabs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Skills, Subagents, and the Orchestrator Pattern: The Layer Most Teams Confuse"}]},{"@type":"WebSite","@id":"https:\/\/cheesecakelabs.com\/blog\/#website","url":"https:\/\/cheesecakelabs.com\/blog\/","name":"Cheesecake Labs","description":"Nearshore outsourcing company for Web and Mobile design and engineering services, and staff augmentation for startups and enterprises..","publisher":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cheesecakelabs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cheesecakelabs.com\/blog\/#organization","name":"Cheesecake Labs","alternateName":"Cheesecake Labs Inc","url":"https:\/\/cheesecakelabs.com\/","logo":{"@type":"ImageObject","@id":"https:\/\/cheesecakelabs.com\/#logo","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png","caption":"Cheesecake Labs","inLanguage":"en"},"image":{"@type":"ImageObject","@id":"https:\/\/cheesecakelabs.com\/#primary-image","url":"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp","contentUrl":"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp","width":1920,"height":1080,"caption":"Cheesecake Labs \u2014 AI, Data & Blockchain software development services","inLanguage":"en"},"sameAs":["https:\/\/www.facebook.com\/cheesecakelabs","https:\/\/x.com\/cheesecakelabs","https:\/\/www.instagram.com\/cheesecakelabs\/","https:\/\/www.linkedin.com\/company\/cheesecake-labs\/","https:\/\/www.youtube.com\/channel\/UCdGEQ5AHJcmIlaOaI5fGGVA","https:\/\/clutch.co\/profile\/cheesecake-labs","https:\/\/www.behance.net\/cheesecakelabs","https:\/\/dribbble.com\/cheesecakelabs","https:\/\/www.designrush.com\/agency\/profile\/cheesecake-labs","https:\/\/www.g2.com\/products\/cheesecake-labs\/reviews"],"description":"Cheesecake Labs is a software development studio that designs and builds custom digital products \u2014 web, mobile, and platforms \u2014 combining product design and high-performance engineering.","foundingDate":"2013"},{"@type":"Person","name":"Douglas da Silva","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheesecakelabs.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/06\/douglas-da-silva.jpeg","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2017\/06\/douglas-da-silva.jpeg","caption":"Douglas da Silva"},"url":"https:\/\/cheesecakelabs.com\/blog\/autor\/douglasgimli\/"}]}},"_links":{"self":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/13825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/users\/92"}],"replies":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/comments?post=13825"}],"version-history":[{"count":2,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/13825\/revisions"}],"predecessor-version":[{"id":13827,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/13825\/revisions\/13827"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media\/13831"}],"wp:attachment":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media?parent=13825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/categories?post=13825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/tags?post=13825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}