Skip to main content
Glama

start_acceptance_loop

Run acceptance iterations that build, flash, and evaluate firmware against a loaded AcceptanceSpec. Stop on convergence, max iterations, or repeated failures; omit build/flash for evaluate-only.

Instructions

Start a bounded spec-to-silicon acceptance loop (Pillar C) for the loaded AcceptanceSpec. Each run_acceptance_iteration does one build → flash → run-to-state → run_acceptance pass; the loop stops on convergence, on max_iterations, or on a stall (same checks failing repeatedly). Omit build/flash to run evaluate-only iterations (you flash manually). Load a spec first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
buildNoOptional build_firmware config {kind, project|build_dir|directory, target, config, rebuild, command, cwd}.
flashNoOptional flash+run config {file_path, run_to (default 'main'), timeout_sec}.
sessionNoTarget session id (default 'default').
max_iterationsNoHard bound on iterations (default 10).
stall_patienceNoStop if the same checks fail this many times in a row (default 3).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.15.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only supply the safety profile (non-readonly, non-idempotent, non-destructive). The description adds real behavioral context beyond them: the three termination conditions (convergence, max_iterations, stall), what a stall means ('same checks failing repeatedly'), and the evaluate-only variant. It omits how to observe an in-flight loop or what the run emits, but this is strong disclosure for the core mechanics.

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

Conciseness5/5

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

Three sentences, purpose and scope front-loaded, then loop mechanics, then the optional-stage variant. No filler; every sentence carries actionable information.

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 complex, multi-object, no-output-schema tool with annotations covering safety, the description is nearly complete: it explains the loop, its stopping rules, the evaluate-only mode, and the spec prerequisite. It could go one step further by pointing to acceptance_loop_status for monitoring a running loop, but nothing required to invoke it correctly is missing.

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 baseline is 3; the description earns above-baseline credit by explaining the semantic effect of omitting build/flash (evaluate-only, manual flash) rather than just restating them. max_iterations and stall_patience semantics are left to the schema, where they are already documented.

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 and resource ('Start a bounded spec-to-silicon acceptance loop') and scopes it to the loaded AcceptanceSpec. It distinguishes itself from siblings by explaining that each iteration is a composition of build/flash/run-to-state/run_acceptance via run_acceptance_iteration, which no other sibling combines into a loop.

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?

Clear when-to-use context: run it against a loaded spec, and the explicit prerequisite 'Load a spec first.' It also documents a meaningful usage mode ('Omit build/flash to run evaluate-only iterations'). It stops short of naming the monitoring/alternative siblings (acceptance_loop_status) that an agent might reach for instead.

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