{"id":13691,"date":"2026-04-29T15:41:31","date_gmt":"2026-04-29T15:41:31","guid":{"rendered":"https:\/\/cheesecakelabs.com\/blog\/"},"modified":"2026-04-29T15:42:08","modified_gmt":"2026-04-29T15:42:08","slug":"agent-skills-for-workflows-into-rules-file","status":"publish","type":"post","link":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/","title":{"rendered":"Agent Skills: Stop Stuffing Workflows Into Your Rules File"},"content":{"rendered":"\n<p>This post assumes familiarity with AI coding agents (Cursor, Claude Code, Windsurf, etc.), basic prompt engineering concepts, and rules files (Cursor&#8217;s <mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">.cursor\/rules\/<\/mark> or <mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">Claude Code&#8217;s CLAUDE.md<\/mark>).<\/p>\n\n\n\n<p>If you&#8217;re new to agent-assisted development, start with your tool&#8217;s getting-started docs first. If you haven&#8217;t used rules before, read <a href=\"https:\/\/docs.cursor.com\/context\/rules\" target=\"_blank\" rel=\"noreferrer noopener\">the Cursor rules docs<\/a> or <a href=\"https:\/\/docs.anthropic.com\/en\/docs\/claude-code\/memory\" target=\"_blank\" rel=\"noreferrer noopener\">Claude Code&#8217;s memory docs<\/a> before continuing, understanding rules is essential context for why skills exist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The problem: Rules that become operating manuals<\/strong><\/h2>\n\n\n\n<p>Every team&#8217;s rules file follows the same trajectory. It starts with a few sensible guardrails:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Ask before destructive actions&#8221;<\/li>\n\n\n\n<li>&#8220;Don&#8217;t add new dependencies without approval&#8221;<\/li>\n<\/ul>\n\n\n\n<p>Then someone adds a checklist for billing code. Another person adds migration procedures. A third <strong>contributes API design templates<\/strong>. Six months later, your &#8220;rules&#8221; section is a 5,000-token operating manual that loads on every single agent interaction.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What goes wrong:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The base prompt gets bloated. Every conversation pays the token cost of every workflow, even ones that never fire.<\/li>\n\n\n\n<li>Important policies get buried. &#8220;Never delete production databases&#8221; sits next to &#8220;For billing code, check idempotency keys&#8221;; the agent treats them with equal weight.<\/li>\n\n\n\n<li>Specialized workflows can&#8217;t be reused. That carefully written migration review checklist is locked inside one project&#8217;s rules file.<\/li>\n\n\n\n<li>Maintenance is painful. Changing a single procedure means editing a giant block of text and hoping nothing else breaks.<\/li>\n\n\n\n<li>Debugging gets harder. When the agent misbehaves, tracing the cause through a wall of interleaved concerns is tedious.<\/li>\n<\/ul>\n\n\n\n<p>Rules are meant to be guardrails, short, always-on policies that shape behavior across all tasks. When you overload them with task-specific procedures, you&#8217;re using the wrong tool for the job.<\/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\/react-best-practices-in-projects\/\" target=\"_blank\" rel=\"noreferrer noopener\">React Best Practices: Separation of Concerns &amp; Code Optimization<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What are agent skills?<\/strong><\/h2>\n\n\n\n<p>A skill is a self-contained folder that packages a specific workflow or expertise area:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">my-skill\/\n\n\u251c\u2500\u2500 SKILL.md\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-comment\"># Required: instructions + metadata<\/span>\n\n\u251c\u2500\u2500 scripts\/\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-comment\"># Optional: executable code<\/span>\n\n\u251c\u2500\u2500 references\/ \u00a0 \u00a0 \u00a0 <span class=\"hljs-comment\"># Optional: documentation<\/span>\n\n\u2514\u2500\u2500 assets\/ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-comment\"># Optional: templates, resources<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">SKILL.md<\/mark><\/strong> file is the entry point. Its frontmatter contains a name and description; the body contains the actual instructions.<\/p>\n\n\n\n<p>Here&#8217;s a real example &#8211; a skill that applies Dependency Inversion to a module:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">---<\/span>\n<span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">dependency-inversion<\/span>\n<span class=\"hljs-selector-tag\">description<\/span>:\n  <span class=\"hljs-selector-tag\">Refactor<\/span> <span class=\"hljs-selector-tag\">a<\/span> <span class=\"hljs-selector-tag\">module<\/span> <span class=\"hljs-selector-tag\">to<\/span> <span class=\"hljs-selector-tag\">follow<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">Dependency<\/span> <span class=\"hljs-selector-tag\">Inversion<\/span> <span class=\"hljs-selector-tag\">Principle<\/span> <span class=\"hljs-selector-tag\">by<\/span> <span class=\"hljs-selector-tag\">extracting<\/span>\n  <span class=\"hljs-selector-tag\">interfaces<\/span>, <span class=\"hljs-selector-tag\">inverting<\/span> <span class=\"hljs-selector-tag\">concrete<\/span> <span class=\"hljs-selector-tag\">dependencies<\/span>, <span class=\"hljs-selector-tag\">and<\/span> <span class=\"hljs-selector-tag\">wiring<\/span> <span class=\"hljs-selector-tag\">via<\/span> <span class=\"hljs-selector-tag\">injection<\/span>. <span class=\"hljs-selector-tag\">Use<\/span>\n  <span class=\"hljs-selector-tag\">when<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">user<\/span> <span class=\"hljs-selector-tag\">asks<\/span> <span class=\"hljs-selector-tag\">to<\/span> <span class=\"hljs-selector-tag\">decouple<\/span> <span class=\"hljs-selector-tag\">modules<\/span>, <span class=\"hljs-selector-tag\">invert<\/span> <span class=\"hljs-selector-tag\">dependencies<\/span>, <span class=\"hljs-selector-tag\">extract<\/span> <span class=\"hljs-selector-tag\">an<\/span>\n  <span class=\"hljs-selector-tag\">interface<\/span>, <span class=\"hljs-selector-tag\">apply<\/span> <span class=\"hljs-selector-tag\">SOLID<\/span> <span class=\"hljs-selector-tag\">principles<\/span>, <span class=\"hljs-selector-tag\">or<\/span> <span class=\"hljs-selector-tag\">improve<\/span> <span class=\"hljs-selector-tag\">testability<\/span> <span class=\"hljs-selector-tag\">of<\/span> <span class=\"hljs-selector-tag\">tightly<\/span> <span class=\"hljs-selector-tag\">coupled<\/span>\n  <span class=\"hljs-selector-tag\">code<\/span>.\n<span class=\"hljs-selector-tag\">---<\/span>\n\n<span class=\"hljs-selector-tag\">Decouples<\/span> <span class=\"hljs-selector-tag\">modules<\/span> <span class=\"hljs-selector-tag\">by<\/span> <span class=\"hljs-selector-tag\">replacing<\/span> <span class=\"hljs-selector-tag\">direct<\/span> <span class=\"hljs-selector-tag\">imports<\/span> <span class=\"hljs-selector-tag\">of<\/span> <span class=\"hljs-selector-tag\">concrete<\/span> <span class=\"hljs-selector-tag\">implementations<\/span> <span class=\"hljs-selector-tag\">with<\/span>\n<span class=\"hljs-selector-tag\">injected<\/span> <span class=\"hljs-selector-tag\">abstractions<\/span>, <span class=\"hljs-selector-tag\">improving<\/span> <span class=\"hljs-selector-tag\">testability<\/span> <span class=\"hljs-selector-tag\">and<\/span> <span class=\"hljs-selector-tag\">swappability<\/span>.\n\n## <span class=\"hljs-selector-tag\">Dependency<\/span> <span class=\"hljs-selector-tag\">Inversion<\/span> <span class=\"hljs-selector-tag\">Progress<\/span>:\n\n<span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-attr\">&#91; ]<\/span> <span class=\"hljs-selector-tag\">Step<\/span> 1: <span class=\"hljs-selector-tag\">Identify<\/span> <span class=\"hljs-selector-tag\">concrete<\/span> <span class=\"hljs-selector-tag\">dependencies<\/span> <span class=\"hljs-selector-tag\">in<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">target<\/span> <span class=\"hljs-selector-tag\">module<\/span>\n<span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-attr\">&#91; ]<\/span> <span class=\"hljs-selector-tag\">Step<\/span> 2: <span class=\"hljs-selector-tag\">Extract<\/span> <span class=\"hljs-selector-tag\">an<\/span> <span class=\"hljs-selector-tag\">interface<\/span> (<span class=\"hljs-selector-tag\">port<\/span>) <span class=\"hljs-selector-tag\">for<\/span> <span class=\"hljs-selector-tag\">each<\/span> <span class=\"hljs-selector-tag\">dependency<\/span>\n<span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-attr\">&#91; ]<\/span> <span class=\"hljs-selector-tag\">Step<\/span> 3: <span class=\"hljs-selector-tag\">Update<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">module<\/span> <span class=\"hljs-selector-tag\">to<\/span> <span class=\"hljs-selector-tag\">depend<\/span> <span class=\"hljs-selector-tag\">on<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">interface<\/span>, <span class=\"hljs-selector-tag\">not<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">concrete<\/span>\n<span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-attr\">&#91; ]<\/span> <span class=\"hljs-selector-tag\">Step<\/span> 4: <span class=\"hljs-selector-tag\">Create<\/span> <span class=\"hljs-selector-tag\">an<\/span> <span class=\"hljs-selector-tag\">adapter<\/span> <span class=\"hljs-selector-tag\">implementing<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">interface<\/span> <span class=\"hljs-selector-tag\">for<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">original<\/span> <span class=\"hljs-selector-tag\">concrete<\/span>\n<span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-attr\">&#91; ]<\/span> <span class=\"hljs-selector-tag\">Step<\/span> 5: <span class=\"hljs-selector-tag\">Wire<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">adapter<\/span> <span class=\"hljs-selector-tag\">via<\/span> <span class=\"hljs-selector-tag\">constructor<\/span> <span class=\"hljs-selector-tag\">or<\/span> <span class=\"hljs-selector-tag\">factory<\/span> <span class=\"hljs-selector-tag\">injection<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Skills use progressive disclosure to manage context in three stages:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Discovery. <\/strong>At startup, agents load only the name and description of each available skill. A few tokens per skill and enough to know when one applies.<\/li>\n\n\n\n<li><strong>Activation. <\/strong>When a task matches a skill&#8217;s description, the agent reads the full <mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">SKILL.md<\/mark> into context.<\/li>\n\n\n\n<li><strong>Execution.<\/strong> The agent follows the instructions, loading referenced files or running bundled scripts as needed.<\/li>\n<\/ol>\n\n\n\n<p>A project can have dozens of skills installed. The agent only pays the token cost for the ones it uses in a given conversation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Before and after<\/strong><\/h2>\n\n\n\n<p>A pattern that comes up constantly. Check:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Before, everything lives in rules:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Always ask before risky actions&#8221;<\/li>\n\n\n\n<li>&#8220;Don&#8217;t add new dependencies without approval&#8221;<\/li>\n\n\n\n<li>&#8220;For billing code, inspect idempotency&#8221;<\/li>\n\n\n\n<li>&#8220;For migrations, check rollback paths&#8221;<\/li>\n<\/ul>\n\n\n\n<p>All four statements load on every prompt, every time. The last two are irrelevant unless the developer is actively working on billing or migrations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">After &#8211; keep rules short, move expertise into skills:<\/h3>\n\n\n\n<p><strong>Rules (always loaded):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ask before risky actions<\/li>\n\n\n\n<li>Don&#8217;t add new dependencies without approval<\/li>\n<\/ul>\n\n\n\n<p><strong>Skills (loaded on demand):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>billing-review<\/strong> &#8211; idempotency checks, payment edge cases<\/li>\n\n\n\n<li><strong>migration-review<\/strong> &#8211; rollback paths, data integrity verification<\/li>\n<\/ul>\n\n\n\n<p>The rules stay focused on universal policies. The specialized knowledge activates only when it&#8217;s needed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Real Numbers<\/strong><\/h3>\n\n\n\n<p>One real-world <a href=\"https:\/\/cheesecakelabs.com\/blog\/native-react-native\/\" type=\"post\" id=\"5334\" target=\"_blank\" rel=\"noreferrer noopener\">React project<\/a> restructured from rules-only to rules-plus-skills and measured the token impact on prompt startup:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Configuration<\/strong><\/td><td><strong>Component<\/strong><\/td><td><strong>Tokens<\/strong><\/td><\/tr><tr><td><strong>Before<\/strong><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">overview.md<\/mark> (always-on rule)<\/td><td>1,636<\/td><\/tr><tr><td><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">patterns.md <\/mark>(always-on rule)<\/td><td>3,137<\/td><\/tr><tr><td><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">structure.md<\/mark> (always-on rule)<\/td><td>2,348<\/td><\/tr><tr><td><\/td><td><strong>Total<\/strong><\/td><td><strong>7,121<\/strong><\/td><\/tr><tr><td><strong>After<\/strong><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">project.md<\/mark> (always-on rule)<\/td><td>1,911<\/td><\/tr><tr><td><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">feature-flags<\/mark> (skill frontmatter)<\/td><td>71<\/td><\/tr><tr><td><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">feature-screen-creator<\/mark> (skill frontmatter)<\/td><td>61<\/td><\/tr><tr><td><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">react-component <\/mark>(skill frontmatter)<\/td><td>59<\/td><\/tr><tr><td><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">redux-state-management<\/mark> (skill frontmatter)<\/td><td>67<\/td><\/tr><tr><td><\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">unit-tests<\/mark> (skill frontmatter)<\/td><td>44<\/td><\/tr><tr><td><\/td><td><strong>Total<\/strong><\/td><td><strong>2,213<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>That&#8217;s a reduction of 4,908 tokens at startup &#8211;<strong> 69% less <\/strong>context consumed before the agent even begins working. The full skill instructions still exist and still get used. They don&#8217;t load until the agent needs them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Skills vs rules: When to use which<\/strong><\/h2>\n\n\n\n<p>Skills and rules solve different problems:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Dimension<\/strong><\/td><td><strong>Rules<\/strong><\/td><td><strong>Skills<\/strong><\/td><\/tr><tr><td>Primary purpose<\/td><td>Shape behavior<\/td><td>Teach a workflow<\/td><\/tr><tr><td>Scope<\/td><td>Broad and cross-task<\/td><td>Narrower and task-focused<\/td><\/tr><tr><td>When active<\/td><td>Always on<\/td><td>Activated when relevant<\/td><\/tr><tr><td>Typical content<\/td><td>Policies, priorities, tone, safety<\/td><td>Procedures, examples, references, templates<\/td><\/tr><tr><td>Best use<\/td><td>Guardrails and consistency<\/td><td>Reusable specialized know-how<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Use rules for universal policies that should govern every interaction.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Ask before destructive actions.&#8221;<\/li>\n\n\n\n<li>&#8220;Use conventional commits.&#8221;<\/li>\n\n\n\n<li>&#8220;Prefer composition over inheritance.&#8221;<\/li>\n<\/ul>\n\n\n\n<p>Use skills for task-specific workflows that only matter in certain contexts.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;How to write a Playwright e2e test.&#8221;<\/li>\n\n\n\n<li>&#8220;How to scaffold a new API endpoint.&#8221;<\/li>\n\n\n\n<li>&#8220;How to review billing code for payment edge cases.&#8221;<\/li>\n<\/ul>\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\/machine-learning\/\" target=\"_blank\" rel=\"noreferrer noopener\">Machine Learning Explained: What It Is, How It Works, and Why It Matters for Business<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Where agent skills fit alongside MCPs and subagents<\/strong><\/h2>\n\n\n\n<p>Skills aren&#8217;t the only way to extend agent capabilities. Two other patterns, MCP servers and subagents, solve different problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MCP (Model Context Protocol)<\/h3>\n\n\n\n<p>MCP gives agents a standardized way to connect to external tools, data sources, and applications. It&#8217;s a USB port for agents to access live systems.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Dimension<\/strong><\/td><td><strong>Skills<\/strong><\/td><td><strong>MCPs<\/strong><\/td><\/tr><tr><td>Main role<\/td><td>Teach the agent <em>how<\/em> to work<\/td><td>Let the agent <em>access<\/em> systems<\/td><\/tr><tr><td>Contains<\/td><td>Instructions, workflows, expertise<\/td><td>Reusable connectivity<\/td><\/tr><tr><td>Context usage<\/td><td>Only when skill is loaded<\/td><td>Only when tool is used<\/td><\/tr><tr><td>Example<\/td><td>&#8220;How to review a PR&#8221;<\/td><td>&#8220;GitHub MCP server with PR APIs&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Skills and MCPs complement each other. <\/strong>A skill teaches the agent <em>how<\/em> to use the tools an MCP provides. The skill says &#8220;here&#8217;s the workflow for reviewing a PR.&#8221; The MCP provides the GitHub API access to fetch diffs and post comments.<\/p>\n\n\n\n<p>Worth noting: MCP tool responses consume token limits. Large payloads from MCP calls fill the context window fast, which makes the lean-context argument for skills even stronger.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Subagents<\/h3>\n\n\n\n<p>Subagents are specialized worker instances that handle subtasks independently, often in parallel.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Dimension<\/strong><\/td><td><strong>Skills<\/strong><\/td><td><strong>Subagents<\/strong><\/td><\/tr><tr><td>Main role<\/td><td>Provide expertise or workflow<\/td><td>Provide delegation and parallelism<\/td><\/tr><tr><td>Form<\/td><td>Knowledge\/instruction package<\/td><td>Additional worker instance<\/td><\/tr><tr><td>Solves<\/td><td>&#8220;How should this task be done?&#8221;<\/td><td>&#8220;Who should do this subtask?&#8221;<\/td><\/tr><tr><td>Example<\/td><td>&#8220;Security review checklist&#8221;<\/td><td>&#8220;Spawn a security-review worker and a test-fix worker&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Skills tell an agent <em>what to do<\/em>. Subagents handle <em>who does it<\/em>. A subagent might load a skill to learn how to perform its delegated task.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Choosing the right tool<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Mechanism<\/strong><\/td><td><strong>When to use it<\/strong><\/td><td><strong>Example<\/strong><\/td><\/tr><tr><td><strong>Rules<\/strong><\/td><td>Universal guardrails that must always be active<\/td><td>&#8220;Never delete production databases.&#8221;<\/td><\/tr><tr><td><strong>Skills<\/strong><\/td><td>Reusable task workflows, coding standards, project conventions<\/td><td>&#8220;How to write a Playwright e2e test.&#8221;<\/td><\/tr><tr><td><strong>MCPs<\/strong><\/td><td>Live connections to external APIs, databases, or closed systems<\/td><td>&#8220;Query JIRA for the latest bug reports.&#8221;<\/td><\/tr><tr><td><strong>Subagents<\/strong><\/td><td>Heavy lifting and parallel tasks to save the main agent&#8217;s context window<\/td><td>&#8220;Scan 100 log files for a specific memory leak.&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>These mechanisms layer together. Rules for safety guardrails, skills for team workflows, MCPs for tool access, subagents for parallelizable work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why this matters for teams<\/strong><\/h2>\n\n\n\n<p>Token savings matter. The organizational payoff matters more. Skills turn team knowledge into portable, versioned artifacts that any agent can pick up and execute.<\/p>\n\n\n\n<p>When a senior engineer writes a <strong>security-review skill<\/strong>, every developer on the team gets the same review checklist &#8211; new hire or veteran. The knowledge doesn&#8217;t live in someone&#8217;s head or a Confluence page that nobody reads. It lives where the agent uses it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Sharing skills across teams<\/strong><\/h2>\n\n\n\n<p>Skills are folders. Distribute them with tools developers already have. Agent runtimes that support skills recognize multiple installation scopes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Scope<\/strong><\/td><td><strong>Location<\/strong><\/td><td><strong>Who benefits<\/strong><\/td><td><strong>Example<\/strong><\/td><\/tr><tr><td>Project<\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">.cursor\/skills\/<\/mark> or <mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">.claude\/skills\/<\/mark> in the repo<\/td><td>Everyone on the project<\/td><td>migration-review for a specific database schema<\/td><\/tr><tr><td>User<\/td><td><mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">~\/.cursor\/skills\/<\/mark> or <mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">~\/.claude\/skills\/<\/mark><\/td><td>You, across all projects<\/td><td>technical-blog-writing for your personal workflow<\/td><\/tr><tr><td>Team \/ Org<\/td><td>Shared via Git or a registry<\/td><td>Everyone in the organization<\/td><td>api-design encoding your company&#8217;s API standards<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Project-scoped skills get committed to the repo and travel with it. User-scoped skills are personal &#8211; your preferred code style, your writing workflow.<\/p>\n\n\n\n<p>For team distribution, the simplest approach is a shared Git repo. Point a directory in your project at it via submodule, and updates come in when you pull:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>git submodule add <mark style=\"background-color:rgba(0, 0, 0, 0);color:#7ea86e\" class=\"has-inline-color\">https:\/\/github.com\/your-org\/shared-skills .claude\/skills\/shared<\/mark><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">A practical starting point<\/h3>\n\n\n\n<p>Where to begin:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Audit your rules file. Anything task-specific is a skill candidate.<\/li>\n\n\n\n<li>Start with one high-value skill. Pick the workflow your team repeats most often &#8211; test writing, PR review, service scaffolding.<\/li>\n\n\n\n<li>Put it in the repo. Project-scoped skills require zero infrastructure. Commit the folder, and every team member&#8217;s agent picks it up automatically.<\/li>\n\n\n\n<li>Iterate based on usage. Watch how the agent activates the skill. Refine the description if it triggers too often or not enough. Tighten the instructions when the agent misses steps.<\/li>\n\n\n\n<li>Promote to share. Once a skill proves itself in one project, move it to a shared repository or registry for broader use.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Trade-offs and limitations<\/strong><\/h2>\n\n\n\n<p>Agent skills may have some limitations, as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Discovery depends on description quality. If a skill&#8217;s description doesn&#8217;t match how developers phrase their requests, the agent won&#8217;t activate it. Writing good trigger descriptions takes iteration.<\/li>\n\n\n\n<li>Skills are another thing to maintain. They drift out of date like documentation does. A stale skill that teaches the wrong workflow is worse than no skill at all.<\/li>\n\n\n\n<li>Not every agent runtime supports them yet. Skills as a pattern are gaining traction but aren&#8217;t universally standardized. Check your tool&#8217;s docs for current support.<\/li>\n\n\n\n<li>Overhead for small projects. If your rules file is 500 tokens and covers everything you need, extracting skills adds organizational complexity without meaningful token savings.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>If your rules file is starting to feel messy, you already know. You&#8217;ve been scrolling past sections thinking &#8220;this doesn&#8217;t belong here.&#8221; Trust that instinct. Pull it out into a skill folder. Give it a name and description. See what happens.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Further Reading<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/agentskills.io\/what-are-skills\">Agent Skills Specs<\/a> &#8211; the spec itself<\/li>\n\n\n\n<li><a href=\"https:\/\/resources.anthropic.com\/hubfs\/The-Complete-Guide-to-Building-Skill-for-Claude.pdf?hsLang=en\">The Complete Guide to Building Skills for Claude (PDF)<\/a> &#8211; Anthropic&#8217;s comprehensive guide<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.anthropic.com\/en\/docs\/claude-code\/skills\">Claude Code skills documentation<\/a> &#8211; Claude Code-specific implementation details<\/li>\n\n\n\n<li><a href=\"https:\/\/cursor.com\/docs\/skills\">Cursor skills documentation<\/a> &#8211; IDE-specific implementation details<\/li>\n\n\n\n<li><a href=\"https:\/\/skills.sh\/\">Skills.sh<\/a> &#8211; browse and discover community skills<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/cheesecakelabs.com\/services\/\"><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>This post assumes familiarity with AI coding agents (Cursor, Claude Code, Windsurf, etc.), basic prompt engineering concepts, and rules files (Cursor&#8217;s .cursor\/rules\/ or Claude Code&#8217;s CLAUDE.md). If you&#8217;re new to agent-assisted development, start with your tool&#8217;s getting-started docs first. If you haven&#8217;t used rules before, read the Cursor rules docs or Claude Code&#8217;s memory docs [&hellip;]<\/p>\n","protected":false},"author":83,"featured_media":13694,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[432],"tags":[],"class_list":["post-13691","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Agent Skills: Stop Stuffing Workflows Into Your Rules File<\/title>\n<meta name=\"description\" content=\"A skill is a self-contained folder that packages a specific workflow or expertise area. Check how it works for you and your team!\" \/>\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\/agent-skills-for-workflows-into-rules-file\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Agent Skills: Stop Stuffing Workflows Into Your Rules File\" \/>\n<meta property=\"og:description\" content=\"A skill is a self-contained folder that packages a specific workflow or expertise area. Check how it works for you and your team!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/\" \/>\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-04-29T15:41:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-29T15:42:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.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=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/\"},\"author\":{\"name\":\"Salatiel Lima\"},\"headline\":\"Agent Skills: Stop Stuffing Workflows Into Your Rules File\",\"datePublished\":\"2026-04-29T15:41:31+00:00\",\"dateModified\":\"2026-04-29T15:42:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/\"},\"wordCount\":1681,\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg\",\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/\",\"name\":\"Agent Skills: Stop Stuffing Workflows Into Your Rules File\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg\",\"datePublished\":\"2026-04-29T15:41:31+00:00\",\"dateModified\":\"2026-04-29T15:42:08+00:00\",\"author\":{\"@type\":\"person\",\"name\":\"Salatiel Lima\"},\"description\":\"A skill is a self-contained folder that packages a specific workflow or expertise area. Check how it works for you and your team!\",\"breadcrumb\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg\",\"width\":1536,\"height\":689},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cheesecakelabs.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agent Skills: Stop Stuffing Workflows Into Your Rules File\"}]},{\"@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..\",\"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\":\"Person\",\"name\":\"Salatiel Lima\",\"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\/2026\/04\/salatielqlima.jpg\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/salatielqlima.jpg\",\"caption\":\"Salatiel Lima\"},\"url\":\"https:\/\/cheesecakelabs.com\/blog\/autor\/salatiel-lima\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Agent Skills: Stop Stuffing Workflows Into Your Rules File","description":"A skill is a self-contained folder that packages a specific workflow or expertise area. Check how it works for you and your team!","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\/agent-skills-for-workflows-into-rules-file\/","og_locale":"en_US","og_type":"article","og_title":"Agent Skills: Stop Stuffing Workflows Into Your Rules File","og_description":"A skill is a self-contained folder that packages a specific workflow or expertise area. Check how it works for you and your team!","og_url":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/","og_site_name":"Cheesecake Labs","article_publisher":"https:\/\/www.facebook.com\/cheesecakelabs","article_published_time":"2026-04-29T15:41:31+00:00","article_modified_time":"2026-04-29T15:42:08+00:00","og_image":[{"width":1536,"height":689,"url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.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":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#article","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/"},"author":{"name":"Salatiel Lima"},"headline":"Agent Skills: Stop Stuffing Workflows Into Your Rules File","datePublished":"2026-04-29T15:41:31+00:00","dateModified":"2026-04-29T15:42:08+00:00","mainEntityOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/"},"wordCount":1681,"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg","articleSection":["Engineering"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/","url":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/","name":"Agent Skills: Stop Stuffing Workflows Into Your Rules File","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg","datePublished":"2026-04-29T15:41:31+00:00","dateModified":"2026-04-29T15:42:08+00:00","author":{"@type":"person","name":"Salatiel Lima"},"description":"A skill is a self-contained folder that packages a specific workflow or expertise area. Check how it works for you and your team!","breadcrumb":{"@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#primaryimage","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/agent-skills.jpg","width":1536,"height":689},{"@type":"BreadcrumbList","@id":"https:\/\/cheesecakelabs.com\/blog\/agent-skills-for-workflows-into-rules-file\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cheesecakelabs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Agent Skills: Stop Stuffing Workflows Into Your Rules File"}]},{"@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..","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":"Person","name":"Salatiel Lima","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\/2026\/04\/salatielqlima.jpg","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/04\/salatielqlima.jpg","caption":"Salatiel Lima"},"url":"https:\/\/cheesecakelabs.com\/blog\/autor\/salatiel-lima\/"}]}},"_links":{"self":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/13691","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\/83"}],"replies":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/comments?post=13691"}],"version-history":[{"count":3,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/13691\/revisions"}],"predecessor-version":[{"id":13703,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/posts\/13691\/revisions\/13703"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media\/13694"}],"wp:attachment":[{"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/media?parent=13691"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/categories?post=13691"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/wp-json\/wp\/v2\/tags?post=13691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}