Files
LLeMbas-CLI/harness/tools/skill_manage.json
T
HomerandClaude Opus 5.5 253ef4a8a0 Harness spec 3.0.0-draft: where each tool is offered; the chat's tools
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>
2026-10-27 18:52:24 +00:00

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"
]
}
}
}
}