Skills are the primary mechanism for controlling what the AI knows about your task. Every interaction with the AI is shaped by the context it receives — too little information and it fails, too much unrelated noise and it loses focus on what matters. Skills solve this by loading only the relevant knowledge for each task.
Context Utilization
AI models have a limited context window — a fixed amount of text they can process at once. Everything you want the AI to know about your task must fit within this limit. This makes context management the single most important factor in getting good results.
Two opposing problems make this difficult:
- Too little context — If the AI doesn’t have enough information about your project, conventions, and goals, it will make wrong assumptions and produce incorrect output.
- Too much context — If you stuff unrelated information into the context, the AI’s attention is spread thin across too many topics. It stops paying enough attention to the parts that actually matter, leading to careless mistakes.
The goal is to load only the information that’s relevant to the current task — nothing more, nothing less. This is what skills are designed to do.
CLAUDE.md — The Default Context
By default, a file called CLAUDE.md is always loaded into the context at the beginning of every chat. This file typically contains general information about your project — what it is, how it’s structured, and any conventions the AI should follow regardless of the task.
CLAUDE.md works well for universal rules that apply to everything. But as your project grows and you work on increasingly diverse tasks — website editing, database operations, deployment, analytics — putting all of that into CLAUDE.md creates exactly the “too much context” problem. The AI wastes attention reading about deployment scripts when you’re asking it to edit a page.
What Are Skills?
Skills are a dynamic replacement for the static CLAUDE.md approach. Instead of one monolithic file, you create a collection of specialized skills — each one focused on a specific type of task. When you start a chat, you load only the skill that matches what you’re about to do.
A skill is not a single markdown file — it’s a folder containing:
SKILL.md— The main file, loaded into the AI’s context when the skill is activated- Additional documentation files — Reference docs, examples, templates
- Scripts — Python or other executable files for automating skill-specific tasks
- Samples — Example inputs, outputs, and test data
This folder structure organizes everything related to a task type in one place. Documentation tells the AI what to do. Scripts give it tools to do it. Samples show it what good output looks like.
Separate Repository
Although skills are located inside your project folder at .claude/skills/{skill-name}/, they are stored in a separate Git repository that you manage independently from your project. In the Git panel on the right side of the chat, you’ll see two tabs — Project and Skills — each managing its own repository with its own commit history, push, and pull.
Keeping skills in a separate repo is intentional. If skills were part of the project, they would be much harder to manage and reuse between projects. When all skills live in one independent repo, you get several practical benefits:
- Cross-project reuse — Creating a new skill for one project can be as simple as asking the AI: “take a look at project A’s skill and design a similar skill for our project.”
- Single point of improvement — When you figure out a better way to organize or phrase something, you update it in one repo and all projects benefit on the next pull.
- Independent lifecycle — Skills evolve at their own pace, separate from your project’s commit history. A skill update doesn’t create noise in your project’s changelog.
Scripts included in skill folders are also shared this way — write a Python script once, and it’s available in every project that pulls from the same skills repo. No code duplication, no syncing between repositories.
Iterative Improvement
The practical way to improve skills is not to edit them manually — it’s to ask the AI to do it. When the AI makes a mistake, tell it: “fix it, then add a rule into the skill to avoid that in the future.” The AI applies the fix and updates the skill in the same session.
The improvement curve is steep at the beginning:
- Out of the box — The AI works with no project-specific context at all. Results are generic and often wrong.
- 20–30 improvements — Typically reaches around 85% accuracy for most tasks. This is where most of the low-hanging fruit gets picked.
- 100+ improvements — Can approach near-flawless performance, even for tasks that are hard to formalize with strict rules.
The most important rule when having the AI update skills: keep edits small and skill files short. Each update should change only what’s necessary — a few lines, not a rewrite. Models tend to add a lot of extra information, explanations, and documentation to every rule, which bloats the skill and hurts context utilization. You need to explicitly instruct them to keep changes minimal and avoid adding unnecessary content.
Loading a Skill
The AI cannot reliably choose which skill to load on its own — at least not yet. To make sure the right skill gets loaded, Xedant Code provides a manual skill switch.
Here’s how it works:
- New chat — When you select a skill before sending your first message, the system automatically prepends
start with loading {skill name} skillto your message. This tells the AI which skill to activate. - Mid-chat switch — If you select a different skill during an ongoing conversation, the system adds
load {skill name} skillto your next message. This switches the context without losing the conversation history.
Select a skill using the skill selector in the chat input area before typing your message. The selected skill’s name and color are displayed there.
Managing Skills
Open the Skills dialog to browse, edit, create, and organize your skills. The dialog has two panels: a list of all skills on the left and an editor for the selected skill on the right.
Skills can be enabled or disabled individually. Disabled skills are hidden from the skill selector but remain in your collection for later use. Each skill also has a customizable color for visual identification.
Skill settings — which are enabled, their colors — are stored in .claude/skills.yml and synced across sessions. The skill files themselves live in .claude/skills/{skill-name}/ within your project.
Skills Editor
The editor in the right panel of the Skills dialog shows all files in the selected skill folder as tabs. The first tab is always SKILL.md — the main instruction file that gets loaded into the AI’s context. Additional tabs show any other files in the skill folder.
Editor features:
- Tabbed interface — Navigate between all files in the skill folder
- Syntax highlighting — Code formatting for scripts and configuration files
- Auto-save — Changes are saved automatically as you work
- Git integration — Commit skill changes directly from the editor
Changes to skills are tracked by their own Git repository — separate from the project. In the Git panel, switch to the Skills tab to see skill-specific commit history, push, and pull independently from your project.
The editor can also run scripts directly from skill folders. This makes it convenient to manage infrastructure — deployment, database operations, build processes — through skills. It’s also safe: project-specific variables like auth credentials and connection strings are stored in the project, not in the skill. If you accidentally run a management script from the wrong project, it fails fast without causing any damage.
That said, you should get used to not editing skill files or scripts manually. Instead, train yourself and your models — using a skills management skill like demo.skills — to create and update skills for you. The AI understands the structure and conventions better than you might after a few sessions, and keeping humans out of the editing loop prevents inconsistencies from creeping in.
← Previous: Settings
Next: Environments →