Skip to main content
Glama

Propose an action

task_propose
Destructive

Before acting outside the workspace (a post, an email, a booking), or to send a draft for review, propose it: the exact draft, the approve verb, a type (what kind of work it is, a free tag), then (the step an approval moves the task to, such as post: the task then waits To do at that step for whoever starts it; without then, it comes back to you to carry out), a comment for the reviewer, and links to the files and pages it uses (context links). draftArtifacts names up to 10 files the draft is made of (an X post, a LinkedIn post, an image: an artifact in this workspace by id or page URL, at a version number or id, else its current one), each once and in order; each is linked as context, and the round keeps those versions while the task exists. Each proposal is a new round, recording the task's step. A new proposal takes a title and its workspaceId, or parentId alone (the parent's workspace); with id, propose on a task that is free or yours, or replace your own open proposal (its round closes replaced). It waits In review for its reviewer: your own person unless you or the task name one (a person or agent:; never you); proposing never changes whom the task is for. Stop there; on a later run, workspace_load and task_get show the verdict: latestRound.verdict says approved, sent_back (its comment says what to change: revise and propose again) or cancelled (the task was cancelled: stop), and approvedRound.final is what to carry out (final.text, and each final.artifacts version); task_complete records the result. A task holds at most 50 rounds (TOO_MANY_ROUNDS). On an existing task, type fills a missing one; another type is refused (INVALID_FIELD). job names the job a new proposal serves (by name; never with id). A job with task definitions holds its tasks to its types and steps and fills the defaults: a new proposal's type when the job has only one and its first main step, and at a step with an approval an omitted then (the next main step) and approve verb (the step's), each on its own; then must be a step of the task's definition (a word outside them is INVALID_INPUT naming the field and its available values). When it goes to your own person and its type is on your instructions' onItsOwn list (workspace_load instructions), it comes back approved: held by you (doing), or with then, To do at that step. That holds when your own account gave the task its type: your own new proposals, tasks your own person (or another of their agents) wrote or tagged with it, and types you set on a task that had none; a type someone else gave a task never approves it on its own. Returns the review receipt; a draft or approved text too large for it is cut to 512 bytes there (cut is true), and task_get reads it whole.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "task_propose"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNoPropose on this existing task instead of creating one.
jobNoThe job this task serves, by name (from workspace_load jobs): a live job of this workspace. A job with task definitions holds the task to its types and steps. A new proposal only; on an existing task, set the job with an update.
whyNoRequired for workspace items: one sentence on what the person is trying to accomplish, in their terms, not a description of this edit. Every workspace write takes one; sessions and summaries record themselves from it. At most 300 characters.
bodyNo
thenNoThe step an approval moves the task to (post, send): the task then waits To do at that step, for whoever starts it. Omit to have it come back to you to carry out. Under a job with task definitions it is a step of the task's definition, and at a step with an approval an omitted then is the next main step.
typeNoWhat kind of work it is (x-reply, pitch-email): a free tag, or under a job with task definitions one of its types; your person's instructions can let you carry out a type on your own. On an existing task, set only when it has none; another type is refused.
draftNoThe exact text the action will use; what comes back approved is what you carry out.
linksNoFiles and pages the work uses (context links). At most 50 per call and 100 per role per task; each is { artifact, version? } (an artifact in this workspace, by id or page URL; version a number or a version id) or { url } (at most 255 characters); a target already linked is left as it is.
titleNo
commentNoA comment posted with the proposal, in the same write (at most 8000 characters): a question or a note for the reviewer, never a status.
parentIdNoA task this one belongs under; its workspace is the new task's (omit workspaceId).
reviewerNoWho decides. A person (account id, alias or @alias) or one agent as agent:<handle>, a handle from workspace_load agents; they must be able to edit tasks in this workspace. Omit to ask your own person.
approveVerbNoThe approve button's verb, one short line: Post, Send, Book. Under a job with task definitions, omitted at a step with an approval, it is that step's.
workspaceIdNoThe workspace (its id or its slug): name it, or name parentId instead.
draftArtifactsNoFiles this draft is made of (an X post, a LinkedIn post, an image), in order, at most 10, each once: an artifact in this workspace by id or page URL, at a version (a number or a version id; omit for the current one). Each is linked as context. The round keeps those versions while the task exists, and the reviewer sees them.

Output Schema

NameRequiredDescriptionDefault
taskYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedInput schema / properties / audience
      Removed value: -{
      -  "enum": [
      -    "internal",
      -    "shared"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / job / description
      Previous value: -"The job this task serves, by name (from workspace_load jobs): a live job of this workspace. Jobs are internal: only internal members name one. A job with task definitions holds the task to its types and steps. A new proposal only; on an existing task, set the job with an update."New value: +"The job this task serves, by name (from workspace_load jobs): a live job of this workspace. A job with task definitions holds the task to its types and steps. A new proposal only; on an existing task, set the job with an update."
    • changedInput schema / properties / reviewer / description
      Previous value: -"Who decides. A person (account id, alias or @alias) or one agent as agent:<handle>, a handle from workspace_load agents; they must be able to edit tasks in the task's audience. Omit to ask your own person."New value: +"Who decides. A person (account id, alias or @alias) or one agent as agent:<handle>, a handle from workspace_load agents; they must be able to edit tasks in this workspace. Omit to ask your own person."
  2. Changed9 schema fields changed
    • changedInput schema / properties / approveVerb / description
      Previous value: -"The approve button's verb, one short line: Post, Send, Book."New value: +"The approve button's verb, one short line: Post, Send, Book. Under a job with task definitions, omitted at a step with an approval, it is that step's."
    • addedInput schema / properties / job
      Added value: +{
      +  "description": "The job this task serves, by name (from workspace_load jobs): a live job of this workspace. Jobs are internal: only internal members name one. A job with task definitions holds the task to its types and steps. A new proposal only; on an existing task, set the job with an update.",
      +  "pattern": "^[a-z0-9][a-z0-9-_]{0,63}$",
      +  "type": "string"
      +}
    • changedInput schema / properties / then / description
      Previous value: -"The step an approval moves the task to (post, send): the task then waits To do at that step, for whoever starts it. Omit to have it come back to you to carry out."New value: +"The step an approval moves the task to (post, send): the task then waits To do at that step, for whoever starts it. Omit to have it come back to you to carry out. Under a job with task definitions it is a step of the task's definition, and at a step with an approval an omitted then is the next main step."
    • changedInput schema / properties / type / description
      Previous value: -"What kind of work it is (x-reply, pitch-email): a free tag; your person's instructions can let you carry out a type on your own. On an existing task, set only when it has none; another type is refused."New value: +"What kind of work it is (x-reply, pitch-email): a free tag, or under a job with task definitions one of its types; your person's instructions can let you carry out a type on your own. On an existing task, set only when it has none; another type is refused."
    • changedOutput schema / properties / task / properties / cut / description
      Previous value: -"true when this answer was too large for a tool reply, so each round text it carries (the latest round's draft, edit and comment; the approved round's final text) was cut to its first 512 bytes. Read them whole with task_get."New value: +"true when this answer was too large for a tool reply, so each round text it carries (the latest round's draft, edit and comment; the approved round's final text) and, on a start, its workflow step's instructions were cut to their first 512 bytes. Read them whole with task_get."
    • addedOutput schema / properties / task / properties / job
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "id": {
      +          "format": "uuid",
      +          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "name"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / task / properties / labels
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / task / properties / latestRound / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "number": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      },
      -      "outcome": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "approved",
      -              "sent_back",
      -              "cancelled",
      -              "withdrawn",
      -              "replaced"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "number",
      -      "outcome"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "number": {
      +        "exclusiveMinimum": 0,
      +        "maximum": 9007199254740991,
      +        "type": "integer"
      +      },
      +      "outcome": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "approved",
      +              "sent_back",
      +              "cancelled",
      +              "withdrawn",
      +              "replaced"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Deprecated: the same value as verdict; removed when the window round-outcome-field-window closes."
      +      },
      +      "verdict": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "approved",
      +              "sent_back",
      +              "cancelled",
      +              "withdrawn",
      +              "replaced"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "number",
      +      "verdict",
      +      "outcome"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / task / required
      Previous value: -[
      -  "id",
      -  "status",
      -  "revision",
      -  "type",
      -  "step",
      -  "holder",
      -  "assignee",
      -  "reviewer",
      -  "latestRound",
      -  "approvedRound",
      -  "result",
      -  "cut"
      -]New value: +[
      +  "id",
      +  "status",
      +  "revision",
      +  "type",
      +  "step",
      +  "labels",
      +  "job",
      +  "holder",
      +  "assignee",
      +  "reviewer",
      +  "latestRound",
      +  "approvedRound",
      +  "result",
      +  "cut"
      +]
  3. Changed1 schema field changed
    • changedOutput schema / properties / task / properties / approvedRound / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "final": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "artifacts": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "artifact": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "id": {
      -                          "format": "uuid",
      -                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                          "type": "string"
      -                        },
      -                        "title": {
      -                          "anyOf": [
      -                            {
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "type": {
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "id",
      -                        "title",
      -                        "type"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "position": {
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 9007199254740991,
      -                  "type": "integer"
      -                },
      -                "version": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "id": {
      -                          "format": "uuid",
      -                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                          "type": "string"
      -                        },
      -                        "number": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "id",
      -                        "number"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "position",
      -                "artifact",
      -                "version"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "text": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          }
      -        },
      -        "required": [
      -          "text",
      -          "artifacts"
      -        ],
      -        "type": "object"
      -      },
      -      "number": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "number",
      -      "final"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "final": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "artifacts": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "artifact": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "id": {
      +                          "format": "uuid",
      +                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                          "type": "string"
      +                        },
      +                        "mimeType": {
      +                          "anyOf": [
      +                            {
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ]
      +                        },
      +                        "title": {
      +                          "anyOf": [
      +                            {
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ]
      +                        },
      +                        "type": {
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "id",
      +                        "title",
      +                        "type",
      +                        "mimeType"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "position": {
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 9007199254740991,
      +                  "type": "integer"
      +                },
      +                "version": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "id": {
      +                          "format": "uuid",
      +                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                          "type": "string"
      +                        },
      +                        "number": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "id",
      +                        "number"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "position",
      +                "artifact",
      +                "version"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "text": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "text",
      +          "artifacts"
      +        ],
      +        "type": "object"
      +      },
      +      "number": {
      +        "exclusiveMinimum": 0,
      +        "maximum": 9007199254740991,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "number",
      +      "final"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  4. Changed3 schema fields changed
    • changedOutput schema / properties / task / properties / assignee / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "account": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alias": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "id": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "alias"
      -        ],
      -        "type": "object"
      -      },
      -      "agent": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "harness": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "id": {
      -                "anyOf": [
      -                  {
      -                    "format": "uuid",
      -                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "name": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              }
      -            },
      -            "required": [
      -              "id",
      -              "name",
      -              "harness"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "isCaller": {
      -        "type": "boolean"
      -      },
      -      "mine": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "account",
      -      "agent",
      -      "mine",
      -      "isCaller"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "account": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alias": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "former": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "alias"
      +        ],
      +        "type": "object"
      +      },
      +      "agent": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "harness": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "id": {
      +                "anyOf": [
      +                  {
      +                    "format": "uuid",
      +                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "name": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "name",
      +              "harness"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "isCaller": {
      +        "type": "boolean"
      +      },
      +      "mine": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "account",
      +      "agent",
      +      "mine",
      +      "isCaller"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / task / properties / holder / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "account": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alias": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "id": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "alias"
      -        ],
      -        "type": "object"
      -      },
      -      "agent": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "name": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "name"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "heldByCaller": {
      -        "type": "boolean"
      -      },
      -      "inBrowser": {
      -        "type": "boolean"
      -      },
      -      "leaseExpiresAt": {
      -        "anyOf": [
      -          {
      -            "format": "date-time",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "mine": {
      -        "type": "boolean"
      -      },
      -      "since": {
      -        "format": "date-time",
      -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -        "type": "string"
      -      },
      -      "surface": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "account",
      -      "agent",
      -      "surface",
      -      "inBrowser",
      -      "since",
      -      "leaseExpiresAt",
      -      "mine",
      -      "heldByCaller"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "account": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alias": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "former": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "alias"
      +        ],
      +        "type": "object"
      +      },
      +      "agent": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "name": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "name"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "heldByCaller": {
      +        "type": "boolean"
      +      },
      +      "inBrowser": {
      +        "type": "boolean"
      +      },
      +      "leaseExpiresAt": {
      +        "anyOf": [
      +          {
      +            "format": "date-time",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "mine": {
      +        "type": "boolean"
      +      },
      +      "since": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +        "type": "string"
      +      },
      +      "surface": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "account",
      +      "agent",
      +      "surface",
      +      "inBrowser",
      +      "since",
      +      "leaseExpiresAt",
      +      "mine",
      +      "heldByCaller"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / task / properties / reviewer / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "account": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "alias": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "id": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "alias"
      -        ],
      -        "type": "object"
      -      },
      -      "agent": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "harness": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "id": {
      -                "anyOf": [
      -                  {
      -                    "format": "uuid",
      -                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "name": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              }
      -            },
      -            "required": [
      -              "id",
      -              "name",
      -              "harness"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "isCaller": {
      -        "type": "boolean"
      -      },
      -      "mine": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "account",
      -      "agent",
      -      "mine",
      -      "isCaller"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "account": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "alias": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "former": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "alias"
      +        ],
      +        "type": "object"
      +      },
      +      "agent": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "harness": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "id": {
      +                "anyOf": [
      +                  {
      +                    "format": "uuid",
      +                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "name": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "name",
      +              "harness"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "isCaller": {
      +        "type": "boolean"
      +      },
      +      "mine": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "account",
      +      "agent",
      +      "mine",
      +      "isCaller"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  5. Changed19 schema fields changed
    • addedInput schema / properties / comment
      Added value: +{
      +  "description": "A comment posted with the proposal, in the same write (at most 8000 characters): a question or a note for the reviewer, never a status.",
      +  "type": "string"
      +}
    • addedInput schema / properties / draftArtifacts
      Added value: +{
      +  "description": "Files this draft is made of (an X post, a LinkedIn post, an image), in order, at most 10, each once: an artifact in this workspace by id or page URL, at a version (a number or a version id; omit for the current one). Each is linked as context. The round keeps those versions while the task exists, and the reviewer sees them.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "description": "An artifact in the task's workspace: its id or its page URL (a version page's URL names that version).",
      +        "type": "string"
      +      },
      +      "version": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "maximum": 9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "format": "uuid",
      +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +            "type": "string"
      +          }
      +        ],
      +        "description": "The version the reviewer sees: its number, or its version id. Omit for the current one."
      +      }
      +    },
      +    "required": [
      +      "artifact"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 10,
      +  "type": "array"
      +}
    • removedInput schema / properties / kind
      Removed value: -{
      -  "description": "The kind of work (x-reply, pitch-email): a slug your person's instructions can allow on its own; on an existing task, set only when it has none.",
      -  "pattern": "^[a-z0-9][a-z0-9-_]{0,63}$",
      -  "type": "string"
      -}
    • changedInput schema / properties / links / description
      Previous value: -"At most 50 links to what the work touched or produced: artifacts in this workspace, or URLs."New value: +"Files and pages the work uses (context links). At most 50 per call and 100 per role per task; each is { artifact, version? } (an artifact in this workspace, by id or page URL; version a number or a version id) or { url } (at most 255 characters); a target already linked is left as it is."
    • removedInput schema / properties / links / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / links / items / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artifact": {
      +        "description": "An artifact in the task's workspace: its id or its page URL (a version page's URL names that version).",
      +        "type": "string"
      +      },
      +      "version": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "maximum": 9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "format": "uuid",
      +            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +            "type": "string"
      +          }
      +        ],
      +        "description": "A version of that artifact: its number, or its version id. Omit to mean whatever is current."
      +      }
      +    },
      +    "required": [
      +      "artifact"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "url": {
      +        "description": "A web address, at most 255 characters.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "url"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / links / items / properties
      Removed value: -{
      -  "id": {
      -    "type": "string"
      -  },
      -  "type": {
      -    "enum": [
      -      "artifact",
      -      "url"
      -    ],
      -    "type": "string"
      -  },
      -  "version": {
      -    "exclusiveMinimum": 0,
      -    "maximum": 9007199254740991,
      -    "type": "integer"
      -  }
      -}
    • removedInput schema / properties / links / items / required
      Removed value: -[
      -  "type",
      -  "id"
      -]
    • removedInput schema / properties / links / items / type
      Removed value: -"object"
    • addedInput schema / properties / then
      Added value: +{
      +  "description": "The step an approval moves the task to (post, send): the task then waits To do at that step, for whoever starts it. Omit to have it come back to you to carry out.",
      +  "pattern": "^[a-z0-9][a-z0-9-_]{0,63}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / type
      Added value: +{
      +  "description": "What kind of work it is (x-reply, pitch-email): a free tag; your person's instructions can let you carry out a type on your own. On an existing task, set only when it has none; another type is refused.",
      +  "pattern": "^[a-z0-9][a-z0-9-_]{0,63}$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / task / properties / approvedRound
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "final": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "artifacts": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "artifact": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "id": {
      +                            "format": "uuid",
      +                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                            "type": "string"
      +                          },
      +                          "title": {
      +                            "anyOf": [
      +                              {
      +                                "type": "string"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "type": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "id",
      +                          "title",
      +                          "type"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "position": {
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 9007199254740991,
      +                    "type": "integer"
      +                  },
      +                  "version": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "id": {
      +                            "format": "uuid",
      +                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                            "type": "string"
      +                          },
      +                          "number": {
      +                            "exclusiveMinimum": 0,
      +                            "maximum": 9007199254740991,
      +                            "type": "integer"
      +                          }
      +                        },
      +                        "required": [
      +                          "id",
      +                          "number"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "position",
      +                  "artifact",
      +                  "version"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "text": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          },
      +          "required": [
      +            "text",
      +            "artifacts"
      +          ],
      +          "type": "object"
      +        },
      +        "number": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "number",
      +        "final"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / task / properties / approvedText
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • addedOutput schema / properties / task / properties / cut
      Added value: +{
      +  "description": "true when this answer was too large for a tool reply, so each round text it carries (the latest round's draft, edit and comment; the approved round's final text) was cut to its first 512 bytes. Read them whole with task_get.",
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / task / properties / decision
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": false,
      -      "properties": {
      -        "at": {
      -          "format": "date-time",
      -          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      -          "type": "string"
      -        },
      -        "by": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": false,
      -              "properties": {
      -                "account": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "alias": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    },
      -                    "id": {
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "alias"
      -                  ],
      -                  "type": "object"
      -                },
      -                "agent": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "harness": {
      -                          "anyOf": [
      -                            {
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "id": {
      -                          "anyOf": [
      -                            {
      -                              "format": "uuid",
      -                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "name": {
      -                          "anyOf": [
      -                            {
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "id",
      -                        "name",
      -                        "harness"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "isCaller": {
      -                  "type": "boolean"
      -                },
      -                "mine": {
      -                  "type": "boolean"
      -                }
      -              },
      -              "required": [
      -                "account",
      -                "agent",
      -                "mine",
      -                "isCaller"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "byInstructions": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": false,
      -              "properties": {
      -                "agent": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "account": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "alias": {
      -                          "anyOf": [
      -                            {
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "id": {
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "id",
      -                        "alias"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "agent": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "harness": {
      -                              "anyOf": [
      -                                {
      -                                  "type": "string"
      -                                },
      -                                {
      -                                  "type": "null"
      -                                }
      -                              ]
      -                            },
      -                            "id": {
      -                              "anyOf": [
      -                                {
      -                                  "format": "uuid",
      -                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                                  "type": "string"
      -                                },
      -                                {
      -                                  "type": "null"
      -                                }
      -                              ]
      -                            },
      -                            "name": {
      -                              "anyOf": [
      -                                {
      -                                  "type": "string"
      -                                },
      -                                {
      -                                  "type": "null"
      -                                }
      -                              ]
      -                            }
      -                          },
      -                          "required": [
      -                            "id",
      -                            "name",
      -                            "harness"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    },
      -                    "isCaller": {
      -                      "type": "boolean"
      -                    },
      -                    "mine": {
      -                      "type": "boolean"
      -                    }
      -                  },
      -                  "required": [
      -                    "account",
      -                    "agent",
      -                    "mine",
      -                    "isCaller"
      -                  ],
      -                  "type": "object"
      -                },
      -                "version": {
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 9007199254740991,
      -                  "type": "integer"
      -                }
      -              },
      -              "required": [
      -                "version",
      -                "agent"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "edited": {
      -          "type": "boolean"
      -        },
      -        "outcome": {
      -          "enum": [
      -            "approved",
      -            "skipped"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "outcome",
      -        "at",
      -        "by",
      -        "byInstructions",
      -        "edited"
      -      ],
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • addedOutput schema / properties / task / properties / latestRound
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "number": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "outcome": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "approved",
      +                "sent_back",
      +                "cancelled",
      +                "withdrawn",
      +                "replaced"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "number",
      +        "outcome"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / task / properties / step
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / task / properties / type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / task / required
      Previous value: -[
      -  "id",
      -  "status",
      -  "revision",
      -  "holder",
      -  "assignee",
      -  "reviewer",
      -  "decision",
      -  "approvedText",
      -  "result"
      -]New value: +[
      +  "id",
      +  "status",
      +  "revision",
      +  "type",
      +  "step",
      +  "holder",
      +  "assignee",
      +  "reviewer",
      +  "latestRound",
      +  "approvedRound",
      +  "result",
      +  "cut"
      +]
  6. Changed5 schema fields changed
    • changedInput schema / properties / workspaceId / description
      Previous value: -"The workspace: name it, or name parentId instead."New value: +"The workspace (its id or its slug): name it, or name parentId instead."
    • removedInput schema / properties / workspaceId / format
      Removed value: -"uuid"
    • addedInput schema / properties / workspaceId / maxLength
      Added value: +64
    • addedInput schema / properties / workspaceId / minLength
      Added value: +1
    • removedInput schema / properties / workspaceId / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  7. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=true), it discloses non-obvious behavior: each proposal opens a new round that closes any replaced proposal, a 50-round cap (TOO_MANY_ROUNDS), type-fill refusal (INVALID_FIELD), job-inherited defaults, and the onItsOwn auto-approval carve-out. It also warns that returned text is truncated to 512 bytes (cut is true). The density makes it harder to absorb, but the substance is there.

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

Conciseness2/5

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

The content is one dense run-on paragraph with heavy nested parentheticals, so rules interleave (job defaults, auto-approval, error codes) with no headings or ordering. It is front-loaded with the core trigger, but a reader must re-parse sentences to extract individual constraints. Substantial trimming and structure would materially improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter mutation with an output schema, the description covers the full lifecycle: creation vs. replacement, reviewer assignment, job/type/step inheritance, auto-approval conditions, the later verdict-reading flow, and error cases. Nothing an agent needs to invoke it and handle the result correctly appears missing.

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

Parameters5/5

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

Despite 87% schema coverage, the description adds real cross-parameter meaning: 'then' vs. its job default and its consequence (task waits To do vs. comes back to you), 'type' filling only when missing, 'job' by name and never with id, reviewer rules ('never you', person or agent:<handle>), and draftArtifacts' ordering and version pinning. These are semantics the schema does not convey.

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 description opens with a specific verb and resource — 'Before acting outside the workspace ... propose it' — and enumerates the proposal's parts (draft, approve verb, type, then, comment, context links). It also positions the tool against siblings by naming the follow-on calls (workspace_load and task_get for the verdict, task_complete to record the result), so an agent can tell what this tool does and does not do.

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 trigger conditions are given ('before acting outside the workspace (a post, an email, a booking), or to send a draft for review'), plus an explicit 'stop there' with the later-run workflow described. The revise-and-propose-again path on sent_back and the 'stop' on cancelled are stated, and replacing your own open proposal is distinguished from creating a new one.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.