Skip to main content
Glama
Knuckles-Team

Repository Manager

Artifacts

rm_build_artifacts

Publish named build artifacts to a shared checksummed cache, deduplicating identical builds across repositories and lanes to cut disk usage.

Instructions

Artifacts (rm_build). Content-addressed build broker for ANY repository (CONCEPT:RM-TASK-LEDGER).

Keyed by (repo, tree-sha, feature-set, toolchain-fingerprint, target-triple). The DEDUP is the value: N lanes asking for the same build today each pay for a full cargo/pnpm build into their own target-isolated/node_modules — measured at 21.7 GB across 4 duplicate directories after pruning. This tool publishes named artifacts to a shared, checksummed cache instead.

Honest degradation: a dirty tree or an unfingerprintable toolchain BUILDS — it never serves a possibly-stale artifact and never silently skips the cache as though it were consulted.

Co-location: this tool always passes colocated=True to the underlying reservation, because being inside this pinned MCP server process IS the proof of same-node execution that a bare CLI invocation cannot provide — fcntl leases do not arbitrate across nodes, and the lease files live under an NFS-exported path. Route build requests through this tool rather than a bare local invocation when you are not certain you are on the pinned node.

Arbitration is advisory (D-CP-8): an agent running cargo build directly bypasses this broker entirely.

Input Schema

NameRequiredDescriptionDefault
keyNoA cache key, for status/artifacts/explain.
hostNoFor 'request': dispatch to this REGISTERED, authorized remote host (its rm_remote_workers 'register_worker' host_id) instead of building locally. Requires a clean local tree (its HEAD sha + origin are what gets staged and built remotely) and does not yet retrieve artifacts back — see the returned result's 'note'. Omit to build locally (the default, always colocated=True).
specNoWhich declared build spec to use (.buildcache.yaml). Defaults to the repo's first.
repo_pathNoAny working tree of the target repository. Defaults to the server's cwd.
keep_recentNoFor gc: always keep this many most-recent cache entries.
max_age_daysNoFor gc: reclaim cache entries older than this (subject to keep_recent).
wait_timeoutNoSeconds 'request' waits on an in-flight build of the same key before building anyway.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.5.1

TDQS

C2.8/5.0
Behavior4/5

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

Adds substantial behavior beyond the annotations: honest degradation (dirty tree or unfingerprintable toolchain always BUILDS, never serves stale), co-location semantics (always colocated=True, fcntl leases don't arbitrate across nodes, NFS-exported lease path), and advisory arbitration. This is consistent with readOnlyHint=false (it publishes into a shared cache) and idempotentHint=false; no contradiction.

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

Conciseness2/5

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

Roughly 200 words organized under bold headers, but front-loaded with a concept declaration rather than the operation, and padded with background that does not aid selection or invocation (the '21.7 GB across 4 duplicate directories' measurement, 'D-CP-8' citation, lease/NFS mechanism details). Several sentences do not earn their place for an agent choosing a tool.

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?

An output schema exists so return values need not be described, but for a 7-parameter tool whose schema is shared across request/status/gc/artifacts verbs, the description leaves the actual artifacts action undefined and does not clarify which parameters apply here. That is a real gap for correct invocation.

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 100%, so the schema already documents key, host, spec, repo_path, keep_recent, max_age_days, and wait_timeout in detail. The description adds nothing parameter-level beyond the vague 'publishes named artifacts,' so the baseline 3 applies.

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

Purpose2/5

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

The description names the resource ('Artifacts (rm_build)', 'content-addressed build broker') but never states what this tool actually does — list cache artifacts for a key? publish them? The name and title are restated with conceptual framing rather than a specific verb, and the schema's own param hints ('for status/artifacts/explain', 'for gc', 'for request') suggest the operation is one of several, yet the description does not identify which.

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 gives one real routing rule: 'Route build requests through this tool rather than a bare local invocation when you are not certain you are on the pinned node,' which distinguishes it from a bare CLI call. However, it never distinguishes this tool from the obvious siblings rm_build_request, rm_build_status, rm_build_explain, and rm_build_gc, whose verbs are conflated in the same schema.

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

Deploy Server

Other Tools