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>
133 lines
3.7 KiB
JSON
133 lines
3.7 KiB
JSON
{
|
|
"name": "plan_write",
|
|
"scope": "shared",
|
|
"sessions": "both",
|
|
"risk": "interact",
|
|
"exclusive": false,
|
|
"block": "plan",
|
|
"purpose": false,
|
|
"aliases": {
|
|
"cli": [
|
|
"todo"
|
|
],
|
|
"llembas": [
|
|
"todo"
|
|
]
|
|
},
|
|
"description": "Write the plan for this work, or replace it: what you found, what it is for, and the work as phases of tasks. The whole plan each time — it replaces the previous one. Use it for anything with three or more steps, from the start, and in plan mode before plan_submit.\n\n- findings: what you learned that shapes the plan, with file:line references where there are any.\n- objectives: what will be true when it is done.\n- phases: the work in order, each a short title and its tasks. One phase is fine for a short job.\n- Ids are given to you in the result (p1, t3, o2…) and are what plan_update takes; never make them up.\n- Keep it short: a task is one sentence. What does not fit is not a task.",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 120,
|
|
"description": "What the plan is for, in a few words"
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"maxLength": 300,
|
|
"description": "One or two sentences on the approach"
|
|
},
|
|
"findings": {
|
|
"type": "array",
|
|
"maxItems": 20,
|
|
"description": "What was found that shapes the plan",
|
|
"items": {
|
|
"type": "string",
|
|
"maxLength": 300
|
|
}
|
|
},
|
|
"objectives": {
|
|
"type": "array",
|
|
"maxItems": 8,
|
|
"description": "What will be true when the work is done",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 300
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"open",
|
|
"done",
|
|
"dropped"
|
|
],
|
|
"default": "open"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
}
|
|
},
|
|
"phases": {
|
|
"type": "array",
|
|
"maxItems": 8,
|
|
"description": "The work, in order",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"active",
|
|
"done"
|
|
],
|
|
"default": "pending"
|
|
},
|
|
"tasks": {
|
|
"type": "array",
|
|
"maxItems": 12,
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 300
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"todo",
|
|
"doing",
|
|
"done",
|
|
"dropped"
|
|
],
|
|
"default": "todo"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"maxLength": 300,
|
|
"description": "Why it was dropped, or what came of it"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"tasks"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"title",
|
|
"phases"
|
|
]
|
|
}
|
|
}
|