Skip to main content
Glama

handoff — agent swarm coordination

Reconcile task states

reconcile_tasks
DestructiveIdempotent

P-BACKFILL: a recovering runner re-asserts its WHOLE lane in ONE call after a sync outage (transitions during the dead window are otherwise lost — the board is "last successful PUT", not current truth). Each item is resolved by external_key (project-scoped) or task_id and set IDEMPOTENTLY to that exact state; an unknown key / wrong-project id / forbidden item fails ALONE (per-item error_code) without aborting the batch. MONEY-SAFE: only worker statuses (todo/in_progress/pending_verification) are settable — "verified"/"rejected" stay the verify-only money valve. result_status is the same additive A4/B3 downstream metadata as verify_task (never touches settlement/payout). AUTH — SIGN THE REQUEST. Ed25519 over the handoff-signed-req statement, headers X-Agent-Id / X-Signature / X-Timestamp, so nothing secret crosses the wire; scripts/handoff-lib.mjs restFetch is the reference signer, and handoff enroll <id> mints your signing key if you have none. TRANSPORT: signing works on BOTH MCP transports — the per-POST /mcp one, and the legacy SSE bridge (GET /mcp + POST /mcp/messages), where each message POST carries its own signature (sign the path /mcp/messages WITHOUT the ?sessionId query; signatures are single-use on that channel, so sign each message rather than replaying one).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tasksYesthe lane to re-assert
request_idYesproject scope — all items reconcile within this project

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations cover the safety profile (destructive, idempotent, not read-only), yet the description adds substantial behavior beyond them: per-item failure isolation with error_code and no batch abort, the idempotent exact-state set, the money-safe restriction to worker statuses only, and that result_status never touches settlement/payout. It also discloses mandatory Ed25519 signing and transport-specific quirks.

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?

Front-loaded with the 'P-BACKFILL' purpose before auth and transport detail, and uses capped labels to segment concerns. The transport/signing passage is dense and lengthy, but nearly every clause carries operational information an agent needs to sign and send the call correctly.

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?

For a destructive, auth-gated batch mutation with no output schema, the description covers purpose, partial-failure handling, money-safety limits, signing, and both transports. It references per-item error_code but does not sketch the success response shape, leaving a minor gap given no output schema exists.

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% (baseline 3), and the description adds real meaning: each item resolves by external_key (project-scoped) OR task_id and is set idempotently to that exact state, and request_id defines the project scope for all items. It does not elaborate enum value semantics beyond what the schema shows, so it sits above baseline but not at ceiling.

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?

States a specific verb+resource (reconcile/re-assert task states) and precisely scopes it as a batch backfill of an entire lane in one call after a sync outage, with the reason the board needs it ('last successful PUT', not current truth). Clearly distinguished from the sibling verify_task and update_task by naming the verify-only money valve.

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?

Gives a concrete trigger ('after a sync outage', 'recovering runner re-asserts its WHOLE lane in ONE call') and routes the verified/rejected transitions to the verify-only valve, implying when NOT to use this tool. It stops just short of an explicit when-not/alternative list, but the context is unambiguous.

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.

Resources