Skip to main content
Glama

Update skill

update_skill
Idempotent

Modify an existing skill's name, description, content, or priority in a playbook; with propose permission, save changes as a pending proposal that leaves the skill unchanged until approved.

Instructions

Update an existing skill in this playbook. Requires full or skills:write permission; with skills:propose the change is saved as a proposal (status pending_review) and the skill stays unchanged until it is approved. Use create_skill to add a skill, list_skill_versions before a risky edit, and rollback_skill to restore a previous version. Do not use this to delete a skill. Pass playbook_id as the UUID or GUID of the playbook this call should target.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoNew name
contentNoNew SKILL.md document, frontmatter included. A demonstrations block in the frontmatter is validated the same way create_skill validates it.
priorityNoNew priority level
skill_idYesID or name of the skill to update
descriptionNoNew description
playbook_idYesUUID or GUID of the target playbook

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (which only say readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description discloses auth requirements and a branching behavioral mode: with skills:write the skill is modified, with skills:propose the change is stored as a pending_review proposal and the skill stays unchanged until approved. That is exactly the kind of consequence an agent cannot infer from annotations.

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

Conciseness4/5

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

Front-loaded with the core action and efficiently packs permissions, alternatives, and exclusions. The final sentence restating that playbook_id is a UUID/GUID duplicates the schema and is the one non-earning line.

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 mutation tool with no output schema, it covers the safety-relevant behavior (permission modes, proposal workflow, sibling routing). It stops short of stating what happens to fields omitted from the call or how validation failures on the content/frontmatter block are surfaced, but the essential invocation picture is present.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters. The description's line about playbook_id being a UUID/GUID largely repeats the schema text and adds no new syntax or format guidance, so the baseline of 3 applies.

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 opening sentence names a specific verb (update) and resource (an existing skill in this playbook), and the following sentences explicitly separate this tool from create_skill, delete_skill, and rollback_skill. An agent can distinguish what this does and does not do without opening any 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?

Explicit routing: use create_skill to add, list_skill_versions before a risky edit, rollback_skill to restore, and a hard exclusion ('Do not use this to delete a skill'). It also states the permission-dependent mode of operation, so the caller knows the preconditions before invoking.

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