create_skill
Save a new editable SKILL.md playbook for a user or project, or seed a copy from an existing skill to customize and share a method with a client team.
Instructions
Save a new editable skill (a SKILL.md playbook) for the user or one of their projects.
Use when the user asks to create a skill, save a method as a skill, customize a built-in or
Unilytics skill, or share one of their own personal skills with a client team by copying it into
that client's project (extends="<skill_id>" seeds the copy with that skill's files). Reference and
data files are added afterwards with update_skill. Refuses a name the owner already uses, and a
skill_markdown whose frontmatter (name and description between --- lines) is missing or broken
(invalid YAML, a repeated key, not key: value lines, a requires: block that isn't schema 1), or
whose description is over 1,024 characters (skill_md_invalid). The result's `lint`
lists authoring findings on the saved skill (lint-v1 rule ids, each with a message and a fix);
findings don't stop the save.
File layout (a skill is SKILL.md plus supporting files):
- SKILL.md the workflow and its definition of done; short, linking to the files below.
- reference/*.md documents read when a step needs them (style guides, pipelines).
- data/* assets the skill carries, including runnable scripts such as a
data/verify_row.py checker; get_skill lists them as data_files.
Args:
name: Skill name: the title people see (unless SKILL.md sets metadata.title); its slug is the
last part of the skill id. Required.
skill_markdown: The SKILL.md contents (frontmatter + workflow). Required
unless `extends` is given (then it's seeded from the built-in, but you
may override).
description: Short description (else taken from frontmatter).
category: Category label (e.g. "seo", "content").
scope: "user" (private to you) or "project" (shared with collaborators).
project_id: Required when scope="project".
extends: The skill to copy as the starting point: a built-in id, a Unilytics skill id, or the id
of one of the user's own personal skills (user/…). A Unilytics skill's approved version and a
personal skill's current version are copied with all their files; a built-in (by its exact id,
with skill_markdown left empty) is copied with its reference and data files. A personal skill
copied with scope="project" is shared with that project's team, and the result's `copied_from`
names the version copied. Project skills aren't copied, and a project copy whose files name
skills outside that project (personal or another project's) is refused.
visibility: "private" | "project" | "public".
verbatim_source: When porting an existing document, its original text. The store runs a
coverage-based fidelity check and returns a report: FAIL means content was condensed or
dropped; splitting and intentional edits pass. author_skill returns the full authoring guide.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"name": "<name>",
"skill_markdown": "<skill_markdown>"
},
"name": "create_skill"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scope | No | user | |
| extends | No | ||
| category | No | ||
| project_id | No | ||
| visibility | No | private | |
| description | No | ||
| skill_markdown | Yes | ||
| verbatim_source | No |