Manage user skills
Inspects available capabilities and creates or updates user skills.
Manage User Skills
Purpose
Use this skill when existing loaded skills, global skills, and discovered user-skill frontmatter are not enough to solve the task cleanly.
This skill is the main gateway for inspecting available internal capabilities and turning them into reusable user skills. It can:
- create new user skills,
- read existing user skills,
- update existing user skills,
- and delete obsolete user skills.
User-created skills are stored in the active user's storage area and are discovered by identity key.
When talking to non-technical users, explain MCP servers as "plugins" or "plugin integrations" first, and only use the technical MCP wording when it is actually helpful.
What This Skill Is For
Use this skill when one of these is true:
- the user wants the assistant to perform tasks that require tools, but no fitting skill is already available,
- an existing user skill is close to the solution but needs different tools or better instructions,
- the user wants to inspect, repair, or delete a user skill,
- the assistant needs to understand what tools, subagents, flows, or MCP/plugin capabilities exist before proposing a reusable workflow.
Do not treat this skill as a form-filling interview. Its job is to infer as much as possible from the current request and context, inspect capabilities, and move directly toward a concrete skill draft or update.
Capability Model
This skill supports user skills that use:
- internal engine tools,
- internal subagents,
- internal flows,
- MCP tools via namespaced tool references plus a frontmatter
mcpslist, - or a combination of internal capabilities and MCP tools.
Important flow restriction:
- If a skill references one or more flows, that skill must be flow-only.
- A flow skill must not also reference internal tools, subagents, or MCP tools.
- A flow skill must not declare
mcps. - Reason: a flow takes over execution and returns its own result, so mixing flows with normal callable tools is not a coherent runtime model.
Tool Overview
-
get_available_agent_capabilities- Primary discovery tool for internal tools, subagents, flows, and MCP/plugin servers.
mode="overview"is the compact default. It returns counts plus paginated MCP server summaries.mode="internal_tools"browses internal tools, subagents, and flows with pagination.mode="mcp_tools"browses tools for one specific MCP/plugin server with pagination.- Only request
include_descriptions=trueorinclude_parameters=truewhen you really need the extra detail.
-
build_and_save_user_skill- Preferred structured tool for creating a new user skill.
- Builds normalized markdown, validates it, and saves it.
-
update_user_skill- Preferred structured tool for updating an existing skill.
- Validates and overwrites the skill, but does not create missing skills.
-
fs_read_command- Reads and inspects existing
SKILL.mdfiles through a shell-like read-only interface. - Use commands like
cat,head,sed -n,find, orrg --filesinside the allowed user-skill root.
- Reads and inspects existing
-
delete_user_skill- Deletes a user skill after removing its links from user contexts.
Default Workflow
-
Understand the task with minimal friction.
- Infer the likely goal from the user's request and the current conversation.
- Do not start with a long questionnaire.
- Ask only for information that is truly blocking correct skill construction or update.
-
Inspect capabilities before designing the skill.
- Start with
get_available_agent_capabilities(mode="overview"). - If internal capabilities matter, browse
mode="internal_tools"with pagination. - If MCP/plugins matter, browse
mode="mcp_tools"for the relevant server with pagination. - Use returned names and
skill_tool_referencevalues exactly as provided.
- Start with
-
Decide whether to create or update.
- If a fitting user skill already exists and only needs refinement, update it.
- If a user skill exists but you need to inspect the exact content first, use
fs_read_commandwith a shell-like read command such ascat /allowed/user-skill-root/<skill_name>/SKILL.md. - If no fitting user skill exists, create a new one.
-
Produce a concrete skill, not just commentary.
- Propose or infer a short lowercase-hyphen skill name.
- Write a short frontmatter description that says what the skill does and when to use it.
- Write the markdown body as operational guidance:
- purpose,
- when to use,
- strategy/workflow,
- examples,
- failure handling.
-
Save with the most structured tool that fits.
- For new skills, prefer
build_and_save_user_skill. - For existing skills, prefer
update_user_skill.
- For new skills, prefer
-
Confirm the outcome and next action.
- State whether the skill was created, updated, read, or deleted.
- Name the affected skill.
- If relevant, remind the user that the assistant can later discover or load the skill through the
skilltool.
Canonical Frontmatter
Use this frontmatter shape:
---
name: my-skill-name
description: Short summary of what this skill does and when to use it.
tools:
- internal_tool_name
- another_internal_or_subagent_tool
- internal_flow_name
- mcp:my-mcp-key:search
- mcp:my-mcp-key:scrape
- mcp:second-mcp-key:lookup
mcps:
- my-mcp-key
- second-mcp-key
tags:
- optional
- skill-tag
---
Put the detailed workflow and examples into the markdown body, not into the frontmatter.
Optional Dreaming control:
- You may set
metadata.ariadneanyverse.de.dreaming: "true"to exclude a skill from the Dreamingskill_reviewphase. - Omitted metadata is treated like
false, so Dreaming may still review the skill. - If you set the key explicitly, use only
trueorfalsesemantics. The structured tools also support this through the optionalexclude_from_dreamingparameter.
Important Rules
- For MCP-backed skills, frontmatter must use
mcpsas a list of MCP server keys. - If any tool in frontmatter
toolscomes from an MCP, that MCP key must be present in frontmattermcps. - MCP tools in frontmatter
toolsmust be namespaced asmcp:<mcp_key>:<tool_name>. - Internal tools, subagents, and flows are referenced directly by name.
- Flow-based skills are exclusive and must not mix with normal tools or MCP capabilities.
- Flow-based skills must not declare any
mcps. - Duplicate entries in
toolsormcpsare invalid. - The old single
mcpfield is obsolete and invalid. - Keep frontmatter
descriptionshort and precise. metadata.ariadneanyverse.de.dreamingis optional. If present, it must resolve totrueorfalse.- Read existing skills through
fs_read_commandfrom the allowed user-skill root and keep writes on the structured skill-authoring tools.
Runtime Behavior You Must Explain Correctly
- If a declared MCP has namespaced MCP tool entries in
tools, only those MCP tools are loaded for that MCP. - If a declared MCP has no namespaced MCP tool entries in
tools, all tools from that MCP are loaded. - MCP tools are exposed at runtime with the engine postfix (
<tool_name>_<mcp_key>), but frontmatter must still use the namespaced skill format (mcp:<mcp_key>:<tool_name>). - If an MCP or requested MCP tool is missing later, completion generation should still continue.
- The runtime injects warning text into the skill context so the assistant can inform the user that parts of the skill are unavailable.
Validation and Error Handling
- Treat validation errors as actionable feedback, not as conversation failure.
- Read the exact returned errors and correct them directly.
- Common issues include:
- invalid YAML frontmatter,
- wrong field names such as
mcpinstead ofmcps, - non-namespaced MCP tool references,
- MCP keys missing from
mcps, - missing MCPs or missing MCP tools.
Collaboration Style
- Be decisive. Move from user intent to capability discovery to a concrete skill draft quickly.
- Prefer doing the discovery work yourself instead of asking the user to enumerate tools.
- Compare options briefly when needed, then recommend the smallest reliable toolset.
- Do not invent tool names or MCP keys. Always derive them from discovery output.
- Use repeated paginated discovery calls instead of trying to load everything at once.
- If the user wants to modify an existing skill, inspect
<allowed_user_skill_root>/<skill_name>/SKILL.mdwithfs_read_commandbefore changing it. - If an MCP/plugin no longer exists, explain that clearly and adapt the skill design to currently available capabilities.
- When deleting a skill, explain that linked contexts are cleaned up first so broken links are not left behind.
