Skip to main content
Glama

write_report

Append a Core REPORT to record the outcome of a specific task attempt, without accepting or archiving the work.

Instructions

Append a Core REPORT for the explicit TASK attempt; reporting does not accept or archive work.

Input Schema

NameRequiredDescriptionDefault
bodyYes
resultYes
senderYes
recipientYes
attempt_idYes
referencesNo
report_kindNofinal
subject_refYes
workspace_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changedv4.0.5
    • addedInput schema / properties / attempt_id
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / body / description
      Removed value: -"Report body in Markdown."
    • removedInput schema / properties / priority
      Removed value: -{
      -  "default": "P2",
      -  "description": "FCoP priority; accepts ``P0``–``P3`` and aliases.",
      -  "type": "string"
      -}
    • removedInput schema / properties / recipient / description
      Removed value: -"Recipient role code (typically the PM)."
    • addedInput schema / properties / references
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / report_kind
      Added value: +{
      +  "default": "final",
      +  "type": "string"
      +}
    • removedInput schema / properties / reporter
      Removed value: -{
      -  "description": "Reporter role code (uppercase).",
      -  "type": "string"
      -}
    • addedInput schema / properties / result
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / sender
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / status
      Removed value: -{
      -  "default": "done",
      -  "description": "``done`` / ``in_progress`` / ``blocked``.",
      -  "type": "string"
      -}
    • addedInput schema / properties / subject_ref
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / task_id
      Removed value: -{
      -  "description": "Source task ID (e.g. ``TASK-20260423-001``).",
      -  "type": "string"
      -}
    • addedInput schema / properties / workspace_id
      Added value: +{
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "task_id",
      -  "reporter",
      -  "recipient",
      -  "body"
      -]New value: +[
      +  "workspace_id",
      +  "sender",
      +  "recipient",
      +  "subject_ref",
      +  "attempt_id",
      +  "body",
      +  "result"
      +]
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "type": "object",
      -  "x-fastmcp-wrap-result": true
      -}New value: +null
  2. First observedv3.2.4

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose the append-only nature and that the call does not accept or archive work, which is the key safety distinction. It says nothing about prerequisites (must the attempt exist?), permissions, idempotency of repeated appends, or failure modes for a 9-parameter mutation.

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?

A single front-loaded sentence with no filler; the scope ('Append') and the key constraint (not accept/archive) come first. Its brevity is efficient, though it borders on under-specified for the parameter surface.

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?

Nine parameters, seven required, zero schema descriptions, no annotations, no output schema — this is exactly where the description needs depth, and it provides one sentence. An agent cannot tell what belongs in body versus result or what report_kind values mean.

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

Parameters1/5

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

Schema description coverage is 0% across 9 parameters, so the description must compensate, yet it names no parameters. 'attempt' hints at attempt_id and 'TASK' hints at subject_ref, but body, result, sender, recipient, report_kind, references, and workspace_id are entirely unexplained.

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

Purpose4/5

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

States a specific verb and resource ('Append a Core REPORT') scoped to a TASK attempt, and distinguishes itself from state-changing siblings by saying reporting 'does not accept or archive work'. The jargon 'Core REPORT' and 'explicit TASK attempt' keep it from being fully unambiguous.

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?

Provides one useful exclusion ('does not accept or archive work'), implicitly pointing at submit_task/approve_task/archive_task as the alternatives for state change. It never positively says when to choose write_report over write_issue or write_review, so guidance remains inferred.

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