Every tool says its `sessions` (chat, agent or both). The file tools read, write, edit, glob, grep and list are shared; mkdir, mv, rm, search, python and the forge verbs (commit, branch, pr, merge, tag, release) are the chat's; show and recall are new and shared. New fields: `requires` (page, display, forge) with the exact `unavailable` answer, and `confirm: always` for merge, tag and release. knowledge_*, notes_search, note_view and note_manage leave the chat. Default rules for the new tools; modes.json says what `confirm` does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
123 lines
4.5 KiB
JSON
123 lines
4.5 KiB
JSON
{
|
|
"name": "skill_manage",
|
|
"scope": "shared",
|
|
"sessions": "both",
|
|
"risk": "write",
|
|
"exclusive": false,
|
|
"block": "tool",
|
|
"purpose": "purpose",
|
|
"aliases": {
|
|
"cli": [],
|
|
"llembas": [
|
|
"skill_create",
|
|
"skill_edit"
|
|
]
|
|
},
|
|
"variables": {
|
|
"create_where": "where a new skill goes (\" Global unless where: project.\"), or empty",
|
|
"files": "the supporting-file actions (\"write_file / remove_file: supporting files under references/, templates/, scripts/ or assets/.\"), or empty — the line goes",
|
|
"revert_deleted": "\" (a deleted one too)\" where a deleted skill can be reverted, or empty",
|
|
"index_cut": "why the description is kept short (\" — only that much shows in the skills list\"), or empty"
|
|
},
|
|
"description": "Create, change or delete skills — your procedural memory for kinds of task that come back. Send a list of operations; they apply together, and if one fails none is kept.\n\n- create: a new skill from description + instructions (or content: a whole SKILL.md).{{create_where}}\n- patch: fix part of a skill with old_string/new_string (read it with skill_view first) — preferred over rewriting.\n- {{files}}\n- delete: remove a skill (alone in its call).\n- revert: put back the skill as it was before its last change{{revert_deleted}}; the version it replaces is kept, so a second revert undoes the first. Alone in its call.\n\nWrite the description as its trigger, in about 60 characters{{index_cut}}: \"Use when <situation>. <what it does>.\" Write lessons, not logs: an instruction and why, no dates or incident stories.",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"operations": {
|
|
"minItems": 1,
|
|
"maxItems": 20,
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"patch",
|
|
"write_file",
|
|
"remove_file",
|
|
"delete",
|
|
"revert"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The skill (lowercase letters, digits, - _ .; up to 64)"
|
|
},
|
|
"description": {
|
|
"description": "create: when to use the skill, one sentence, the trigger first: \"Use when …\"",
|
|
"type": "string"
|
|
},
|
|
"instructions": {
|
|
"description": "create: the skill's instructions (markdown)",
|
|
"type": "string"
|
|
},
|
|
"content": {
|
|
"description": "create, instead of description + instructions: the whole SKILL.md. patch: a whole new SKILL.md — last resort; prefer old_string/new_string.",
|
|
"type": "string"
|
|
},
|
|
"category": {
|
|
"description": "create: an optional category directory, e.g. devops",
|
|
"type": "string"
|
|
},
|
|
"where": {
|
|
"description": "create: global (every project, the default) or this project's .agent/skills",
|
|
"type": "string",
|
|
"enum": [
|
|
"global",
|
|
"project"
|
|
]
|
|
},
|
|
"old_string": {
|
|
"description": "patch: the exact text to replace (read the skill first)",
|
|
"type": "string"
|
|
},
|
|
"new_string": {
|
|
"description": "patch: its replacement; empty deletes it",
|
|
"type": "string"
|
|
},
|
|
"replace_all": {
|
|
"description": "patch: every occurrence",
|
|
"type": "boolean"
|
|
},
|
|
"file_path": {
|
|
"description": "write_file/remove_file, or patch of a supporting file: a path inside the skill starting with references/, templates/, scripts/ or assets/",
|
|
"type": "string"
|
|
},
|
|
"file_content": {
|
|
"description": "write_file: the file's whole text",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"name"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"operations"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"llembas": {
|
|
"drop": [
|
|
"operations[].category",
|
|
"operations[].where",
|
|
"operations[].file_path",
|
|
"operations[].file_content"
|
|
],
|
|
"enum": {
|
|
"operations[].action": [
|
|
"create",
|
|
"patch",
|
|
"delete",
|
|
"revert"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|