Overview
A skill is a markdown file (SKILL.md) with frontmatter metadata and a prompt body. When invoked, the skill's content is injected into the conversation as context, guiding the agent through a specific workflow.
Skills are more structured than rules. While rules provide passive guidance that's always present, skills are actively invoked for specific tasks and can contain multi-step instructions, code templates, and interconnected knowledge graphs.
Skill Discovery
Creor scans for skills in the following locations:
- .creor/skills/*/SKILL.md — project-level skills
- .creor/skill/*/SKILL.md — alternative singular directory name
- ~/.creor/skills/*/SKILL.md — global user skills
- Additional paths from the skills.paths config array
- Remote URLs from the skills.urls config array
Each skill lives in its own directory. The directory name is the skill's identifier, and the SKILL.md file is the entry point.
Creating a Skill
A skill file has two parts: YAML frontmatter with metadata, and a markdown body with the prompt content.
Basic Skill
Frontmatter Fields
| Field | Required | Description |
|---|---|---|
| name | Yes | Unique identifier for the skill. Must match the directory name. |
| description | Yes | One-line description shown in the skill picker and autocomplete. |
Warning
name field in the frontmatter must match the directory name. If the directory is skills/deploy/, the name must be deploy. A mismatch will cause a warning during discovery.Graph Skills
For complex workflows, you can break a skill into multiple interconnected nodes. Each node is a separate .md file in the skill directory, and nodes reference each other using [[wikilink]] syntax.
Directory Layout
Entry Point (SKILL.md)
Node File (postgres.md)
Creor automatically builds an adjacency graph from the wikilinks. When the agent activates a skill, it can traverse the graph to load only the relevant nodes, keeping context focused.
Reserved Directories
The following subdirectories inside a skill folder are skipped during node discovery:
- scripts/ — helper scripts, not skill content
- references/ — reference material, not injected as nodes
- assets/ — images or other assets
Tip
Remote Skills
You can load skills from remote URLs. Creor downloads them and caches them locally. This is useful for sharing skills across teams or organizations.
Remote skill URLs are fetched during config initialization. The downloaded skills follow the same directory structure — each skill must have a SKILL.md entry point.
Note
CREOR_DISABLE_EXTERNAL_SKILLS=true to prevent loading any remote skills. This is useful in air-gapped or security-sensitive environments.Invoking Skills
There are two ways to invoke a skill:
Slash Command
Type /skill-name in the chat input to trigger a skill directly. For example, /deploy invokes the deploy skill. Creor shows autocomplete suggestions as you type.
Natural Language
You can also ask the agent to use a skill naturally: "Use the deploy skill to push this to production." The agent will look up the skill by name and inject its content.
When a skill is invoked, its full content (including graph nodes if applicable) is loaded into the conversation context. The agent then follows the instructions in the skill as it works through the task.
Auto-Activation
Creor can automatically detect when a skill is relevant to the current conversation and inject targeted excerpts into the system prompt. This is controlled by the skill_auto_activation config:
| Field | Default | Description |
|---|---|---|
| enabled | false | Turn on auto-activation |
| threshold | 0.3 | Minimum relevance score (0-1) to activate a skill |
| max_skills | 2 | Maximum skills to inject per message |
| token_budget | 2000 | Maximum tokens across all activated skills |
| recency_window | 8 | Number of recent messages to consider for relevance |
| llm_fallback | false | Use LLM classification when heuristic matching is ambiguous |
Configuration
Additional skill directories and remote sources are configured in the skills section of your creor.json:
Paths can be relative (resolved from the project root), home-relative (starting with ~/), or absolute. Creor scans each path for **/SKILL.md files.
When duplicate skill names are found across directories, the last one discovered wins. Creor logs a warning so you can resolve the conflict.