One registry per process, every job owned by a session: bash's background commands (and a command still running at its timeout, which now goes to the background instead of being killed) and subagents started with task background: true. job_list, job_output, job_stop (the former bash_list, bash_output, bash_kill) and the new job_send and report; a finished job wakes the owning session in every front end with its marked note. The TUI counts jobs, lists them (/jobs), opens a command's output, enters a subagent and messages it, moves a command to the background (ctrl+b) and asks before quitting with jobs running. The link gains the jobs capability. Subagents get a session row of their own, the spec's preamble and agent texts, and their errors reach the report. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
53 lines
2.3 KiB
JSON
53 lines
2.3 KiB
JSON
{
|
||
"name": "task",
|
||
"scope": "shared",
|
||
"risk": "interact",
|
||
"exclusive": false,
|
||
"block": "task",
|
||
"purpose": "purpose",
|
||
"aliases": {
|
||
"cli": [],
|
||
"llembas": [
|
||
"subagent_run"
|
||
]
|
||
},
|
||
"description": "Hand a self-contained piece of work to a subagent, which works on its own and returns only its final report — keeping the searching and reading out of your context.\n\n- Use it for broad research (\"where is X handled, and what calls it?\") or a separable job. For one file you already know, just read it.\n- `prompt` must stand on its own: the subagent sees nothing of this conversation. Say what to find or do, and what to report back.\n- `background: true` returns at once with a job id and you carry on; the report comes to you as a message when it ends. Meanwhile job_output shows its progress, job_send gives it a message, job_stop stops it. Without it, the call waits for the report.\n- Independent tasks can run in the same turn. Subagents that change files at the same time should each have `worktree: true`, so they work on separate branches.\n- Agents: {{agents}}",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"description": {
|
||
"type": "string",
|
||
"description": "3–6 words, shown to the user"
|
||
},
|
||
"prompt": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"description": "The whole task, self-contained"
|
||
},
|
||
"agent": {
|
||
"description": "Which subagent (default: explore)",
|
||
"type": "string"
|
||
},
|
||
"worktree": {
|
||
"description": "Work in a separate git checkout on a new branch, apart from yours — for changes made alongside other work; the result says how to merge it",
|
||
"type": "boolean"
|
||
},
|
||
"background": {
|
||
"description": "Run it as a background job: return its id at once, get its report as a message when it ends",
|
||
"type": "boolean"
|
||
},
|
||
"model": {
|
||
"description": "Run it on another configured model (connection/model, from the list in your instructions) — a second opinion, or a model better at this kind of work. Default: the agent's own model, else yours.",
|
||
"type": "string"
|
||
}
|
||
},
|
||
"required": [
|
||
"description",
|
||
"prompt"
|
||
]
|
||
},
|
||
"variables": {
|
||
"agents": "the subagents a task may name: `name — description`, separated by \"; \""
|
||
}
|
||
}
|