Skip to main content
Glama

job_finish

Closes a running or queued job by recording its status and a validated close-out summary (what, why, learned, next), rejecting incomplete submissions.

Instructions

Close out a running/queued job. Gate: summary must carry what, why, learned and next, each non-empty and <=600 chars; otherwise the call is rejected with the offending field names. status='inconclusive' is the honest close-out for a run that ended without a pass/fail verdict (a step-gated demo the user stopped answering) — it is NOT a pass.

Input Schema

NameRequiredDescriptionDefault
job_idYesJob id from job_enqueue/job_list, e.g. 'j-1a2b3c4d'
statusYespassed | failed | error | cancelled | inconclusive
summaryYesClose-out summary, ALL FOUR required and <=600 chars each: {what, why, learned, next}

Output Schema

NameRequiredDescriptionDefault
idYes
kindYes
linksNo
phaseNo
titleYes
eventsNo
originNoWho asked for this run (human | agent | driver | eval | probe | warmup) — scopes the learning loopagent
paramsNoIntake: purpose, expected, caps, flags, pending_shot, ...
statusYes
targetYes
workerNo
host_idNoNULL = not yet assigned (host_choice='ask')
summaryNoPresent once the job is closed out
web_urlNoAbsolute URL of this job's page in the web UI
positionNo
artifactsNo
created_atYes
project_idNo
started_atNo
updated_atYes
crash_countNocrash-level events (the queue board flags these)
error_countNoerror-level events (the queue board flags these)
finished_atNo
current_stepNoThe step awaiting a verdict (newest prompt event + whether it is answered)
requested_byNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

The annotations only say readOnly=false and destructive=false. The description adds the validation rule: the call is rejected unless all four summary fields are non-empty and at most 600 characters, and the error names the offending fields. That is real behavioral detail beyond the annotations, but the description does not say what state the job ends in, whether the call can be retried, or that an idempotentHint of false means a second close-out fails.

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?

It is three short sentences and front-loads the core action before the validation gate. Each sentence carries information, though the parenthetical example of a stopped demo is slightly verbose for the space it takes.

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?

An output schema exists, so return values need no prose, and the description covers the rules of the one mutation this tool performs. It explains the required summary shape, what happens on rejection, and the difference between inconclusive and passed, so nothing essential is missing for a correct call.

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

Parameters4/5

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

Schema coverage is 100%, so the field descriptions already define job_id, status and the summary object. The description tells the caller more than the schema alone: the four summary keys are each subject to a non-empty and length check, and violation rejects the call; and it explains what status='inconclusive' actually means, which the schema only lists as an enum value.

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?

The description opens with a specific verb and resource: 'Close out a running/queued job.' That distinguishes it from job_cancel, job_verdict and job_restatus by implication, but the description never names those siblings, so the agent must infer the boundary. Purpose itself is unambiguous.

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

Usage Guidelines4/5

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

It gives a clear condition for the 'inconclusive' status: a run that ended without a pass/fail verdict, such as a step-gated demo the user stopped answering, and explicitly says this is not a pass. How this tool relates to siblings such as job_verdict or job_cancel is not stated, so the caller must infer when to use this tool rather than one of those.

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