How AI is turning content into a multi-format experience
Cheesecake Labs | Apr 08, 2026
Listen to this article
This post assumes familiarity with AI coding agents (Cursor, Claude Code, Windsurf, etc.), basic prompt engineering concepts, and rules files (Cursor’s .cursor/rules/ or Claude Code’s CLAUDE.md).
If you’re new to agent-assisted development, start with your tool’s getting-started docs first. If you haven’t used rules before, read the Cursor rules docs or Claude Code’s memory docs before continuing, understanding rules is essential context for why skills exist.
Every team’s rules file follows the same trajectory. It starts with a few sensible guardrails:
Then someone adds a checklist for billing code. Another person adds migration procedures. A third contributes API design templates. Six months later, your “rules” section is a 5,000-token operating manual that loads on every single agent interaction.
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’re using the wrong tool for the job.
Read more: React Best Practices: Separation of Concerns & Code Optimization
A skill is a self-contained folder that packages a specific workflow or expertise area:
my-skill/
├── SKILL.md # Required: instructions + metadata
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
└── assets/ # Optional: templates, resourcesCode language: PHP (php)
The SKILL.md file is the entry point. Its frontmatter contains a name and description; the body contains the actual instructions.
Here’s a real example – a skill that applies Dependency Inversion to a module:
---
name: dependency-inversion
description:
Refactor a module to follow the Dependency Inversion Principle by extracting
interfaces, inverting concrete dependencies, and wiring via injection. Use
when the user asks to decouple modules, invert dependencies, extract an
interface, apply SOLID principles, or improve testability of tightly coupled
code.
---
Decouples modules by replacing direct imports of concrete implementations with
injected abstractions, improving testability and swappability.
## Dependency Inversion Progress:
- [ ] Step 1: Identify concrete dependencies in the target module
- [ ] Step 2: Extract an interface (port) for each dependency
- [ ] Step 3: Update the module to depend on the interface, not the concrete
- [ ] Step 4: Create an adapter implementing the interface for the original concrete
- [ ] Step 5: Wire the adapter via constructor or factory injection
Code language: CSS (css)
Skills use progressive disclosure to manage context in three stages:
A project can have dozens of skills installed. The agent only pays the token cost for the ones it uses in a given conversation.
A pattern that comes up constantly. Check:
All four statements load on every prompt, every time. The last two are irrelevant unless the developer is actively working on billing or migrations.
Rules (always loaded):
Skills (loaded on demand):
The rules stay focused on universal policies. The specialized knowledge activates only when it’s needed.
One real-world React project restructured from rules-only to rules-plus-skills and measured the token impact on prompt startup:
| Configuration | Component | Tokens |
| Before | overview.md (always-on rule) | 1,636 |
| patterns.md (always-on rule) | 3,137 | |
| structure.md (always-on rule) | 2,348 | |
| Total | 7,121 | |
| After | project.md (always-on rule) | 1,911 |
| feature-flags (skill frontmatter) | 71 | |
| feature-screen-creator (skill frontmatter) | 61 | |
| react-component (skill frontmatter) | 59 | |
| redux-state-management (skill frontmatter) | 67 | |
| unit-tests (skill frontmatter) | 44 | |
| Total | 2,213 |
That’s a reduction of 4,908 tokens at startup – 69% less context consumed before the agent even begins working. The full skill instructions still exist and still get used. They don’t load until the agent needs them.
Skills and rules solve different problems:
| Dimension | Rules | Skills |
| Primary purpose | Shape behavior | Teach a workflow |
| Scope | Broad and cross-task | Narrower and task-focused |
| When active | Always on | Activated when relevant |
| Typical content | Policies, priorities, tone, safety | Procedures, examples, references, templates |
| Best use | Guardrails and consistency | Reusable specialized know-how |
Use rules for universal policies that should govern every interaction.
Use skills for task-specific workflows that only matter in certain contexts.
Read more: Machine Learning Explained: What It Is, How It Works, and Why It Matters for Business
Skills aren’t the only way to extend agent capabilities. Two other patterns, MCP servers and subagents, solve different problems.
MCP gives agents a standardized way to connect to external tools, data sources, and applications. It’s a USB port for agents to access live systems.
| Dimension | Skills | MCPs |
| Main role | Teach the agent how to work | Let the agent access systems |
| Contains | Instructions, workflows, expertise | Reusable connectivity |
| Context usage | Only when skill is loaded | Only when tool is used |
| Example | “How to review a PR” | “GitHub MCP server with PR APIs” |
Skills and MCPs complement each other. A skill teaches the agent how to use the tools an MCP provides. The skill says “here’s the workflow for reviewing a PR.” The MCP provides the GitHub API access to fetch diffs and post comments.
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.
Subagents are specialized worker instances that handle subtasks independently, often in parallel.
| Dimension | Skills | Subagents |
| Main role | Provide expertise or workflow | Provide delegation and parallelism |
| Form | Knowledge/instruction package | Additional worker instance |
| Solves | “How should this task be done?” | “Who should do this subtask?” |
| Example | “Security review checklist” | “Spawn a security-review worker and a test-fix worker” |
Skills tell an agent what to do. Subagents handle who does it. A subagent might load a skill to learn how to perform its delegated task.
| Mechanism | When to use it | Example |
| Rules | Universal guardrails that must always be active | “Never delete production databases.” |
| Skills | Reusable task workflows, coding standards, project conventions | “How to write a Playwright e2e test.” |
| MCPs | Live connections to external APIs, databases, or closed systems | “Query JIRA for the latest bug reports.” |
| Subagents | Heavy lifting and parallel tasks to save the main agent’s context window | “Scan 100 log files for a specific memory leak.” |
These mechanisms layer together. Rules for safety guardrails, skills for team workflows, MCPs for tool access, subagents for parallelizable work.
Token savings matter. The organizational payoff matters more. Skills turn team knowledge into portable, versioned artifacts that any agent can pick up and execute.
When a senior engineer writes a security-review skill, every developer on the team gets the same review checklist – new hire or veteran. The knowledge doesn’t live in someone’s head or a Confluence page that nobody reads. It lives where the agent uses it.
Skills are folders. Distribute them with tools developers already have. Agent runtimes that support skills recognize multiple installation scopes:
| Scope | Location | Who benefits | Example |
| Project | .cursor/skills/ or .claude/skills/ in the repo | Everyone on the project | migration-review for a specific database schema |
| User | ~/.cursor/skills/ or ~/.claude/skills/ | You, across all projects | technical-blog-writing for your personal workflow |
| Team / Org | Shared via Git or a registry | Everyone in the organization | api-design encoding your company’s API standards |
Project-scoped skills get committed to the repo and travel with it. User-scoped skills are personal – your preferred code style, your writing workflow.
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:
git submodule add https://github.com/your-org/shared-skills .claude/skills/shared
Where to begin:
Agent skills may have some limitations, as:
If your rules file is starting to feel messy, you already know. You’ve been scrolling past sections thinking “this doesn’t belong here.” Trust that instinct. Pull it out into a skill folder. Give it a name and description. See what happens.

Rules files tend to grow into bloated operating manuals where task-specific procedures mix with universal policies. This bloats the base prompt with token costs on every interaction, buries important policies, prevents reuse of specialized workflows, makes maintenance painful, and complicates debugging. Skills separate task-specific workflows from always-on guardrails.
A skill is a self-contained folder that packages a specific workflow or expertise area. It contains a required SKILL.md file with instructions and metadata (name and description in frontmatter), plus optional folders for scripts (executable code), references (documentation), and assets (templates, resources).
Skills use three stages: Discovery, where agents load only the name and description of each skill at startup; Activation, where the full SKILL.md is read into context when a task matches the description; and Execution, where the agent follows the instructions and loads referenced files or runs bundled scripts as needed.
Use rules for universal policies that should govern every interaction (always on, broad scope, guardrails, tone, safety), such as 'Ask before destructive actions.' Use skills for task-specific workflows activated only when relevant (procedures, examples, templates), such as 'How to write a Playwright e2e test.'
Skills teach the agent how to work by providing instructions and expertise. MCPs (Model Context Protocol) let agents access external systems, tools, and data sources via standardized connectivity. Subagents are specialized worker instances that handle subtasks independently or in parallel. They layer together: rules for safety, skills for workflows, MCPs for tool access, and subagents for parallelizable work.