Skills

Reusable system prompt fragments – tone, style, or house rules – invoked with `@skill://` mentions in any prompt dialog.

Skills are reusable system prompt fragments – named blocks of instructions (tone, style, house rules) defined in your Kirby config and invoked by editors with @skill://<id> mentions in any prompt dialog. At submit time, each referenced skill's instructions are spliced into the system prompt as a <skill name="...">...</skill> block.

Editors reach skills from the view button or toolbar buttons. Use them to codify the voice and rules your team reuses across the Panel.

Not the "Skills" you may know from agent frameworks. Many AI ecosystems use the term for dynamically loadable, often executable agent capabilities. Copilot Skills are plain text presets concatenated into the system prompt: no agentic loop, no filesystem access, no code execution.

Defining Skills since v3.7.0

Each skill has an id, a human label, and an instructions string that gets injected into the system prompt when the skill is active.

return [
    'johannschopplich.copilot' => [
        'skills' => [
            [
                'id' => 'brand-voice',
                'label' => 'Brand Voice',
                'instructions' => 'Write in a warm, conversational tone. Avoid corporate jargon. Prefer short sentences.'
            ],
            [
                'id' => 'concise',
                'label' => 'Concise',
                'instructions' => 'Cut every unnecessary word. Prefer active voice. No filler phrases.'
            ]
        ]
    ]
];
Skill IDs must be URL-safe – use lowercase letters, digits, hyphens, or underscores. label and instructions can each be localized independently; missing translations fall back to English, then to the first defined language.

Using Skills in Prompts

Syntax

A skill mention uses the @skill:// prefix followed by the skill's id:

@skill://skill-id

For example, @skill://brand-voice or @skill://concise. The prompt editor highlights valid skill mentions in green; unknown IDs appear in red.

Typeahead

Start typing @skill:// in the prompt editor to open a dropdown of available skills. Keep typing to filter by id or label; select with the arrow keys and Enter or Tab, or click to insert. Press Escape to dismiss without inserting. The full @skill://<id> token is inserted at the cursor position.

How It Works

When the prompt is submitted, referenced skill IDs are extracted from the prompt text and their instructions are added to the system prompt as <skill> XML blocks. The @skill:// tokens are then stripped from the user prompt before the request is sent.

This differs from page references, where @page:// tokens remain visible and the referenced content is appended to the user prompt. Skill tokens are a control surface for the system prompt – the AI never sees them as user input.

Unknown skill IDs are silently dropped. If the editor shows a token in red, the skill is unregistered and will not be injected.

Example

Given a prompt typed by the editor:

Write a product tagline for our new mixer.
@skill://brand-voice
@skill://concise

The AI receives:

  • System prompt – the default system prompt, followed by:
    <skill name="Brand Voice">
    Write in a warm, conversational tone. Avoid corporate jargon. Prefer short sentences.
    </skill>
    
    <skill name="Concise">
    Cut every unnecessary word. Prefer active voice. No filler phrases.
    </skill>
    
  • User promptWrite a product tagline for our new mixer.
Skills compose with any prompt. For complete, reusable prompts you invoke as a single unit, see Prompt Templates.
For instructions that must shape every request without editor opt-in – house formatting, safety guidelines, compliance rules – customize the system prompt instead. Skills are an editor-controlled surface; the system prompt is an admin-controlled one.