Skip to main content
Glama

create_skill_draft

Destructive

Create an editable skill draft for review before canonical publication or native runtime writes, with validation metadata and paths returned; validate before publishing.

Instructions

Create an editable skill draft without canonical publication or native runtime writes. Use when content needs review; use create_skill for direct canonical creation. Project scope requires initialization. Both draft paths are relative to the server workspace: project uses .umem/drafts/skills//SKILL.md; global uses drafts/skills//SKILL.md and registers the draft in user memory. Global scope does not move the physical draft into user memory; draft-file audit/snapshot writes also use the project writer. Writes the draft file and registration with snapshot/audit references. An existing unregistered file at the same draft path can be overwritten without confirmation; only registered slug collisions are rejected. Inspect the draft destination first. When generating Markdown, omitted/empty triggers default to the skill name. Returns draft metadata, paths, validation information, and warnings. Validate with validate_skill before publish_skill.

Input Schema

NameRequiredDescriptionDefault
nameYesNonempty human-readable skill name. Used for display and candidate matching; not a file path.
slugNoDraft directory slug. Omitted derives from the name. Registered slug collisions are rejected; an existing unregistered draft file can be overwritten.
scopeNoRegistration scope, project by default. Draft files stay relative to the server workspace: project writes .umem/drafts/skills/<slug>/SKILL.md; global writes drafts/skills/<slug>/SKILL.md while registering in user memory. Global does not place the draft file in the user memory directory.project
triggersNoTrigger phrases for generated draft content. Without raw_markdown, omitted/empty triggers render the skill name as the default trigger; supplied raw Markdown takes precedence.
descriptionYesNonempty description of the reusable workflow purpose; distinguish it from neighboring skills.
raw_markdownNoComplete SKILL.md Markdown including valid frontmatter when supplied; validated before content is written. Omitted lets creation build content from metadata.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.6.4
    • addedInput schema / properties / description / description
      Added value: +"Nonempty description of the reusable workflow purpose; distinguish it from neighboring skills."
    • addedInput schema / properties / name / description
      Added value: +"Nonempty human-readable skill name. Used for display and candidate matching; not a file path."
    • addedInput schema / properties / raw_markdown / description
      Added value: +"Complete SKILL.md Markdown including valid frontmatter when supplied; validated before content is written. Omitted lets creation build content from metadata."
    • addedInput schema / properties / scope / description
      Added value: +"Registration scope, project by default. Draft files stay relative to the server workspace: project writes .umem/drafts/skills/<slug>/SKILL.md; global writes drafts/skills/<slug>/SKILL.md while registering in user memory. Global does not place the draft file in the user memory directory."
    • addedInput schema / properties / slug / description
      Added value: +"Draft directory slug. Omitted derives from the name. Registered slug collisions are rejected; an existing unregistered draft file can be overwritten."
    • addedInput schema / properties / triggers / description
      Added value: +"Trigger phrases for generated draft content. Without raw_markdown, omitted/empty triggers render the skill name as the default trigger; supplied raw Markdown takes precedence."
  2. First observedv0.4.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and non-idempotent, and the description adds concrete behavior beyond them: an existing unregistered file at the draft path 'can be overwritten without confirmation' while only registered slug collisions are rejected, plus the advice to inspect the draft destination first. It also clarifies the non-obvious global-scope behavior that the physical file is not moved into user memory and that audit/snapshot writes use the project writer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The intent and alternative are front-loaded well, but the body is dense and partly redundant with the schema, restating the two draft paths and the global-scope registration nuance that the parameter descriptions already cover. Every sentence is informative, yet the same facts are repeated rather than compressed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive write tool with an output schema present, the description covers the safety profile, scope semantics, overwrite risk, and the validate-before-publish workflow, so an agent has what it needs. It stops short of noting permissions/auth requirements, which is the only notable omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already defines all six parameters, but the description adds real meaning: the exact draft paths per scope (.umem/drafts/skills/<slug>/SKILL.md vs drafts/skills/<slug>/SKILL.md) and the defaulting rule that omitted/empty triggers fall back to the skill name and that supplied raw_markdown takes precedence. It goes somewhat beyond a baseline 3 by clarifying cross-parameter interaction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ('Create an editable skill draft') and explicitly bounds the scope ('without canonical publication or native runtime writes'), then names the sibling it is contrasted with: create_skill for direct canonical creation. An agent can distinguish this from create_skill/publish_skill without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to use it ('when content needs review'), names the alternative for the other case ('use create_skill for direct canonical creation'), gives a prerequisite ('Project scope requires initialization'), and adds a follow-up path ('Validate with validate_skill before publish_skill'). Exclusions and routing are explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.