Note
Agent Skills is an upcoming feature. This guide describes the planned design and will be updated when the feature is available.
This guide covers how to configure Agent Skills in Lightspeed Core Stack and how to author your own skills.
- Introduction
- Configuration
- Skill Directory Structure
- SKILL.md Format
- Creating a Skill
- How Skills Work at Runtime
- Limitations
- References
Agent Skills allow product teams (e.g., RHEL Lightspeed, Ansible Lightspeed) to extend Lightspeed Core with specialized instructions and domain knowledge. Skills are packaged as portable directories following the Agent Skills open standard.
A skill is a SKILL.md file containing metadata and instructions that the LLM can load on demand. For example, a troubleshooting skill might contain step-by-step diagnostic procedures for a specific product, while a code review skill might contain a checklist and best practices.
Important
Skills are configured by product teams at deployment time. End users of LS app products do not have the ability to add skills, similar to how they cannot add MCP servers.
Skills are configured in lightspeed-stack.yaml by specifying paths to skill directories. Two forms are supported.
Point to a parent directory containing skill subdirectories. Each subdirectory with a SKILL.md file is loaded as a skill.
skills:
paths:
- "/var/skills/"This loads all skills found under /var/skills/:
/var/skills/
├── openshift-troubleshooting/
│ ├── SKILL.md
│ └── references/
│ └── common-errors.md
├── code-review/
│ └── SKILL.md
└── ansible-playbooks/
├── SKILL.md
└── references/
└── module-reference.md
Point directly to specific skill directories for fine-grained control over which skills are loaded.
skills:
paths:
- "/var/skills/openshift-troubleshooting/"
- "/var/skills/code-review/"Tip
Option A is recommended for most deployments. Use Option B when you need to selectively include specific skills from a larger collection.
See examples/lightspeed-stack-skills.yaml for a complete configuration example.
Each skill is a directory containing, at minimum, a SKILL.md file:
skill-name/
├── SKILL.md # Required: metadata + instructions
└── references/ # Optional: additional documentation
├── guide.md
└── troubleshooting.md
SKILL.md(required): Contains YAML frontmatter with metadata and Markdown body with instructions.references/(optional): Contains additional documentation files that the LLM can load on demand when the skill instructions reference them.
Note
Script execution (scripts/ subdirectory) is not supported. Only SKILL.md and references/ files are used at runtime.
The SKILL.md file must contain YAML frontmatter (between --- delimiters) followed by Markdown content.
| Field | Required | Description |
|---|---|---|
name |
Yes | Skill identifier. Max 64 characters. Lowercase letters, numbers, and hyphens only. Must match the parent directory name. |
description |
Yes | What the skill does and when to use it. Max 1024 characters. |
- 1-64 characters
- Lowercase letters (
a-z), numbers (0-9), and hyphens (-) only - Must not start or end with a hyphen
- Must not contain consecutive hyphens (
--) - Must match the parent directory name
Valid names: openshift-troubleshooting, code-review, data-analysis
Invalid names: OpenShift-Troubleshooting (uppercase), -code-review (starts with hyphen), code--review (consecutive hyphens)
The description should include both what the skill does and when to use it. Include specific keywords that help the LLM identify relevant tasks.
# Good: specific about what and when
description: Diagnose and fix common OpenShift deployment issues including pod failures, networking problems, and resource constraints. Use when users report deployment failures or application issues on OpenShift.
# Poor: too vague
description: Helps with OpenShift.The Markdown body after the frontmatter contains the skill instructions. There are no format restrictions. Write whatever helps the LLM perform the task effectively.
Recommended sections:
- Step-by-step instructions
- Examples of inputs and outputs
- Common edge cases and how to handle them
Tip
Keep SKILL.md under 500 lines. Move detailed reference material to files in the references/ subdirectory and reference them from the main instructions.
Follow these steps to create a new skill:
1. Create the skill directory
The directory name must match the name field in SKILL.md.
mkdir -p /var/skills/my-skill2. Create the SKILL.md file
---
name: my-skill
description: A brief description of what this skill does and when to use it.
---
# My Skill
## When to use this skill
Use this skill when:
- Condition A applies
- The user asks about topic B
## Instructions
1. First, do X
2. Then check Y
3. If Z occurs, see [the reference guide](references/guide.md)3. (Optional) Add reference files
mkdir -p /var/skills/my-skill/referencesAdd documentation files that the skill instructions reference:
# references/guide.md
Detailed reference content goes here...4. Add the skill path to configuration
Add the path to your lightspeed-stack.yaml:
skills:
paths:
- "/var/skills/" # If using a directory of skills5. Restart the service
Skills are loaded at startup. Restart Lightspeed Core Stack to pick up new or modified skills.
See examples/skills/ for complete working examples.
Skills use a progressive disclosure pattern with three LLM tools:
list_skills— The LLM calls this to discover available skills. Returns the name and description of each skill.activate_skill— When a task matches a skill's description, the LLM calls this to load the full instructions fromSKILL.md.load_skill_resource— If the skill instructions reference files inreferences/, the LLM calls this to load them on demand.
User question
│
▼
LLM calls list_skills → sees skill catalog (name + description)
│
▼ (if task matches a skill)
LLM calls activate_skill → loads full SKILL.md instructions
│
▼ (if instructions reference a file)
LLM calls load_skill_resource → loads file from references/
│
▼
LLM follows skill instructions to answer
The system prompt contains behavioral instructions telling the LLM how to use these tools. When no skills are configured, the tools and instructions are omitted entirely.
Note
Skills are tracked per conversation. If a skill is already loaded in a conversation, re-activating it returns a note instead of re-injecting the content.
- No script execution: The
scripts/subdirectory from the agentskills.io spec is not supported. Skills provide instructions only; they do not execute code. - Read-only: Skills are loaded from the filesystem at startup and are read-only at runtime.
- No remote loading: Skills must be present on the local filesystem. Loading from URLs or registries is not supported.
- Duplicate names: Skill names must be unique across all configured paths. Duplicate names cause a startup error.
- Agent Skills Specification — the open standard for skill format
- Agent Skills Implementation Guide — client implementation guidance
- Feature Design Document — internal design spec for the Lightspeed Core implementation
- Example Skills — working example skills
- Example Configuration — example
lightspeed-stack.yamlwith skills configured