Skills
Each @skill://<id> reference is replaced at submit time with a <skill name="...">...</skill> block in the system prompt. Skills are defined in config.php with id, label, and instructions.
Editors reach skills from the view button or toolbar buttons. Use them to codify the voice and rules your team reuses across the Panel.
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 casual, direct voice. Short sentences. Prefer concrete nouns over abstract ones. Avoid marketing jargon such as leverage, empower or best-in-class. Address the reader as you.'
],
[
'id' => 'concise',
'label' => 'Concise',
'instructions' => 'Be ruthless about length. Prefer one short sentence over two long ones. Cut adverbs and hedges such as really, very, somewhat. If a sentence still works without a word, the word is wrong.'
],
[
'id' => 'formal-address',
'label' => 'Formal Address',
'instructions' => 'Address the reader formally. In German use Sie and Ihr, never du. Formal is not bureaucratic: keep the sentences short and the verbs active.'
]
]
]
];
return [
'johannschopplich.copilot' => [
'skills' => [
[
'id' => 'formal-address',
'label' => [
'en' => 'Formal Address',
'de' => 'Förmliche Anrede'
],
'instructions' => [
'en' => 'Address the reader formally. In German use Sie and Ihr, never du. Formal is not bureaucratic: keep the sentences short and the verbs active.',
'de' => 'Sprich den Leser förmlich an. Verwende Sie und Ihr, niemals du. Förmlich heißt nicht behördlich: Halte die Sätze kurz und die Verben aktiv.'
]
]
]
]
];
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 reference 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 references in green; unknown IDs appear in red.
im@skill://concise stays plain text. Punctuation around it is fine, so "@skill://concise" resolves.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> reference 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. Skill references are then stripped from the user prompt before the request is sent.
This differs from page references, where page references remain visible and the referenced content is appended to the user prompt. Skill references are a control surface for the system prompt – the AI model receives their instructions instead of the references.
Skill references resolve in every prompt an editor sends – typed in the dialog, predefined in a blueprint, or from a prompt template. A prompt passed programmatically through the plugin API reaches the AI model as is, skill references included. The typeahead and highlighting exist only in the prompt dialog editor.
Example
Given a prompt typed by the editor:
Write a tagline for the documentary festival's 2027 edition.
@skill://brand-voice
@skill://concise
The AI model receives:
- System prompt: the default system prompt, followed by:
<skill name="Brand Voice"> Write in a casual, direct voice. Short sentences. Prefer concrete nouns over abstract ones. Avoid marketing jargon such as leverage, empower or best-in-class. Address the reader as you. </skill> <skill name="Concise"> Be ruthless about length. Prefer one short sentence over two long ones. Cut adverbs and hedges such as really, very, somewhat. If a sentence still works without a word, the word is wrong. </skill> - User prompt:
Write a tagline for the documentary festival's 2027 edition.