Skip to main content
Glama

job_submit

Destructive

Submits a job to run ordered command or shell steps on a GitHub Codespace, checking out a specific commit in a fresh worktree and freezing artifacts with SHA-256. Does not upload local changes.

Instructions

Persist and submit an asynchronous job: fetch the pushed ref on the bound Available Codespace, verify the full commit is reachable, check it out in a fresh worktree and run ordered command/shell steps (cleanup steps always run). Declared artifacts are frozen with SHA-256 after the main steps, before cleanup. Same requestId and plan returns the same job; check data.submission and data.status. Does not upload local changes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
stepsYes
localeNoen
sourceYes
artifactsNo
projectIdYes
requestIdYes
timeoutSecondsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0-alpha.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations declare a destructive, open-world write, and the description adds substantial detail beyond them: cleanup steps always execute, artifacts are frozen with SHA-256 after the main steps but before cleanup, execution happens in a fresh worktree derived from the pushed ref, the job is idempotent per requestId, and it does not upload local changes. An agent learns real execution-order and side-effect semantics here.

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 a densely packed paragraph with no filler sentences; each clause (worktree ordering, artifact hashing, idempotency, no local upload) carries information. The first sentence is quite long and runs several distinct facts together, which slightly hurts scanability, but nothing is wasted.

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

Completeness4/5

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

An output schema exists, and the description correctly points to data.submission and data.status instead of re-explaining return values. Combined with the workflow ordering and idempotency guarantees, this is close to complete for a complex, destructive submit tool; only failure-mode behavior and the codespace binding/auth prerequisite are left implicit.

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

Parameters3/5

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

Schema description coverage is 0% across 7 parameters including nested objects, so the description carries the burden. It does explain the hardest-to-guess semantics: requestId idempotency ('same requestId and plan returns the same job'), artifact freezing with SHA-256 after main steps, and cleanup steps always running. However, it says nothing about role, kind, optional, cwd/env, timeoutSeconds, locale, or the command-vs-shell step variants, leaving much of the schema unexplained.

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 gives a specific verb ('persist and submit') plus resource ('an asynchronous job') and then spells out the actual mechanics: fetch the pushed ref on the bound Available Codespace, verify commit reachability, check out into a fresh worktree, run ordered steps. This is clearly distinguishable from the read-side siblings job_get, job_logs, and job_cancel.

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?

It implies when this tool is the entry point (submit a job against a bound codespace) and gives one exclusion ('Does not upload local changes'), but never names alternatives such as job_get for polling or job_cancel for stopping, and gives no prerequisites for the 'bound Available Codespace' state. Usage is inferable rather than stated.

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