Skills
Skills are reusable instructions that Kward loads only when they are useful. They are good for workflows such as testing, code review, release checks, writing documentation, or working in a domain with specific rules.
Kward supports the Agent Skills folder format: each skill is a directory with a SKILL.md file. Kward shows the model only each skill's name and description at startup. The full instructions are loaded later, either when the model decides they match the task or when you activate the skill yourself.
When to use a skill
Use a skill when you want specialized guidance that should not be in every prompt.
Good skill examples:
- testing practices for your project
- release checklist steps
- API review rules
- incident response workflow
- documentation style guidance
- domain-specific terminology and examples
Use AGENTS.md instead for repository-wide rules that should apply to almost every task. Use prompt templates when you want to expand a reusable user prompt with arguments.
Create a skill
A minimal skill looks like this:
~/.agents/skills/testing/SKILL.md
---
name: testing
description: Use when adding or changing tests, fixing regressions, or verifying behavior.
---
Prefer focused tests near the changed behavior.
Do not weaken assertions to make tests pass.
Run the smallest relevant test first, then broaden if needed.
The name and description fields are required. The description matters: Kward puts it in the skill catalog so the model can decide when to load the skill.
Skill names should be lowercase letters, numbers, and hyphens, such as testing, code-review, or release-checklist.
Skill locations
User-level skills are available in every project:
~/.kward/skills/<name>/SKILL.md
~/.agents/skills/<name>/SKILL.md
Project-level skills live in the current workspace:
<workspace>/.kward/skills/<name>/SKILL.md
<workspace>/.agents/skills/<name>/SKILL.md
The .agents/skills paths are the cross-client Agent Skills convention. Use them when you want skills to work across compatible agents.
Project skills are skipped by default because repository-provided instructions may be untrusted. If you trust the repository, enable project skills from inside Kward:
/settings
Then choose:
Tools & Search → Trust project skills
Or set it manually:
{
"skills": {
"trust_project": true
}
}
How Kward uses skills
Kward uses progressive loading:
- At startup, Kward lists available skill names and descriptions in the system prompt.
- When a task matches a skill, the model calls
read_skillto loadSKILL.md. - If the skill references supporting files, the model reads only the needed files.
You can also activate a skill explicitly:
/skill testing
or:
/skill:testing
Explicit activation loads the skill instructions into the current conversation without asking the model to infer that the skill is relevant.
Activated skills are preserved during context compaction, so Kward does not silently forget the workflow in a long session.
Add supporting files
A skill can include extra files:
~/.agents/skills/release-checklist/
├── SKILL.md
├── references/
│ └── versioning.md
├── scripts/
│ └── check_changelog.rb
└── assets/
└── release-template.md
Example SKILL.md:
---
name: release-checklist
description: Use when preparing a release, updating versions, or writing changelog entries.
---
Follow the release checklist:
1. Read `references/versioning.md`.
2. Confirm `CHANGELOG.md` has an Unreleased entry.
3. If needed, inspect `assets/release-template.md`.
4. Run `scripts/check_changelog.rb` before proposing the final release notes.
When Kward loads the skill, it lists bundled files under references/, scripts/, and assets/ without reading all of them. The model can then request a specific file with read_skill, using a path relative to the skill directory.
For example, the model can call:
{
"name": "release-checklist",
"path": "references/versioning.md"
}
Paths are constrained to the skill directory. Absolute paths and .. traversal outside the skill are rejected.
Discovery precedence
If multiple skills have the same name, Kward uses the first one in this order:
<workspace>/.kward/skills<workspace>/.agents/skills- Kward config directory
skills(~/.kward/skillsby default, or besideKWARD_CONFIG_PATH) ~/.agents/skills
Shadowed skills are skipped with a warning. Rename one of the skills if you want both to be available.
Optional metadata
Kward understands these optional SKILL.md frontmatter fields:
license: MIT
compatibility: Requires git and Ruby.
metadata:
author: example-team
version: "1.0"
allowed-tools: Bash(git:*) Read
allowed-tools is parsed for compatibility with the Agent Skills format, but Kward does not currently use it to grant extra permissions. Treat skill scripts and instructions as trusted only when you trust their source.
Troubleshooting
If a skill does not appear:
- Check that the file is named exactly
SKILL.md. - Check that
nameanddescriptionare present in frontmatter. - Check that the directory name and skill name are sensible and unique.
- If it is a project skill, make sure project skills are trusted in
/settings. - Look for warnings about skipped, malformed, or shadowed skills.
If a skill activates but cannot read a supporting file, make sure the path is relative to the skill directory, for example:
references/details.md
not:
../other-skill/details.md