The .skill.md format
A.skill.md file tells Qodex how to run a specialized agent workflow.
It has two parts:
- YAML frontmatter for metadata and runtime settings.
- A markdown body that becomes the skill’s system prompt.
Where skills live
Built-in skills live in the platformskills/ directory. Project skills live in the skills directory configured for that project.
At startup, Qodex loads built-in skills first and project skills second. If a project skill has the same id as a built-in skill, the project skill replaces it for that project.
Use the filename pattern <id>.skill.md so the file is easy to find. The runtime uses the id in frontmatter as the actual key.
Core fields
| Field | Type | What it controls |
|---|---|---|
id | string | Stable identifier the coordinator calls, such as api, ui, or security. Use lowercase kebab-case. |
name | string | Human-readable label shown in the product. Defaults to id if omitted. |
version | string | Skill prompt version. Bump it when the behavior changes meaningfully. |
description | string | Routing signal. Qodex uses this to decide when the skill fits the user’s request. |
Tool access
Skills can limit which tools the agent may call.| Field | Type | What it does |
|---|---|---|
tools.categories | string[] | Allows broad groups such as browser, api, security, memory, scenario, reporting, or orchestration. |
tools.include | string[] | Allows only the exact tool names listed. Use this for tightly scoped skills. |
tools.exclude | string[] | Removes specific tools from the otherwise allowed set. |
include when safety matters. If the skill only needs API calls, scenario saving, and finding reports, give it only those tools.
Runtime behavior
| Field | Type | What it does |
|---|---|---|
thinking | string | Reasoning effort hint: low, medium, or high. |
maxIterations | number | Maximum tool-call iterations for one skill run. |
planFirst | boolean | Forces the agent to outline the workflow before acting. |
verifyFindings | boolean | Requires findings to be verified before they are reported. |
model | string | Optional model override. Leave unset unless the skill truly needs it. |
Sub-agents
Usedecomposition when a skill should split work into smaller jobs.
| Field | What it does |
|---|---|
enabled | Allows the coordinator to spawn sub-agents for this skill. |
maxSubAgents | Caps the number of sub-agents the skill may run. |
subSkills | Lists which skill ids the parent may spawn. |
api and ui delegate scenario authoring without losing the main coordinator thread.
MCP requirements
Some skills need external capabilities.required for servers the skill cannot run without, such as browser control for UI work. Use optional for useful helpers that the skill can skip if missing.
Severity rubrics
Skills that create findings should define a severity rubric.Prompt body
Everything after the closing--- is the skill prompt.
Write it like instructions to a specialist:
- Explain the job in one sentence.
- Give the workflow in phases.
- State what counts as success.
- State what must never happen.
- Define when to stop and ask for clarification.
- Define what evidence is required before filing a finding.
Minimal example
Override behavior
Project skills replace built-in skills byid. They do not inherit omitted fields from the built-in skill.
If you override security, copy the shipped security.skill.md first, then edit it. Otherwise you may accidentally remove important tool rules, severity guidance, or verification requirements.
Next steps
Author a skill
Build a skill from a blank file.
Built-in skills
Use shipped skills as examples.
Distribute a skill
Share a skill with your team.
Skills overview
Understand where skills fit in Qodex.