Skills

Skills are reusable prompt workflows that you can invoke by name. They let you codify recurring tasks — deployments, code reviews, migration patterns — into versioned, shareable instructions.

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.

1
2
3
4
5
6
7
8
9
10
.creor/
skills/
deploy/
SKILL.md # skill entry point
code-review/
SKILL.md
migration/
SKILL.md
postgres.md # graph node (see Graph Skills)
redis.md # graph node

Creating a Skill

A skill file has two parts: YAML frontmatter with metadata, and a markdown body with the prompt content.

Basic Skill

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
---
name: deploy
description: Deploy the application to production
---
 
# Deploy to Production
 
Follow these steps to deploy:
 
1. Run the test suite: `npm test`
2. Build the application: `npm run build`
3. Check for TypeScript errors: `npx tsc --noEmit`
4. If all checks pass, run: `npm run deploy`
 
## Pre-deploy Checklist
- Verify all environment variables are set in .env.production
- Confirm the database migrations are up to date
- Check that no console.log statements remain in src/
 
## Rollback
If the deploy fails, run `npm run rollback` to revert to the previous version.

Frontmatter Fields

FieldRequiredDescription
nameYesUnique identifier for the skill. Must match the directory name.
descriptionYesOne-line description shown in the skill picker and autocomplete.

Warning

The 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

1
2
3
4
5
.creor/skills/migration/
SKILL.md # entry point — references [[postgres]] and [[redis]]
postgres.md # node: PostgreSQL migration steps
redis.md # node: Redis cache migration steps
rollback.md # node: referenced by postgres and redis

Entry Point (SKILL.md)

1
2
3
4
5
6
7
8
9
10
11
12
---
name: migration
description: Database migration workflow
---
 
# Database Migration
 
This skill guides you through migrating databases.
 
Choose the relevant path:
- For PostgreSQL migrations, see [[postgres]]
- For Redis cache migrations, see [[redis]]

Node File (postgres.md)

1
2
3
4
5
6
7
8
9
10
11
12
13
---
name: PostgreSQL Migration
description: Steps for PostgreSQL schema migrations
---
 
# PostgreSQL Migration
 
1. Create a new migration: `prisma migrate dev --name descriptive_name`
2. Review the generated SQL in `prisma/migrations/`
3. Test the migration on a local database
4. Apply to staging: `prisma migrate deploy`
 
If anything goes wrong, follow the [[rollback]] procedure.

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

Keep individual nodes under ~3,000 tokens (~12,000 characters). Creor will log a warning for large nodes. If a node is too big, split it into smaller interconnected pieces.

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.

1
2
3
4
5
6
7
8
{
"skills": {
"urls": [
"https://example.com/.well-known/skills/",
"https://github.com/your-org/shared-skills/archive/main.tar.gz"
]
}
}

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

Set 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:

1
2
3
4
5
6
7
8
9
10
{
"skill_auto_activation": {
"enabled": true,
"threshold": 0.3,
"max_skills": 2,
"token_budget": 2000,
"recency_window": 8,
"llm_fallback": false
}
}
FieldDefaultDescription
enabledfalseTurn on auto-activation
threshold0.3Minimum relevance score (0-1) to activate a skill
max_skills2Maximum skills to inject per message
token_budget2000Maximum tokens across all activated skills
recency_window8Number of recent messages to consider for relevance
llm_fallbackfalseUse LLM classification when heuristic matching is ambiguous

Configuration

Additional skill directories and remote sources are configured in the skills section of your creor.json:

1
2
3
4
5
6
7
8
9
10
11
12
{
"skills": {
"paths": [
"./custom-skills",
"~/shared-team-skills",
"/opt/org-skills"
],
"urls": [
"https://skills.example.com/.well-known/skills/"
]
}
}

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.