Skip to content

Skills

Skills are directories containing a SKILL.md file that teach the agent how to perform specialized tasks. Kodik discovers skills automatically on startup and makes them available to the agent. The agent decides on its own when a skill is relevant and applies it. Users can also invoke skills explicitly via slash commands.

Each skill is a folder containing a SKILL.md file. Skill metadata is declared in YAML frontmatter:

---
name: my-skill
description: What this skill does and when to use it.
user-invocable: true
disable-model-invocation: false
---
## Overview
Describe the skill's purpose. Write it as instructions the agent should follow.
## Guidelines
- Prefer X
- Always do Y
- Avoid Z
FieldRequiredDescription
nameYesUnique skill identifier (lowercase, hyphens for spaces, max 64 characters). Used for skill lookup and as the slash command name.
descriptionYesDescription of what the skill does and when to use it. The agent uses this to decide relevance (max 1024 characters).
user-invocableNoWhether the skill appears as a slash command in the / menu. Defaults to true. Set to false to hide the skill from the menu while still allowing the agent to load it automatically.
disable-model-invocationNoPrevents the agent from loading the skill automatically. Defaults to false. Set to true to restrict the skill to explicit slash command invocation only.

Kodik discovers skills from the following locations (listed in descending priority order; when names collide, the higher-priority source wins):

LocationScopePriority
.kodik/skills/ in repositoryProject4
.agents/skills/ in repositoryProject (universal)2
~/Documents/Kodik/Skills/User (global)1
~/.agents/skills/User (universal)0
Plugin skillsPlugin0

Skills from plugins are namespaced with the plugin id (<plugin-id>:<name>).

On each request the agent receives a list of available skills (name + description). It decides which skills are relevant and loads their content. If a skill has disable-model-invocation: true, the agent never loads it automatically — it is only available via explicit user invocation.

If a skill has user-invocable: true (the default), it can be invoked by typing /skill-name in the chat input. All available user-invocable skills appear in the / menu. See the slash commands overview for details.

To create a skill through the agent, type /create-skill (or /createskill) in the chat input. The command asks for a name and description, then creates a directory with a SKILL.md file in the appropriate location.

The skill structure is minimal — a single folder with a SKILL.md is all that is needed:

.kodik/skills/
└── deploy-app/
└── SKILL.md

You can optionally add supporting files:

.kodik/skills/
└── deploy-app/
├── SKILL.md
├── scripts/
│ └── deploy.sh
└── references/
└── REFERENCE.md
---
name: webapp-testing
description: Guide to testing web applications with Playwright. Use when writing or running browser-based tests.
---
# Web Application Testing with Playwright
## Creating Tests
1. Identify the user flow to test
2. Create a test file in the `tests/` directory
3. Use Playwright locators (prefer role-based selectors)
4. Add assertions to verify expected behavior
## Running Tests
\`\`\`bash
npx playwright test
npx playwright test --debug
\`\`\`