Skip to main content
Glama

Update daily draft

update_daily_draft

Create a new immutable daily draft revision after validating the current version, using PENDING to edit or reopen and REJECTED to reject the draft.

Instructions

Create a new immutable revision after checking the current version. Use REJECTED to reject and PENDING to edit or reopen.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "draftId": "<draftId>",
      "expectedVersion": "<expectedVersion>",
      "status": "<status>",
      "summary": "<summary>",
      "workItems": "<workItems>",
      "nextActions": "<nextActions>",
      "sourceEventIds": "<sourceEventIds>",
      "sourceFingerprint": "<sourceFingerprint>"
    },
    "name": "update_daily_draft"
  }
}

Input Schema

NameRequiredDescriptionDefault
statusYes
draftIdYes
summaryYes
workItemsYes
nextActionsYes
sourceEventIdsYes
expectedVersionYes
sourceFingerprintYes

Output Schema

NameRequiredDescriptionDefault
okYes
codeNo
draftNo
messageNo
revisionsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changedv0.5.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / draftId / pattern
      Added 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)$"
    • addedInput schema / properties / expectedVersion / maximum
      Added value: +9007199254740991
    • removedInput schema / properties / workItems / items / additionalProperties
      Removed value: -false
    • changedOutput schema / properties / draft / properties / approvedAt / anyOf
      Previous value: -[
      -  {
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "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"
      +  }
      +]
    • changedOutput schema / properties / draft / properties / approvedVersion / anyOf
      Previous value: -[
      -  {
      -    "exclusiveMinimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / draft / properties / createdAt / pattern
      Added value: +"^(?:(?:\\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))$"
    • addedOutput schema / properties / draft / properties / draftId / pattern
      Added 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)$"
    • addedOutput schema / properties / draft / properties / updatedAt / pattern
      Added value: +"^(?:(?:\\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))$"
    • addedOutput schema / properties / draft / properties / version / maximum
      Added value: +9007199254740991
    • removedOutput schema / properties / revisions / items / $ref
      Removed value: -"#/properties/draft"
    • addedOutput schema / properties / revisions / items / additionalProperties
      Added value: +false
    • addedOutput schema / properties / revisions / items / properties
      Added value: +{
      +  "approvalMethod": {
      +    "anyOf": [
      +      {
      +        "enum": [
      +          "MCP_ELICITATION",
      +          "EXPLICIT_CONFIRMATION_FALLBACK"
      +        ],
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "approvalWarnings": {
      +    "items": {
      +      "enum": [
      +        "SOURCE_CHANGED_AFTER_DRAFT"
      +      ],
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "approvedAt": {
      +    "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"
      +      }
      +    ]
      +  },
      +  "approvedVersion": {
      +    "anyOf": [
      +      {
      +        "exclusiveMinimum": 0,
      +        "maximum": 9007199254740991,
      +        "type": "integer"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "createdAt": {
      +    "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"
      +  },
      +  "draftId": {
      +    "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"
      +  },
      +  "nextActions": {
      +    "items": {
      +      "maxLength": 1000,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "maxItems": 100,
      +    "type": "array"
      +  },
      +  "sourceEventIds": {
      +    "items": {
      +      "pattern": "^[0-9a-f]{64}$",
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  "sourceFingerprint": {
      +    "pattern": "^[0-9a-f]{64}$",
      +    "type": "string"
      +  },
      +  "status": {
      +    "enum": [
      +      "PENDING",
      +      "APPROVED",
      +      "REJECTED"
      +    ],
      +    "type": "string"
      +  },
      +  "summary": {
      +    "maxLength": 20000,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "timezone": {
      +    "type": "string"
      +  },
      +  "updatedAt": {
      +    "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"
      +  },
      +  "version": {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  "workDate": {
      +    "type": "string"
      +  },
      +  "workItems": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "details": {
      +          "maxLength": 10000,
      +          "type": "string"
      +        },
      +        "repositoryId": {
      +          "pattern": "^[0-9a-f]{64}$",
      +          "type": "string"
      +        },
      +        "sourceEventIds": {
      +          "items": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "minItems": 1,
      +          "type": "array"
      +        },
      +        "title": {
      +          "maxLength": 500,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "verificationStatus": {
      +          "enum": [
      +            "REMOTE_MATCH",
      +            "UNCONFIRMED"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "repositoryId",
      +        "title",
      +        "details",
      +        "sourceEventIds",
      +        "verificationStatus"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 100,
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +}
    • addedOutput schema / properties / revisions / items / required
      Added value: +[
      +  "draftId",
      +  "workDate",
      +  "timezone",
      +  "summary",
      +  "workItems",
      +  "nextActions",
      +  "sourceEventIds",
      +  "sourceFingerprint",
      +  "version",
      +  "status",
      +  "createdAt",
      +  "updatedAt",
      +  "approvedAt",
      +  "approvedVersion",
      +  "approvalMethod",
      +  "approvalWarnings"
      +]
    • addedOutput schema / properties / revisions / items / type
      Added value: +"object"
  2. First observedv0.4.1

TDQS

B3.1/5.0
Behavior4/5

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

The annotations only declare that this is a non-idempotent, non-destructive write. The description adds real behavioral information beyond that: revisions are immutable (prior content is preserved as history), and the write is guarded by a version check implied by "after checking the current version." It still doesn't say what happens on a version mismatch or whether the caller must re-fetch, but the added semantics are substantive.

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

Conciseness4/5

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

Two short sentences with the core mechanism (immutable revision with version check) front-loaded and the enum guidance second. No filler, though the second sentence reads as a fragment and could be phrased more cleanly.

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

Completeness2/5

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

This is an 8-required-parameter mutation with an optimistic concurrency token and content fingerprint, and the description explains almost none of the setup the caller needs: how to obtain draftId and expectedVersion, what the fingerprint represents, or what failure looks like. An output schema exists so return values needn't be covered, but the input-side guidance is far too thin for a tool of this complexity.

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

Parameters2/5

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

Schema description coverage is 0% across 8 required parameters, so the description has to carry the burden. It only clarifies the status enum values (REJECTED vs PENDING) and leaves expectedVersion, sourceFingerprint, sourceEventIds, workItems, and draftId entirely unexplained in terms of where they come from or what constraints matter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the operation as creating "a new immutable revision," which conveys the append-only update model, but it never ties that back to the tool name's object (the daily draft) or distinguishes the action from the sibling save_daily_draft. An agent gets the gist but must infer which resource is being revised and how this differs from the other write tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"after checking the current version" implies the read-then-write flow, and the status sentence gives guidance on which enum value means reject vs edit/reopen. However, there is no explicit statement of when to choose this over save_daily_draft, nor any precondition such as fetching the draft first to obtain expectedVersion.

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