We could add support for skills like in many other agentic systems like OpenCode and ClaudeCode.
There could be global skills and user-specific skills. Let's focus on user-specific skills for now.
What's a skill?
A skill is composed by a name+description and a body. It can contain some information, a recipe, a sequence of actions, anything that can be called "knowledge".
It is supposed to be included in the conversation context only when needed, when the agent thinks it needs it.
How does an agent load skills?
I don't know the internals of the other agents implementation but we can assume it is pretty basic:
- The list of skills (name+description) is always in the context (in the system prompt)
- There is a tool to get a skill content/body
- The model can decide to load a skill when it thinks it makes sense
How can we implement that?
- Storing skills: We could store the skills as markdown files in the
/Assistant/Skills/ dir. The user could easily add some.
- Skill format: We can use the format used by OpenCode and ClaudeCode
---
name: how-to-write-a-changelog
description: What to put in a changelog for a release
---
## What to do
Just follow the rules described in https://keepachangelog.com/en/1.0.0/ .
Each time you mention a PR, make sure to get the PR author names from the project management platform (GitHub, GitLab etc...) instead of using the git committer name.
## When to use me
Use this when the user asks you to update a project's CHANGELOG.md file.
- Tools
- a
get_skill tool is needed to get the content of an existing skill
- we could have a
create_skill tool in the future to add new skills. But the user can already add skills by creating a file in /Assistant/Skills/
- System prompt: To inject the skill-related content in the system prompt, the agent could either:
- Use WebDav only to get the skill files and extract their name+description
- Use a dedicated simple API exposed by the Assistant (one endpoint to list skills, one endpoint to get one skill)
We could add support for skills like in many other agentic systems like OpenCode and ClaudeCode.
There could be global skills and user-specific skills. Let's focus on user-specific skills for now.
What's a skill?
A skill is composed by a name+description and a body. It can contain some information, a recipe, a sequence of actions, anything that can be called "knowledge".
It is supposed to be included in the conversation context only when needed, when the agent thinks it needs it.
How does an agent load skills?
I don't know the internals of the other agents implementation but we can assume it is pretty basic:
How can we implement that?
/Assistant/Skills/dir. The user could easily add some.get_skilltool is needed to get the content of an existing skillcreate_skilltool in the future to add new skills. But the user can already add skills by creating a file in/Assistant/Skills/