Skip to main content
Glama

Loop Factory

Make AI agents prove they got better.

An agent says it improved a workflow. Loop Factory freezes the old version, evaluates the challenger against both the baseline and an irrelevant sham, re-opens execution receipts and evidence from disk, and leaves promotion under operator control. The worker proposes; the verifier decides.

local-first | zero dependencies | Node >=18 | MCP over stdio

Loop Factory Campaign Console

Related MCP server: Recursive Thinking MCP Server

No-paid judge path

From a fresh checkout:

git clone https://github.com/alexalexalex222/Loop-Factory-mcp-public.git
cd Loop-Factory-mcp-public
npm run verify:submission

No model account, API key, network call, or package install is required. The command emits deterministic JSON and exits nonzero if any gate fails. It:

  1. re-derives the July 19 causal canary from its public raw transcripts, normalized results, plans, schemas, and SHA-256 receipts; and

  2. integrity-checks the privacy-safe July 20 production frontier packet, including its independent verifier output, procedures, measured summary, screenshots, and pinned manifest.

See docs/JUDGE_GUIDE.md for the shortest review path.

Fresh production result

The final July 20 run mined a real workflow, measured the frozen original three times, generated two substantive challengers, measured each challenger three times, deep-reverified both wins, and queued both for operator review.

Procedure

Quality

Mean CLI tokens

Quality delta

Cost delta

State

Original

0.6190

61,270.3333

baseline

baseline

frozen

H1: explicit frontier verdicts

1.0000

60,180

+0.3810

-1.78%

rev-001 pending

H2: authority and reverification gates

1.0000

60,193.3333

+0.3810

-1.76%

rev-002 pending

The run used 12 exact gpt-5.6-sol high-reasoning Codex calls through authenticated ChatGPT OAuth, zero retries, 12 isolated workspaces, 724,453 CLI-reported tokens, and 34/34 clean artifact rehashes. The independently invoked run verifier returned PASS with publicationEligible=true.

No promotion was recorded. H1 is the measured recommendation, not an approval. See the production-frontier-20260720 packet.

Portable causal canary

The tracked public packet re-verifies the persisted July 19, 2026 causal canary:

Check

Re-derived result

Calls

1 proposal + 15 evaluations

Route

exact gpt-5.6-sol; explicit-model authority

Execution

16 zero exit codes; zero retries

Arms

5 baseline + 5 challenger + 5 sham

Causal result

challenger beat paired baseline 5/5

Negative control

sham wins 0/5

Stability controls

0 regressions

Token receipts

441,627 CLI tokens re-derived from raw transcripts

Promotion

disabled; no promotion recorded

Experiment

experimentValid=true

This is evidence of causal movement, not complete correctness. Baseline and sham target quality were 0; challenger replicates reached 0.3333 or 0.6667, never 1.0.

Architecture

agent proposal
    |
frozen baseline + benchmark + irrelevant sham
    |
blinded baseline / challenger / sham evaluations
    |
raw transcripts + normalized results + SHA-256 receipts on disk
    |
independent re-verification and causal gates
    |
operator-controlled promotion

The verifier checks outcomes and persisted end state, not whether the worker followed one preferred reasoning path.

Install and run

Loop Factory has no production dependencies:

npm test
npm run verify
npm run demo

Point an MCP host at src/server.mjs:

{
  "mcpServers": {
    "loop-factory": {
      "command": "node",
      "args": ["/path/to/Loop-Factory-mcp-public/src/server.mjs"],
      "env": { "SUPER_LOOP_HOST": "codex" }
    }
  }
}

SUPER_LOOP_HOME is always authoritative. Existing <package>/.super-loop state remains discoverable and is never moved automatically. A source checkout keeps that historical default; a fresh packed installation uses the writable per-user location listed below. The selected path and its source are printed at server startup.

Platform

Fresh installed state path

macOS

~/Library/Application Support/Loop Factory

Linux

$XDG_STATE_HOME/loop-factory, or ~/.local/state/loop-factory

Windows

%LOCALAPPDATA%\Loop Factory

The autonomous driver is opt-in. Without the exact value SUPER_LOOP_ALLOW_EXEC=1, Loop Factory does not launch workers.

POSIX shell:

SUPER_LOOP_ALLOW_EXEC=1 node scripts/run-campaign.mjs --config examples/campaign.json --stop-file ./STOP
touch ./STOP

PowerShell:

$env:SUPER_LOOP_ALLOW_EXEC = "1"
node scripts/run-campaign.mjs --config examples/campaign.json --stop-file .\STOP
New-Item -ItemType File .\STOP

Windows Command Prompt:

set "SUPER_LOOP_ALLOW_EXEC=1"
node scripts\run-campaign.mjs --config examples\campaign.json --stop-file .\STOP
type nul > .\STOP

Start the local dashboard with node scripts/dashboard-server.mjs; pass --home "<path with spaces>" when selecting state explicitly. Run npm run package:smoke to pack, install into a clean path containing spaces, handshake the installed MCP, verify all tools and loop hashes, and round-trip isolated state.

On Windows, JSON configuration paths need escaped backslashes (or forward slashes), for example:

{
  "command": "node",
  "args": ["C:\\Users\\Ace\\Loop Factory\\src\\server.mjs"],
  "env": { "SUPER_LOOP_HOST": "codex" }
}

Core platform evidence

CI PASS means the flow passes the public repository's Portability workflow on GitHub-hosted runners. Provider authentication is a separate boundary.

OS

Core package/install

MCP stdio

Persistence

Dashboard

Autonomous supervisor

Fake executor

Authenticated Claude CLI

Authenticated Codex CLI

Authenticated OpenCode routes

macOS

CI PASS

CI PASS

CI PASS

CI PASS

CI PASS

CI PASS

not retested here

one live executor audit

not verified

Ubuntu

CI PASS

CI PASS

CI PASS

CI PASS

CI PASS

CI PASS

not verified

not verified

not verified

Windows

CI PASS

CI PASS

CI PASS

CI PASS

CI PASS

CI PASS

not verified

not verified

not verified

The workflow also checks Node 18, 22, and 24 on Ubuntu, matching the existing node >=18 package declaration. Profiles in hosts/registry.json remain labeled independently from core OS support.

Optional live path

Judges with GPT-5.6 Sol access can run:

npm run judge:gpt56-sol

This pins gpt-5.6-sol, refuses fallback, and runs three controlled enforcement fixtures: PHASE_SKIP, MODEL_REPORTED_METRIC, and SELF_PROMOTION. Those are adversarial regression prompts, not claims of spontaneous model behavior.

What changed on July 18, 2026

Build Week added the exact GPT-5.6 Sol route and invocation receipts, the one-command live judge kit, the Campaign Console, and the controlled adversarial fixtures above. The July 19 causal canary added paired baseline/challenger/sham evidence and fresh-checkout re-verification. The July 20 production frontier run then demonstrated the complete mine-to-measure-to-review workflow on a real mined procedure without weakening operator-owned promotion.

Evidence index


For developers

Engineering detail: tools, host matrix, trajectory export, layout, and block codes.

Host compatibility

Loop Factory is MCP-first, with the continuous driver chosen per host from hosts/registry.json, and scripts/run-campaign.mjs as the universal fallback.

Host

Driver family

Tier

Continuous driver

Verified

Codex

goal_progress

1

/goal

Claude Code

goal_progress

1

/goal (operator-stop objective)

ZCode

goal_progress

1

/goal (mirrors Codex — confirm)

⚠︎

OpenCode

plugin_goal

1

/goal (requires a goal plugin)

⚠︎

Cursor

mcp_reactive

2

none — continuation rules snippet

⚠︎

Kilo Code

mcp_reactive

2

none — rules snippet (CLI fork = tier 1 with a goal plugin)

⚠︎

OpenClaw

auto_continue

2

config (autoContinue / heartbeat)

⚠︎

Factory Droid

orchestrator

2

Super Loop runs inside a Mission worker

⚠︎

Hermes

internal_loop

3

its own loop — call tools each turn

⚠︎

MiniMax Mini-Agent

internal_loop

3

its own loop, or the CLI fallback

⚠︎

anything else

cli_autonomous

3

super-loop-run (universal fallback)

Three tiers (per hosts/registry.json):

  1. Native goal (Codex, Claude Code, ZCode, OpenCode+plugin) — engage /goal with an operator-stop objective.

  2. MCP + continuation contract (Cursor, Kilo IDE, OpenClaw, Factory Droid) — no reliable continuous slash command; ship the continuation rules snippet.

  3. Internal loop or CLI (Hermes, Mini-Agent, super-loop-run) — host owns its loop, or drive headless with the CLI.

⚠︎ verified:false entries are modeled from the design — confirm the exact command in your build. host_capability_preflight returns the resolved host profile (tier, driverFamily, setupHint).

Why this exists

Drop a 300+ line loop into a model's context and it may ingest the whole thing, skip the structure, and treat an unverified argument as a test. Loop Factory fixes that with hard mechanics:

  1. Ask-once — starts with a brief explanation plus a few short questions once:

    • the goal;

    • the pathimprove a loop you already run, discover/find a loop (optionally scouting a public loop library), or mine your whole history (deep);

    • the loop or domain to start from;

    • corpus scope — your whole session history or a set number of loops, and best-first vs in-order (asked with an up-front warning that a run can take hours, days, or weeks depending on how deep it mines);

    • what "better" means (this becomes the frozen benchmark);

    • any task-specific limit;

    • which models to use (primary, optional test/builder/judge routes — press enter for defaults, or say any model to disable the banlist for this run);

    • and a final deeper-explanation offer, honored in the same response.

    You choose the models at init (defaults: claude-opus-4-8 primary, builders Opus 4.8 / GLM 5.2, standard frontier test set). The supervisor still owns measurement, integrity, and promotion — it never asks about promotion mode or benchmark policy. Afterward it does not ask again or mark the campaign complete by itself. A fresh run also carries a cold-start notice: don't resume a prior campaign or assume a path from memory — infer only from this message and the answers (pass a runId to resume on purpose).

  2. Phase-gated streaming — holds the loop inside the MCP and hands you the next section only after the current one has recorded evidence. No 1k-line dump.

  3. Benchmark-first — the baseline is hash-locked and the scorecard is frozen before any challenger. Model self-reported metrics never count.

  4. Hypothesis engine — full tests need 3–5 hypotheses on routes allowed by the run's modelPolicy banlist. Default banlist rejects haiku/mini/nano/lite/prior-gen (weak models produce noisy campaigns); say any model at init to turn the banlist off for that run. One no-improvement run is never "perfect".

  5. Promotion gate — promotion requires a tool-measured, deep-reverified result that moves the quality/cost frontier past threshold. Otherwise: BLOCKED.

Two surfaces share one engine: the reactive MCP (a host calls its tools — the in-conversation hook) and the autonomous driver (super-loop-run CLI / run_campaign tool) that drives the whole campaign itself and only stops on the operator stop-file. The whole point: a model cannot promote, upgrade, or call a loop "perfect" from reasoning alone — every decision is hooked through a tool that demands tool-measured artifacts on disk, and the operator is the only stop condition.

Built fresh, zero dependencies, runs on plain Node ≥18. The full private 345-line Strip Miner and the full private 75-line Loop-de-loop (Loop 2) live inside the supervisor, byte-identical to source and hash-locked, streamed one section at a time.


The bundled loops (hash-locked)

id

file

lines

sha256

trigger

strip-miner

loops/strip-miner.txt

345

5270d691…ed9ec9

/loop strip-miner (The Strip Miner Loop / cross-agent source miner)

loop-de-loop

loops/loop-de-loop.md

75

70090e03…022b44

/loop loop-de-loop (Loop 2 / improve an approved loop)

These are the local big sources — the operator's full private cross-agent Strip Miner (with the old pause/complete language patched into checkpoint/continue semantics), not the short public miner. The server refuses to start, and the test suite fails, if either file's hash or line count drifts — so the short public miner can never be silently substituted.

Add your own loops (local loop library)

Users add their own loops through a tool, not by hand-editing source:

loop_register { id:"my-loop", title:"My Loop", content:"<full loop text>" }   → hash-locked, sectionized, persisted locally
loop_library                                                                   → lists mandated (hash-locked) + your custom loops
loop_start  { loop:"my-loop" }                                                 → streams it phase-gated, exactly like the mandated loops

Custom loops are sha256 hash-locked (write-once per version; overwrite:true makes a new version), get a safe id (no path traversal), persist under SUPER_LOOP_HOME/custom-loops/, and cannot collide with or overwrite the mandated Strip Miner / Loop-de-loop. They stream through the same phase gate. Nothing leaves your machine.


Tools (29)

tool

what it enforces

run_campaign

autonomous supervisor (opt-in SUPER_LOOP_ALLOW_EXEC=1) — drives the mine→improve queue, validates every worker, measures/reverifies challengers, and keeps review nonblocking. Each changed work epoch gets at most one empty mining pass: empty or duplicate output returns idle-no-new-work (NOT completion) instead of repeating paid calls. The standalone CLI stays alive in zero-inference idle and resumes from its target inbox. maxBatches is a safety cap, not completion.

initialize_loop_run

ask-once (brief + a few short Qs: goal, path picker (improve / discover / mine + library scout), the loop/domain, corpus scope + order, what "better" means, a hard limit, which models (enter = defaults, any model = banlist off), deeper-explanation; promotion mode / standing guarantees stay tool-owned); persists state.config.modelPolicy; stores every user message with a sha256 hash; surfaces the stop-condition notice, the cold-start notice (fresh run), and the native-continuation notice (Claude/Codex /goal; /loop = Claude's polling alternate) up front; returns a host-aware hostSetup with a path-aware step 3; honors the "deeper explanation" answer in the same response

loop_register

add your own loop to the local MCP: hash-lock, safe id, sectionize, persist locally; never overwrites a mandated loop

loop_library

list mandated (hash-locked) + custom local loops

skill_fetch

retrieve skill knowledge for the current task — plan mode returns an index of matching skills (titles, purposes, token estimates) to pick from; section mode fetches one section body by (skill_id, section_id); default partition working, reference is opt-in/held-out only

loop_start

begin phase-gated streaming of any loop (mandated or custom); returns section 0 only

request_next_phase / loop_next

next section iff the current one has evidence, else PHASE_SKIP

observation_record

lightweight phase evidence

artifact_record

persist a raw artifact + sha256; role:"baseline" hash-locks (write-once); measurement makes the MCP derive a tool-computed measurement from the bytes; pass explicit content (sourcePath reads refused)

benchmark_propose / benchmark_select

propose scorecards (≥1 value dim, ≥1 cost dim, ≥1 case, optional deterministic oracle) and freeze one; worker proposals carry benchSource:"worker" (default) and benchPartition:"harvest"

benchmark_freeze_maker

bench-maker only — freeze a scorecard directly with benchSource:"maker" (bypasses worker benchmark_propose); defaults benchPartition:"gate" for held-out eval

export_trajectories

read-only export of recorded tool actions as Hermes JSONL with supervisor verdict labels; refuses gate-partition runs

benchmark_run

set the tool-computed baseline bar; a caller-reported measurement is rejected

register_hypotheses

Standard mode: 3–5 hypotheses. Strict real-test mode: exactly two substantive, supervisor-ID-bound hypotheses for one finding. Benchmark-first; rejects banned routes and shape-only placeholders.

test_hypothesis

one full test = 3–5 frontier agents, each tool-computed; aggregates vs the bar; reports quality authority

execute_full_test

opt-in (SUPER_LOOP_ALLOW_EXEC=1) — the supervisor itself launches 3–5 allowlisted workers (native executables use direct shell-free execFile; allowlisted Windows .cmd/.bat shims use a narrow cmd.exe adapter; prompt always travels via stdin), captures output, parses real token usage, and gates on the tool-captured bytes; off by default → EXEC_DISABLED

reverify_run

re-derive metrics from the sealed raw bytes and confirm they reproduce (a tampered number cannot survive)

promotion_request

promote only on measured + reverified frontier movement; a quality win the MCP can't tool-verify routes to the dashboard (QUALITY_UNVERIFIED)

cycle_decision_request

the supervisor hook — a worker proposes a transition packet (promote/advance_phase/change_baseline/change_benchmark/saturate); only a supervisor-accepted transition is progress; completion/stop intents refused

report_saturation

mark a lane saturated → supervisor auto-transitions to the next lane (Strip Miner → Loop-de-loop); never pauses/stops

campaign_status

read-only lane/target queue, auto-transitions, 30-batch retirement + 10–15 advisory accounting, active modelPolicy, pending dashboard review (never blocks)

continue_run

records the next lane + first concrete action; it does not clear the obligation until a real progress tool runs

human_review_request

queue/list Approve/Sludge items only; model-callable resolve is blocked

update_dashboard

render the polished always-on local dashboard with the stop-condition notice

report_export

reproducible markdown campaign report

host_capability_preflight

local report of which frontier-agent CLIs are installed on PATH (filesystem stat only, never executes, not SOTA/web research) plus the resolved host profiledriverFamily, tier, setupHint, and the full host matrix when SUPER_LOOP_HOST is unknown

host_runtime_detect

advisory guess of which host runtime the agent is in, from which MCP config files exist on disk (per the host registry); read-only existence check — never reads file contents or mutates config; SUPER_LOOP_HOST is authoritative when set

Block codes you will see

All 42 codes from src/constants.mjs BLOCK (runtime vocabulary):

NOT_INITIALIZED · UNKNOWN_RUN · NO_ACTIVE_LOOP · NOT_STARTED · PHASE_SKIP · UNKNOWN_LOOP · BASELINE_FIRST · BASELINE_LOCKED · BASELINE_BAR_FIRST · BASELINE_PLACEHOLDER · BASELINE_TOO_SHALLOW · BASELINE_AUTHOR_FORBIDDEN · BENCHMARK_FIRST · BENCHMARK_FROZEN · WEAK_BENCHMARK · HYPOTHESIS_COUNT · BANNED_ROUTE · UNKNOWN_HYPOTHESIS · FULLTEST_AGENTS · MODEL_REPORTED · NO_SCORE_MATRIX · NOT_REVERIFIED · BELOW_THRESHOLD · BELOW_FLOOR · STAGED_TRADEOFF · OPERATOR_IS_STOP · DASHBOARD_ONLY · MEASUREMENT_AUTHORITY · QUALITY_UNVERIFIED · PROMOTION_NEEDS_APPROVAL · PROMOTION_REJECTED · LOOP_EXISTS · LOOP_SOURCE · NO_ACTIVE_LANE (reserved — not currently emitted) · BUILDER_ROUTE · EXEC_DISABLED · EXEC_FAILED · ROUTE_UNSPAWNABLE · MANUAL_PROVENANCE_REQUIRED · INTEGRITY_GATE · TARGET_SATURATED_NEEDS_NEW_TARGET · BAD_INPUT

Live execution + autonomous harness (opt-in)

By default the server never executes commands (audited posture). Set SUPER_LOOP_ALLOW_EXEC=1 to let Loop Factory own benchmark execution end-to-end. Native executables stay on direct, shell-free execFile semantics. An allowlisted Windows .cmd or .bat npm shim alone goes through the dedicated cmd.exe adapter; % expansion syntax is refused before launch. The prompt remains stdin data and never reaches argv or the command string. On a Windows shim timeout, Loop Factory kills the ordinary descendant process tree before returning TIMEOUT; unconfirmed cleanup fails closed. A failed/timed-out/non-allowlisted launch is an invalid batch and does not count toward retirement.

The autonomous driver sits on top of that — the difference between "a supervisor you call" and "a harness that drives itself":

SUPER_LOOP_ALLOW_EXEC=1 node scripts/run-campaign.mjs --config campaign.json --stop-file ./STOP

It runs the whole loop unattended (intake → mine → improve targets → validate every worker → bank Stones → advance/retire → re-mine) and only stops when you create the stop-file. Existing queued targets continue even when reviews are pending. When a mining pass yields no novel candidate, the CLI enters a zero-inference idle state: the dashboard and decision inbox stay live, but no model is called again until new work arrives.

Queue new work atomically at <home>/runs/<runId>/inbox-targets.json:

{
  "runId": "your-run-id",
  "targets": [
    {
      "kind": "improve",
      "loop": "loop-de-loop",
      "baselineContent": "<complete current procedure>"
    }
  ]
}

The raw inbox is SHA-256 recorded and archived as applied/rejected/invalid before execution. The same supervisor logic powers the bounded run_campaign MCP call; because an MCP call cannot remain parked forever, that surface returns the nonterminal idle checkpoint for its host to resume.

Workers run on the real CLIs via stdin (claude -p --output-format json, codex exec --json) — the prompt never touches argv (no injection), and the real answer text + token usage are extracted for benchmarking. Benchmark modes: oracle (deterministic → tool-measured, reverified, then queued for mandatory operator Approve — never self-ships) and judge (an independent judge on a trusted builder/gating route from the active modelPolicy — defaults Opus/GLM — scores baseline-vs-challenger real outputs under a rubric → subjective → queues to the dashboard, never auto-promotes; the challenger never scores itself).

Model policy (operator-chosen at init)

Ask-once includes one friendly model question. Press enter / say defaults for today's historical behavior; say any model to set banlist.mode: "off" for that run. The policy is persisted as state.config.modelPolicy and shown on the dashboard + report.

For the Build Week lane, pass modelPreset: "gpt-5.6-sol" to initialize_loop_run or say use the gpt-5.6 sol preset. The preset uses the exact gpt-5.6-sol model ID as the primary and first full-test route while preserving the existing Opus/GLM builder boundary and Opus judge route. See examples/model-policy-gpt-5.6.json.

Field

Default

Notes

primary

claude-opus-4-8

Primary worker route

testRoutes

opus / gpt-5.5 / glm-5.2

Full-test agent routes

builderRoutes

opus / glm-5.2

Builds + in-loop gating (Codex/GPT is a host surface by default)

judgeRoute

claude-opus-4-8

Independent judge; fallback is policy.primary

banlist.mode

default

default = 21-pattern banlist; strict = also reject unknown frontier; off = only empty routes rejected

banlist.extraAllow / extraDeny

[]

Punch holes or add denials per run

Why a default banlist? Weak / cheap models produce noisy campaigns that look "done" without real frontier movement. That is a default, not a cage — you can disable it per run.

Controlled GPT-5.6 Sol enforcement proof

With an authenticated Codex CLI, run:

SUPER_LOOP_ALLOW_EXEC=1 npm run proof:gpt56-sol -- \
  --model gpt-5.6-sol \
  --out proof/build-week/gpt56-sol-live

This launches three short, explicitly adversarial fixtures through the real codex exec -m gpt-5.6-sol --json path in read-only, ephemeral mode. The fixtures ask the worker to propose a phase skip, a self-reported metric, and self-promotion; Loop Factory must reject each proposal with the matching supervisor code. Evidence includes raw JSONL, prompt/output hashes, the exact model argv receipt, token usage when the CLI reports it, persisted verdict events, a dashboard, and a markdown report. These are controlled regression prompts, not claims of spontaneous model behavior. The command refuses to overwrite an existing evidence directory and never falls back to another model.


A full campaign, in order

initialize_loop_run            → brief + ask-once (a few Qs) → answer → INITIALIZED
loop_start strip-miner         → section 0
  observation_record (phase 0) → request_next_phase → section 1 → … (gated)
artifact_record role=baseline  → hash-locked
benchmark_propose → benchmark_select        → scorecard frozen
artifact_record measurement → benchmark_run arm=baseline   → bar set (tool-measured)
register_hypotheses (3–5 frontier)
test_hypothesis (3–5 agents, tool-measured) → MOVED_FRONTIER | NO_IMPROVEMENT
reverify_run → promotion_request            → PROMOTE | BLOCKED
update_dashboard / report_export            → checkpoint; lanes keep running

Two distinct thresholds, neither of which stops the campaign:

  • Risk advisory (10–15, configurable): after ~12 consecutive valid no-improvement full tests the supervisor raises an economic-exhaustion risk advisory and opens dashboard review — it only reports risk, it does not stop.

  • Branch retirement (30 valid batches): a branch retires only after 30 valid full real test batches (3–5 frontier workers each) with no qualifying improvement, then the supervisor auto-pivots to the next lane. Invalid / fake-metric / early-stopped / summary-only batches are blocked upstream and never count.

If the Strip Miner saturates, the supervisor auto-transitions (Strip Miner → Loop-de-loop, or the next improvement lane) via report_saturation — never a pause/await/stop. Checkpoint/report/dashboard/refused-terminal/saturation/retirement events persist a machine-readable continuation obligation until a real progress tool runs. continue_run records the model's next-lane commitment but deliberately cannot clear the obligation by itself. Only the operator stops the campaign.


Design notes

  • Zero dependencies on purpose. No SDK, nothing to npm install that can fail or time out, nothing phoning home. The MCP transport is ~90 lines of newline-delimited JSON-RPC in src/server.mjs. There is nothing to install.

  • Tool-computed measurement authority. The MCP derives quality from the frozen oracle and derives an internal deterministic estimate from recorded output bytes. User-facing reports label that estimate artifactOutputTokenEstimate; executor receipts show cliReportedTotalTokens and durationMs separately. In strict mode each counted agent run directly links a raw stdout artifact and extracted final artifact whose SHA-256 values match the invocation receipt. A number the model types is caller-reported and is refused by the benchmark/test gates (MEASUREMENT_AUTHORITY). reverify_run re-derives from the sealed bytes, so a tampered number cannot survive. Subjective quality routes to the dashboard for a human and never auto-promotes (QUALITY_UNVERIFIED); deterministic, oracle-scored quality still queues for mandatory operator Approve before it becomes an internal champion.

  • Host capability preflight, no execution. host_capability_preflight resolves known frontier-agent CLI names against PATH with a filesystem stat — it never spawns a command, never probes a model-supplied binary, and is not SOTA/web research. Presence on PATH ≠ working auth, and it says so.

  • Anti-tampering. Baseline and benchmark are write-once within a cycle; changing either needs an explicit new epoch + rationale.

  • Path hardening. runId and artifact ids are validated before touching disk, and sourcePath reads are refused so a model cannot turn the MCP into a local-file reader. Submit artifact bytes through content.

  • Dashboard-only human review, with a real apply path. The model-callable MCP surface can queue/list review items (and may propose a loop adoption carrying improved loop text), but human_review_request { action:"resolve" } returns DASHBOARD_ONLY. The served dashboard is the HTTP decision surface: choose Approve/Deny, then explicitly confirm the queue action. The local server binds to 127.0.0.1, requires a loopback Host, a same-origin browser request, a per-server session token, and the SHA-256 binding for the exact reviewed state. Queue acceptance remains visibly distinct from supervisor application, survives a reload, and the supervisor rejects a decision if its evidence binding changed before drain. Headless fallback exports the same hash-bound payload for runs/<runId>/inbox-decisions.json or node scripts/apply-decisions.mjs --file <export>. Approving a loop-adoption review installs the improved loop as a new versioned custom loop (the prior version is archived for rollback via operator.rollbackLoop), which loop_start then streams next cycle. The mandated canonical loops are immutable and never touched. Applying is non-blocking — the campaign never pauses for it, and adoption remains off the model-callable tools/call surface.

  • Continuation is a host obligation, stated honestly. An MCP cannot force the host agent loop to keep running — only the host can (which is why the agent is told its native continuous command — Claude Code / Codex /goal, with /loop as Claude's polling alternate, or the per-host driver from the registry — on start). What the MCP can do, and does: every report / dashboard / saturation / no-improvement / refused-terminal event persists a machine-readable continuation obligation with a concrete next tool+lane, and continue_run records intent without clearing it (only a real progress tool clears it). The MCP makes stopping early visibly incomplete; it does not pretend to be the host scheduler. The operator is the only stop condition.

  • Never overwrites your canonical loop. Promotion records an internal champion; changing the canonical loop file is HUMAN-GATED and left to you.

  • Standalone by design.

Run-trajectory export

Bench-maker sessions are out-of-lineage: a separate operator-controlled MCP invocation freezes held-out scorecards; the worker being measured never proposes them.

Protocol (ephemeral bench-maker)

  1. Spin up a dedicated MCP host pointed at the same SUPER_LOOP_HOME (or a copy) with a fresh runId for the held-out worker run.

  2. Hash-lock baseline on that run: artifact_record { role:"baseline", content:"..." }.

  3. Freeze held-out benchmark via benchmark_freeze_maker (not benchmark_propose):

    {
      "runId": "<eval-run>",
      "benchmark": { "name": "...", "taskValueDimensions": ["..."], "resourceDimensions": ["..."], "cases": [{ "id": "..." }], "oracle": "..." },
      "benchPartition": "gate"
    }

    This sets benchSource:"maker" and benchPartition:"gate". Worker benchmark_propose on that run becomes a no-op while the maker scorecard is frozen.

  4. Run the worker through the normal phase gate / hypotheses / full tests on the gate benchmark.

  5. Do not export gate runs for reuse — export_trajectories refuses benchPartition:"gate" runs (hard firewall against exam-set leakage).

  6. Harvest runs (worker-frozen benchmarks with default benchPartition:"harvest") export via:

    { "runId": "<harvest-run>", "outPath": "trajectory.jsonl" }

    Output is Hermes-format JSONL: one line per recorded tool call with label.verdict / label.code / label.reason from the sealed gate results already stored on the run (never re-run gates).

  7. Terminate the bench-maker host session when done — no persistent bench-maker process is required; access is operational (separate host invocation), not a background daemon.

Layout

loops/            bundled hash-locked loop sources (verified once per process, then cached)
hosts/            host runtime registry (PURE DATA — continuous drivers + tiers)
examples/         campaign configs, improve-driver, MCP host snippets, rules
src/
  server.mjs      MCP stdio JSON-RPC transport + tool schemas
  engine.mjs      Loop Factory core — every tool handler + gate
  integrity.mjs   Integrity Gate — negative control, answer-key/padded echo, solution pressure
  loops.mjs       registry, hash verify-on-first-load + process cache, sectionizer
  measure.mjs     tool-computed measurement (derive cost/quality from bytes) + honest boundary
  executor.mjs    opt-in live worker execution (allowlist, execFile, stdin) — off by default
  run-verifier.mjs independent read-only receipt/artifact publication verifier
  canary-runner.mjs blinded one-proposal / three-arm executable canary
  schemas/        strict Codex final-output JSON schemas
  supervisor.mjs  autonomous campaign driver (validate → accept/re-enter boundary)
  host.mjs        host capability preflight + registry loader
  models.mjs      modelPolicy / banlist (operator-chosen at init; defaults = historical)
  scorecard.mjs   promotion frontier rule + score matrix
  skill-schema.mjs skill frontmatter + section schema (shared frontmatter parser)
  skill-match.mjs  skill ranking / match against task
  store.mjs       local atomic JSON persistence (runs + custom-loops + skills)
  dashboard.mjs   polished dashboard.html + markdown report
  constants/util  shared facts + helpers
scripts/          demo.mjs, run-campaign.mjs, run-real-test-canary.mjs, verify-run.mjs,
                  dashboard-server.mjs, apply-decisions.mjs,
                  verify-sources.mjs, flywheel-harden.mjs, quarantine-addendum.mjs,
                  tier-test.mjs, trajectory-capture.mjs, verify-trajectory.mjs
test/             node:test suites (sources, ask-once, phase gate, benchmark,
                  hypotheses, promotion, hook, dashboard, transport, security,
                  loop library, measurement authority, host preflight, executor,
                  supervisor, adoption, dashboard-server)

Available Tools

29 tools
artifact_recordB

Persist a raw artifact (run log, baseline copy) with a sha256 hash. role:"baseline" hash-locks the baseline (write-once; tampering refused). Pass measurement:{tokenCost,quality} so the artifact can serve as a tool-measured, reverifiable measurementRef. sourcePath reads are disabled; pass explicit content.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNo
nameNo
roleNobaseline | evidence | runlog
phaseNo
runIdYes
contentNo
newEpochNo
rationaleNo
sourcePathNodisabled; pass content instead
measurementNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions that baseline role hash-locks (write-once) and sourcePath reads are disabled, but does not discuss permissions, error handling, or whether the operation is idempotent beyond the baseline case.

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?

The description is concise (two sentences) and front-loads the core purpose. It efficiently adds key details but could be better structured (e.g., bullet points) for readability.

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?

Given the complexity (10 parameters, nested objects, no output schema, no annotations), the description is incomplete. It does not explain many parameters, return values, or error conditions, leaving significant gaps for an agent to use correctly.

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 low (20%), so description adds value. It explains the 'role' parameter's special behavior for baseline, the 'measurement' object's purpose, and the 'sourcePath' disablement. However, it doesn't explain all parameters like 'loop', 'newEpoch', or 'rationale'.

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 clearly states 'Persist a raw artifact with a sha256 hash', specifying the action and resource. It distinguishes the tool by mentioning role constraints and measurementRef, but does not explicitly differentiate from siblings like 'observation_record'.

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?

The description provides usage hints: role baseline is write-once, sourcePath is disabled, and measurement should be passed. However, it lacks direct guidance on when to use this tool versus alternatives or when not to use it.

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

benchmark_freeze_makerA

Bench-maker only: freeze a benchmark directly (benchSource:maker) without worker benchmark_propose. Defaults benchPartition to gate (held-out). Worker benchmark_propose becomes a no-op while this scorecard is frozen.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
newEpochNo
benchmarkYesFull scorecard: name, taskValueDimensions, resourceDimensions, cases, oracle, etc.
rationaleNo
benchPartitionNogate (held-out, default) or harvest

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool freezes a benchmark, defaults benchPartition to gate, and makes worker benchmark_propose a no-op. However, it does not elaborate on side effects, permissions, or error conditions, but the disclosed behavior is sufficient for core understanding.

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?

The description is concise at two sentences, with no wasted words. It front-loads key information (purpose and usage context). While it could benefit from clearer structure, it is efficient and direct.

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

Completeness3/5

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

Given the complexity (5 parameters, nested objects, no output schema), the description leaves gaps. It does not explain what 'freeze' means in terms of lifecycle, return value, or error handling. It covers the main intent but lacks completeness for full contextual understanding.

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

Parameters2/5

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

Schema description coverage is low (40%). The description adds meaning only for benchPartition (defaults to gate). It provides no additional information for parameters like runId, newEpoch, benchmark, or rationale, which are left to the schema descriptions alone.

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 clearly states the tool's purpose: 'freeze a benchmark directly (benchSource:maker) without worker benchmark_propose'. It specifies the resource (benchmark) and action (freeze), and differentiates from sibling tool benchmark_propose by indicating it is for maker-only direct freezing.

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

Usage Guidelines5/5

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

The description explicitly indicates when to use this tool ('Bench-maker only' and 'without worker benchmark_propose') and what happens when it is used ('Worker benchmark_propose becomes a no-op'). It also specifies the default behavior for benchPartition, providing clear context for usage vs alternatives.

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

benchmark_proposeB

Propose one or more benchmark scorecards built from real prior uses/failures. Each needs ≥1 task-value dimension, ≥1 resource/cost dimension, and ≥1 concrete case, or it is rejected as a hand-waved benchmark.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
benchmarksYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior. It mentions rejection of invalid proposals but omits what happens on success, side effects, authorization needs, or output format. This leaves significant gaps about tool behavior.

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?

The description is a single, information-dense sentence that front-loads the main purpose. It avoids fluff but could be slightly more structured for readability. Still, it is appropriately sized for a simple 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?

Given no output schema, no annotations, and a complex nested input schema, the description should provide more context about return values, state changes, and integration with sibling tools. It only covers input validation criteria, leaving the overall workflow unclear.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It partially explains the 'benchmarks' parameter by listing required fields, but does not clarify the 'runId' parameter or the exact semantics of fields like 'oracle' or 'qualityScale'. Two parameters remain under-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?

The description clearly states the tool's action: 'Propose one or more benchmark scorecards built from real prior uses/failures.' It specifies the resource (benchmark scorecards) and distinguishes from siblings like benchmark_run or benchmark_freeze_maker by focusing on the proposal phase.

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?

The description provides explicit validation criteria: each benchmark must have ≥1 task-value dimension, ≥1 resource/cost dimension, and ≥1 concrete case, otherwise rejected. This guides proper usage but does not contrast with when to use alternatives like benchmark_select or benchmark_freeze_maker.

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

benchmark_runA

Record a tool-measured run of an arm through the frozen benchmark. arm:"baseline" sets the bar challengers must beat. Requires a measurementRef → a recorded raw artifact; model self-report never sets the bar.

ParametersJSON Schema
NameRequiredDescriptionDefault
armYes"baseline" or a hypothesis id
runIdYes
measurementRefYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool records a run, that baseline sets a benchmark, and disallows model self-reports as measurementRef. However, it does not mention side effects, permissions, or whether the operation is read-only or destructive, leaving gaps in behavioral understanding.

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?

The description is two sentences with no fluff. The first sentence immediately states the purpose, and the second adds essential nuance. Every word earns its place, making it highly efficient.

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

Completeness3/5

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

For a tool with three required parameters, no output schema, and no annotations, the description covers the core idea but leaves out what constitutes a 'run', the nature of the 'frozen benchmark', and how hypothesis arms beyond 'baseline' are used. Additional detail on return values or side effects would improve completeness.

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 coverage is only 33% (only `arm` has a description). The description adds meaning for `arm` (baseline sets the bar) and `measurementRef` (must be a recorded raw artifact), but provides no additional info for `runId`. This partially compensates for the low schema coverage but is not comprehensive.

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 uses a specific verb ('Record') and resource ('a tool-measured run of an arm through the frozen benchmark'), clearly distinguishing it from sibling tools like `benchmark_propose` or `benchmark_select`. The phrase 'tool-measured' and 'frozen benchmark' add precision.

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?

The description explicitly states when to use 'baseline' as the arm and that `measurementRef` must be a recorded raw artifact, not a model self-report. This provides clear context for appropriate usage, though it does not explicitly list when-not conditions or compare directly with all siblings.

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

benchmark_selectA

Freeze ONE proposed benchmark as the immutable scorecard for this cycle. Requires the baseline to be hash-locked first. Changing a frozen benchmark needs a new epoch + rationale.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
newEpochNo
rationaleNo
benchmarkIdYes

TDQS

A4/5.0
Behavior4/5

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

Without annotations, the description discloses key behaviors: the operation freezes the benchmark (making it immutable), requires a prior hash-lock, and outlines the effort needed to change. No contradictions with annotations as none are provided.

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?

Two sentences with no redundancy. The first sentence states the core action, the second adds essential constraints. Perfectly front-loaded and concise.

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

Completeness3/5

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

Given 4 parameters, no output schema, and no annotations, the description covers the core intent and key constraints but lacks parameter details and success/failure behavior. It is adequate but not fully complete.

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

Parameters2/5

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

The input schema has 4 parameters with 0% description coverage. The description only mentions 'baseline' and 'new epoch + rationale' but does not map them to runId, benchmarkId, newEpoch, or rationale. This leaves the agent with insufficient understanding of each parameter's role.

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 clearly states the action 'Freeze ONE proposed benchmark as the immutable scorecard for this cycle', using a specific verb and resource. It distinguishes from sibling tools like benchmark_propose and benchmark_freeze_maker by implying the tool is for finalizing after proposal.

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?

The description provides a prerequisite ('Requires the baseline to be hash-locked first') and consequence ('Changing a frozen benchmark needs a new epoch + rationale'), but does not explicitly list alternatives or when-not-to-use scenarios.

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

campaign_statusB

Read-only supervisor status: the lane/target queue, auto-transitions, branch-retirement accounting (30 valid no-improvement batches), the 10-15 risk advisory band, and how many dashboard review items are pending. Pending review never blocks the campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes

TDQS

B3/5.0
Behavior3/5

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

The description discloses the read-only nature and a key behavioral detail ('Pending review never blocks the campaign'). However, with no annotations, it lacks information about authorization needs, return format, or potential side effects.

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?

The description is a single sentence that conveys purpose and key details, though it is somewhat long due to listing components. It is front-loaded with the main intent ('Read-only supervisor status').

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

Completeness3/5

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

Given the tool's low complexity (one parameter, no output schema), the description provides a reasonable enumeration of status components. However, it is incomplete without explaining the output format or pagination, leaving some gaps.

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

Parameters2/5

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

The single parameter 'runId' is not described in the input schema (0% coverage) and the tool description does not explain what it represents or how to obtain it. This leaves ambiguity for the agent.

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 clearly states it provides 'Read-only supervisor status' and enumerates specific components like lane/target queue and dashboard review items. However, it does not explicitly state the verb-resource relationship (e.g., 'retrieve status'), which slightly reduces clarity.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like 'update_dashboard' or 'run_campaign'. The description implies read-only use but does not specify when it is appropriate or when to avoid it.

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

continue_runA

Record the next runnable improvement lane and first concrete action after reports, dashboards, saturation findings, no-improvement advisories, or refused terminal/checkpoint intents. This never asks the user and never marks the campaign complete. It does not clear the continuation obligation by itself; a real progress tool must run next.

ParametersJSON Schema
NameRequiredDescriptionDefault
laneYesthe next runnable lane/bottleneck being pursued now
runIdYes
rationaleNo
firstActionYesthe concrete next tool/action the model is about to perform

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden and discloses key behaviors: it never asks the user, never marks campaign complete, and does not clear continuation obligation. Could mention side effects of recording.

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?

Two sentences, front-loaded with purpose, and the second provides critical behavioral constraints. No wasted words.

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?

Explains workflow context (after reports, etc.) and limitations. No output schema, but return values are not critical for a recording tool. Sibling tools are many but role is clear.

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 coverage is 50%, and the main description does not add detail for runId or rationale. It briefly clarifies lane and firstAction but relies heavily on schema descriptions.

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 clearly states it records the next runnable improvement lane and first concrete action, and distinguishes from siblings by noting it never asks the user, never marks campaign complete, and does not clear continuation obligation.

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 explicitly states when to use (after reports, dashboards, etc.) and when not to use (does not clear continuation obligation; a real progress tool must run next), but does not name alternative tools.

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

cycle_decision_requestA

The supervisor decision hook. A worker proposes a transition packet; only a supervisor-accepted transition counts as progress. Reasoning alone is never proof. Allowed transition intents: promote | advance_phase | change_baseline | change_benchmark | saturate. Completion/stop-style intents are refused (the operator is the only stop condition).

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNo
runIdYes
intentYes
newEpochNo
rationaleNo
hypothesisIdNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It reveals that only supervisor-accepted transitions count as progress, that reasoning alone is never proof, and that completion/stop intents are refused. However, it lacks details on authorization requirements, rate limits, side effects (e.g., whether previous transitions are invalidated), and what happens after submission (e.g., blocking vs. async).

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?

The description is concise at four sentences. The first sentence immediately provides the core purpose and context (supervisor decision hook). Subsequent sentences add useful detail about allowed/disallowed intents. No redundant information, though the phrase 'reasoning alone is never proof' adds behavioral nuance but is slightly tangential.

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?

Given the absence of annotations, output schema, and parameter descriptions, the description is insufficiently complete. It partially explains the intent parameter but ignores the other four parameters. It does not describe return values or error conditions, leaving the agent to guess the full interaction flow for a tool with 6 parameters and critical behavioral implications.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It adds meaning to the 'intent' parameter by listing allowed values (promote, advance_phase, etc.) and disallowed ones (completion/stop). However, parameters like runId, loop, newEpoch, rationale, and hypothesisId are not explained at all, leaving the transition packet concept vague and the agent without guidance on what to fill.

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 clearly states the tool is the supervisor decision hook for transition packets, listing specific allowed intents (promote, advance_phase, etc.) and disallowed ones (completion/stop). This distinguishes it from sibling tools like promotion_request or request_next_phase by making the supervisor-approval requirement explicit.

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?

The description explicitly defines when to use this tool (proposing a transition needing supervisor acceptance) and when not to (completion/stop intents are refused). It provides a list of allowed intents and states that reasoning alone is insufficient, but does not name alternative sibling tools for the refused intents, only noting that the operator is the stop condition.

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

execute_full_testA

SUPERVISOR-EXECUTED full test (off by default; opt in with env SUPER_LOOP_ALLOW_EXEC=1). Sling itself LAUNCHES 3-5 allowlisted frontier workers (claude/codex/glm/gemini binaries on PATH) via execFile (never a shell), captures each output, and feeds the tool-captured bytes through the same gate as test_hypothesis — so there is no model-supplied run-log to fabricate. A failed/timed-out/non-allowlisted launch is an invalid batch and does not count toward retirement. Without the opt-in this returns BLOCKED (EXEC_DISABLED) and you record run-logs via artifact_record + test_hypothesis instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
promptYesthe loop + task the launched worker should actually run
routesYes3-5 frontier worker routes to launch (each must map to an allowlisted binary)
timeoutMsNoper-worker hard timeout (default 600000)
hypothesisIdYes

TDQS

A4.4/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It details that the tool launches 3-5 allowlisted workers via execFile (never a shell), captures each output, feeds through the same gate as test_hypothesis to prevent fabrication, and that failed/timed-out/non-allowlisted launches are invalid and don't count toward retirement.

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?

The description is a single paragraph of about 5 sentences, reasonably concise. It could benefit from bullet points for the behavioral details, but it is well-structured and front-loaded with the key purpose.

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

Completeness3/5

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

No output schema exists. The description mentions capturing output and feeding through test_hypothesis gate, but does not describe the return value format. Given the tool's complexity, this is a notable gap. However, it covers execution flow, worker launching, and error handling well.

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 60% (3 of 5 params described). The description does not add extra meaning for the undocumented parameters (runId, hypothesisId) beyond what the schema provides. Baseline 3 is appropriate as schema already covers some parameters adequately, but description does not compensate for the gap.

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 clearly states it is a 'SUPERVISOR-EXECUTED full test' that launches frontier workers, captures output, and gates through test_hypothesis. It distinguishes from siblings by mentioning alternative tools (artifact_record, test_hypothesis) and the opt-in requirement.

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

Usage Guidelines5/5

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

Explicitly states the tool is off by default with opt-in via env SUPER_LOOP_ALLOW_EXEC=1, and provides a clear alternative: 'Without the opt-in this returns BLOCKED (EXEC_DISABLED) and you record run-logs via artifact_record + test_hypothesis instead.'

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

export_trajectoriesB

Export a run's recorded tool trajectory as Hermes-format JSONL (one assistant/tool_call line per action, with supervisor verdict labels from recorded gate results). Read-only over the store. Refuses gate-partitioned (held-out) runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
outPathYesRelative path inside the run dir, or absolute path under SUPER_LOOP_HOME/exports/

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states read-only behavior and refusal for held-out runs, but lacks details on authentication needs, rate limits, or output behavior (e.g., whether it saves a file or returns content). The information provided is adequate but not extensive.

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?

The description is concise with three sentences, front-loading the main purpose and adding key details. No superfluous words, and it avoids repeating obvious information.

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

Completeness3/5

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

Given the tool has no output schema, the description should explain what the export returns (e.g., file path, success message). It only mentions the export format but omits the outcome. For two simple parameters, it is moderately complete but lacks output clarity.

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

Parameters2/5

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

Schema description coverage is 50% (only outPath has a description). The tool description does not add meaning beyond the schema: runId is not explained, and outPath's description is already in schema. The description could have clarified the expected format or constraints for runId, but it does not.

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 clearly states the tool exports a run's recorded tool trajectory in a specific format (Hermes-format JSONL) with details about content (one line per action, supervisor labels). It is specific and distinguishes from siblings by mentioning gate results and read-only behavior, though it doesn't explicitly compare to similar export tools.

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?

The description gives some usage guidance: it is read-only and refuses gate-partitioned runs. However, it does not provide when to use this tool versus siblings like report_export or observation_record, nor does it mention prerequisites or typical scenarios.

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

host_capability_preflightA

Local capability report: which known frontier-agent CLIs (claude, codex, gemini, opencode, optional glm) are installed on PATH, PLUS the resolved host profile (driverFamily, tier, setupHint, and the host matrix when SUPER_LOOP_HOST is unknown). Filesystem stat only — NEVER executes a command, NEVER probes arbitrary binaries, and is NOT web/SOTA research. Presence on PATH is not proof of working auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdNooptional; only used to journal

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: filesystem stat only, no execution, no arbitrary probing, not for web/research. Also notes that PATH presence does not guarantee working auth, adding important caution.

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?

Two focused sentences plus a one-line caution. Every sentence provides essential information. No fluff, well-organized.

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?

Output is not described explicitly, but the nature of the report is implied. Given no output schema, a hint about the format would improve completeness, but the description is sufficient for a preflight check tool.

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?

Only one optional parameter (runId) with schema description 'optional; only used to journal'. The description adds little beyond the schema, but the overall context of the tool is well explained. Baseline 3 due to 100% schema coverage.

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?

Description clearly states the tool reports local capability (installed CLIs) and resolved host profile. Uses specific verbs and resources, distinguishing it from sibling tools like host_runtime_detect or benchmark tools.

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?

Explicitly states it never executes commands, never probes arbitrary binaries, and is not web/SOTA research. This helps an agent avoid misuse. Does not mention alternatives directly, but the negatives provide clear when-not-to-use guidance.

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

host_runtime_detectA

Advisory guess of which host runtime the agent is in, from which MCP config files exist on disk (per the host registry). READ-ONLY existence check — never reads file contents, never mutates config. SUPER_LOOP_HOST, if set, is authoritative. Returns a guess, the candidate hosts with evidence, and the CLI fallback; nothing is auto-applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdNooptional; only used to journal

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description fully carries the burden. It explicitly states the tool is READ-ONLY, never reads file contents, never mutates config, and does not auto-apply anything. This provides complete behavioral transparency.

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: tool purpose, behavioral constraints, output summary. Every sentence adds essential information, no redundancy or fluff. Front-loaded with the key action.

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?

Despite no output schema, the description details the return value (guess, candidate hosts with evidence, CLI fallback) and the authoritative flag. The tool's complexity is low, and the description covers all necessary aspects for an agent to invoke and interpret results.

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% with a description for runId. The description adds the context that runId is 'only used to journal', clarifying its optional, non-functional purpose beyond what the schema states. This adds meaningful value.

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 clearly states the tool performs an advisory guess of the host runtime based on MCP config files, with a specific verb ('detect') and resource ('host runtime'). It is distinct from all listed sibling tools, which cover recording, benchmarking, execution, etc.

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?

The description implies the tool is used for detecting the host runtime and notes that SUPER_LOOP_HOST is authoritative, but does not explicitly state when to use or avoid this tool compared to alternatives. No direct alternatives exist among siblings, so guidance is adequate but not explicit.

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

human_review_requestA

Queue a change for the operator’s Approve/Sludge dashboard or list pending items. This tool CANNOT resolve human review; approval/sludge is dashboard-only. Never blocks deterministic lanes — the loop keeps running.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNo
notesNoignored/refused; human decisions are dashboard-only
runIdYes
actionNoadd | list (resolve is refused: dashboard-only)
decisionNoignored/refused; human decisions are dashboard-only
reviewIdNoaccepted only for rejected legacy resolve attempts

TDQS

A4.6/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses that the tool does not resolve human review, is non-blocking, and that certain params like notes and decision are ignored/refused. Could add more detail on side effects or state changes, but current info is useful.

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, front-loaded with core action, followed by crucial constraints. Every sentence provides unique value with no redundancy. Efficient and well-structured.

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?

Given 6 parameters (including nested objects) and no output schema or annotations, the description covers the essential context: purpose, constraints, and behavioral guarantees. It doesn't detail return values (acceptable without output schema) but is sufficient for an agent to select and use correctly.

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 67% with some param descriptions. The description adds value by clarifying that notes and decision are ignored/refused, and reviewId only accepted for legacy resolve attempts. This compensates for missing schema descriptions and helps the agent understand parameter intent.

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 clearly states the tool's purpose with specific verbs ('queue', 'list') and resource ('operator's Approve/Sludge dashboard'). It distinguishes from siblings by explicitly stating what it cannot do (resolve human review) and that it never blocks deterministic lanes, differentiating it from other review/decision tools.

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

Usage Guidelines5/5

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

Provides explicit when-to-use (queue or list human review items) and when-not-to-use (CANNOT resolve, approval/sludge is dashboard-only). Also includes context: never blocks deterministic lanes, loop keeps running. This gives clear guidance to the agent on appropriate invocation.

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

initialize_loop_runA

Ask-once gate. Confirms the task before any loop runs. If the task is underspecified, returns one brief explanation plus a few short questions once (goal; PATH — improve an existing loop / discover-or-find a loop, optionally scouting a public loop library / mine your whole history; the loop or domain to start from; corpus scope — whole history or a set number of loops, and best-first vs in-order; what "better" means; any task-specific hard limit; and a deeper-explanation offer); call again with { answers } to begin. It never asks the operator to choose the model, promotion mode, benchmark policy, deterministic-vs-subjective routing, or the standing guarantees — the supervisor decides those from the task. Stores every user message locally with a sha256 hash. After initialization it does not ask again or mark the campaign complete; the operator remains the stop condition and the dashboard stays available.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNowhat to improve/build
modelNofrontier route; defaults to claude-opus-4-8
runIdNoreuse to continue a run; omit to create one
configNo{ failurePatience(10-15), comparisonRule, promotion:{...}, mode }
answersNoanswers to the ask-once questions
userMessagesNoverbatim operator messages — stored + hashed for the hook
acceptanceCriteriaNo

TDQS

A4.1/5.0
Behavior4/5

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

Discloses that user messages are stored locally with sha256 hash, that after initialization it does not ask again or mark the campaign complete, and that the operator remains the stop condition. Also covers the conditional behavior based on underspecification. No contradictions since no annotations are provided.

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?

The description is dense but well front-loaded with the core purpose. Each sentence adds value, covering behavior, usage, and constraints. Slightly lengthy but justified by the tool's complexity.

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?

Given the tool's role as a gate, the description covers the initialization phase thoroughly, including what it returns when underspecified and how to proceed. Lacks detail on return value after answers and error handling, but overall sufficient for an agent to use correctly.

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 high (86%), so the baseline is 3. The description adds some context (e.g., 'answers' correspond to the ask-once questions), but does not significantly enhance parameter understanding beyond the schema's descriptions.

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?

Clearly identifies the tool as an 'Ask-once gate' that confirms the task before loops run. It describes its role of prompting for underspecified tasks and then accepting answers to begin. Distinct from sibling tools like 'loop_start' and 'continue_run', which handle later stages.

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?

Explains the two-phase usage: first call with 'task' to receive questions, then call with 'answers' to begin. Also clarifies what the tool never asks (model, promotion mode, etc.), indicating the supervisor's role. Lacks explicit statement of when not to use or comparison to alternatives.

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

loop_libraryA

List every loop and skill available to this local MCP: mandated hash-locked loops, custom loops you registered, and skills (metadata only — id, title, provenance, partition, section count). No full bodies.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdNooptional; only used to journal

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so the description must disclose behavioral traits. It states that only metadata is returned ('no full bodies'), which implies a read-only, non-destructive operation. However, it does not explicitly confirm that no side effects occur, nor does it mention any permissions or rate limits. The disclosure is partially adequate but could be more explicit.

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?

The description is a single, well-structured sentence that front-loads the tool's purpose. Every word serves a function—defining scope, content, and limitations. No redundant or unnecessary text.

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 simple list tool with one optional parameter and no output schema, the description covers the what and what-not. However, given the large sibling set, the lack of usage guidance leaves it slightly incomplete. The description would benefit from a brief recommendation on when to use this tool over, say, skill_fetch.

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 coverage is 100% for the single optional parameter 'runId', and the schema already describes it as 'optional; only used to journal'. The description does not add any extra meaning beyond what the schema provides (e.g., when to supply runId). With high schema coverage, baseline 3 is appropriate.

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?

Description clearly states the verb 'List', the resources 'every loop and skill', and the scope 'available to this local MCP'. It specifies what is included (mandated, custom loops, skills with metadata) and what is excluded ('no full bodies'). This effectively distinguishes it from sibling tools like loop_register or loop_start.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives. With 27 sibling tools, including many that deal with loops and skills (e.g., loop_register, loop_next, skill_fetch), the description does not provide any comparison or context for selection. The agent receives no information about prerequisites or when this tool is appropriate.

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

loop_nextD

Alias of request_next_phase.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNo
runIdYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations provided, and the description only states it is an alias. No disclosure of effects, auth needs, or other behaviors.

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?

The description is extremely short but fails to provide essential information. It is under-specified, so it does not earn its place.

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

Completeness1/5

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

Given two parameters, no output schema, and no annotations, the description is wholly inadequate. It does not cover return values, behavior, or parameter semantics.

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

Parameters1/5

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

Schema coverage is 0%, and the description does not explain the purpose or format of the 'loop' or 'runId' parameters. No value added beyond the schema.

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 says it is an alias of request_next_phase, but does not explain what that tool does. The name 'loop_next' suggests looping, but the purpose is vague and relies on knowledge of another tool.

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

Usage Guidelines1/5

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

No guidance on when to use this tool vs alternatives. The sibling list includes request_next_phase, but the description gives no context for choosing between them.

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

loop_registerA

Add YOUR OWN loop to this machine's local MCP, or register a skill (retrievable knowledge file) with role:"skill". Pass the full text as content; loops are hashed, phase-gated, and streamed; skills are section-addressable with provenance-enforced frontmatter. Cannot overwrite the hash-locked Strip Miner / Loop-de-loop. Nothing leaves your machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYessafe lowercase id (no slashes/spaces); must not collide with a mandated loop
roleNoartifact type — "custom" (phase-streamed loop) or "skill" (retrievable knowledge file). Default custom.
tagsNofree-form labels for skill keyword pre-filter
runIdNooptional; only used to journal the registration
stackNotech stack tokens for skill routing
titleNo
sourceNoprovenance URI or path description (required when role is "skill")
contentYesthe full loop or skill markdown (loops: headers/paragraphs become phases; skills: frontmatter + body with _synthesis section)
licenseNoSPDX id or LicenseRef-… (required when role is "skill")
triggerNoe.g. "/loop my-loop" (loops only)
overwriteNoreplace an existing custom loop or skill of the same id with a new local version
source_pathsNooptional auxiliary reference file paths for multi-file skills
anti_patternsNooutputs the model must not reproduce from the skill
skillPartitionNopartition — "working" (retrievable in normal runs) or "reference" (held-out, opt-in only). Default working.
supports_tasksNotask intents this skill helps with
token_budget_hintNoexpected total skill size hint for Router 1 planning
synthesis_guidanceNohow to apply fetched skill knowledge to the current task without copying

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description must disclose behavioral traits. It reveals that loops are hashed, phase-gated, and streamed; skills are section-addressable with provenance-enforced frontmatter; overwriting is restricted for certain loops; and data does not leave the machine. This adds significant context beyond the schema, though details on streaming behavior could be richer.

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?

The description is four sentences, succinct and well-structured. It front-loads the primary action, then details specifics about loops and skills, and ends with constraints. No unnecessary words or redundancy.

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?

Despite 17 parameters and no output schema, the description covers the core behavior and two registration types. It explains hashing, phase-gating, provenance, and data privacy. It lacks details on expected return values or outcomes (e.g., how to invoke the registered loop/skill), but is fairly complete for the complexity.

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 94%, so most parameters are already described. The description adds value by explaining that 'content' holds full text, and clarifies the role distinction. However, it does not elaborate on many parameters like stack, tags, or anti_patterns beyond what's in the schema, so added meaning is moderate.

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 clearly states the tool adds/registers loops or skills, with specific verb 'Add' / 'register' and resource types. It distinguishes between loops and skills and mentions constraints like 'Cannot overwrite hash-locked Strip Miner / Loop-de-loop'. This makes the purpose distinct from siblings like loop_library or skill_fetch.

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?

The description explains the difference between loops and skills via the 'role' parameter, but does not explicitly tell when to use this tool versus alternatives (e.g., loop_library to list, or artifact_record for other data). Usage context is implied but lacks direct when-not-to-use guidance or comparison to siblings.

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

loop_startA

Begin phase-gated streaming of a bundled or custom local loop. Opens/activates the supervisor lane for that loop. Use "strip-miner" (The Strip Miner Loop / cross-agent source miner, 345 lines), "loop-de-loop" (Loop 2, the improvement loop, 75 lines), or any id registered with loop_register. Returns ONLY section 0; the full loop stays inside the supervisor.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopYesstrip-miner, loop-de-loop, or a custom loop id from loop_library
runIdYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description discloses that the tool opens/activates a supervisor lane and returns only section 0, but lacks details on side effects, destructiveness, authentication needs, or failure modes.

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 that are front-loaded with the primary action, include examples, and contain no unnecessary words. Highly efficient.

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

Completeness3/5

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

Adequate for a simple tool, but lacks explanation of 'phase-gated streaming' and 'supervisor lane,' and no discussion of prerequisites or error handling. With no output schema, more context on return values would be helpful.

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?

Adds value for the 'loop' parameter by giving concrete examples and mentioning registration with loop_register, but the 'runId' parameter is not described. Schema coverage is 50%, so description partially compensates.

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?

Clearly states 'Begin phase-gated streaming' with specific verb and resource, lists valid loop names, and distinguishes itself by noting it returns only section 0, which differentiates from siblings like loop_next and loop_register.

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?

Provides explicit examples of when to use this tool (e.g., starting 'strip-miner' or 'loop-de-loop') and notes that it returns only section 0, implying for other sections use different tools. However, no explicit when-not-to-use or alternative tool names.

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

observation_recordA

Record lightweight evidence for the current phase (what you actually did/observed). Attach { loop, phase } to satisfy the phase gate and unlock the next section.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
loopNo
phaseNo
runIdYes
summaryYes
sourceRefNo

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It mentions that attaching 'loop' and 'phase' 'unlock[s] the next section', implying a side effect beyond recording. However, it does not explain if the tool is idempotent, requires specific permissions, or what the return value looks like. It lacks detail on the nature of the evidence recording (append, overwrite, etc.).

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?

The description is only two sentences long, with the main purpose front-loaded in the first sentence. The second sentence adds critical usage context about the phase gate. No extraneous information is present. Every sentence earns its place.

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

Completeness3/5

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

Given the tool has 6 parameters with no schema descriptions, no output schema, and no annotations, the description partially compensates by explaining the purpose and the phase-gate unlock mechanism. However, it omits details on return values, parameter formats, and error conditions. For a moderately complex tool, this leaves gaps.

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

Parameters2/5

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

The input schema has 6 parameters with 0% description coverage. The description only mentions 'loop' and 'phase' in the context of satisfying the phase gate, but does not explain their types, allowed values, or how they map to schema properties. Parameters like 'kind', 'sourceRef', and 'runId' are entirely undocumented in the description, leaving the agent to rely solely on the schema names.

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 clearly states 'Record lightweight evidence for the current phase', specifying the verb 'Record' and the resource 'evidence'. It also mentions 'what you actually did/observed', which further clarifies the tool's function. This distinguishes it from siblings like 'artifact_record' which likely records artifacts, and 'register_hypotheses' which records hypotheses.

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?

The description indicates when to use the tool: 'for the current phase' and to 'satisfy the phase gate and unlock the next section'. It provides clear context of use, but does not explicitly state when not to use it or mention alternative tools. However, the phase-gate requirement is a strong guideline.

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

promotion_requestA

Request promotion of a hypothesis to internal champion. Requires a tool-measured, reverified full test on the frozen benchmark that moves the quality/cost frontier past threshold. Old green unit tests without a score matrix, model-reported metrics, or below-threshold results are BLOCKED. Never overwrites the operator’s canonical loop file.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
hypothesisIdYes

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries full burden for behavioral disclosure. It reveals important constraints: blocking certain inputs and never overwriting a file. However, it does not describe failure modes, success effects, or whether the tool creates or modifies resources beyond promotion status. This is adequate but could be richer.

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?

The description is three sentences, each serving a purpose: stating action, listing requirements, noting a constraint. It is relatively concise with no redundancy. However, it could be more tightly structured by grouping conditions before behaviors, but overall it is efficient.

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

Completeness3/5

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

Given the tool has 2 required parameters with no schema descriptions, no output schema, and no annotations, the description covers purpose and prerequisites but lacks parameter explanations and return value information. It is moderately complete for a promotion request tool but would benefit from explaining what happens on success or failure.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. However, it does not explain what 'runId' or 'hypothesisId' represent or how they relate to the precondition (e.g., which run or hypothesis is being promoted). The description adds no parameter-specific semantics beyond the purpose.

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 clearly states the tool's purpose: 'Request promotion of a hypothesis to internal champion.' It specifies the required condition (tool-measured, reverified full test on frozen benchmark pushing the frontier past threshold) and distinguishes itself by blocking old green unit tests without score matrix, ensuring the tool is used for a specific, high-quality promotion scenario.

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?

The description provides clear when-to-use guidance by listing prerequisites (specific test type and result threshold) and exclusions (old green unit tests, model-reported metrics, below-threshold results). It also notes it never overwrites the operator's canonical loop file. While it doesn't explicitly name alternative tools, the context of sibling tools and the clear conditions make usage guidelines effective.

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

register_hypothesesA

Register 3–5 challenger hypotheses, each on a frontier route. Requires baseline hash-lock + frozen benchmark + measured baseline bar (benchmark-first). Rejects <3 or >5, and any haiku/mini/nano/lite/prior-gen route.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
hypothesesYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses behavioral constraints on count and route validation but does not describe side effects, auth needs, or what happens upon successful registration. The rejection criteria are helpful but incomplete for full transparency.

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?

The description is two sentences with no redundancy. It front-loads the core action and constraints, making it efficient and easy to parse.

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?

Given no output schema and low schema coverage, the description lacks important context: it does not explain what 'challenger hypotheses' or 'frontier route' mean, nor does it describe the outcome or return value. The prerequisites are listed but not elaborated.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the description must compensate but fails to explain individual parameters like title, tradeoff, or falsifier. It only adds context about the count and route of hypotheses, leaving the meaning of other fields unclear.

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 uses a specific verb 'Register' and identifies the resource 'challenger hypotheses on frontier routes'. It clearly distinguishes this tool from siblings by specifying count constraints (3-5) and route restrictions (no haiku/mini/nano/lite/prior-gen), setting it apart from other hypothesis-related tools.

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?

The description explicitly states prerequisites (baseline hash-lock, frozen benchmark, measured baseline bar) and rejection conditions (<3 or >5 hypotheses, disallowed routes). Although it does not name alternative tools for different scenarios, the guidance is clear on when to use and what is required.

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

report_exportC

Write a reproducible markdown report (baseline lock, frozen benchmark, score matrix, promotions, failure patience, campaign state) to the run dir.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
formatNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior fully. It mentions 'write' and 'reproducible' but lacks details on side effects (e.g., overwrite), required run state, permissions, or return value.

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?

Single sentence with a parenthetical list is concise. Could be more structured (e.g., key points first), but no wasted words.

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?

Given no annotations or output schema, and complex sibling context, the description lacks important details like prerequisites, output location specifics, and relationship to other report tools.

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

Parameters1/5

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

Schema coverage is 0%, yet the description does not explain either parameter. 'runId' and 'format' are left undefined, and the format parameter's purpose is unclear given the description already specifies markdown.

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 clearly states the tool writes a reproducible markdown report to the run dir and enumerates the contents (baseline lock, frozen benchmark, etc.). However, it does not differentiate from sibling tools like report_saturation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as report_saturation or artifact_record. The description does not provide context or exclusions.

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

report_saturationA

Tell the supervisor the current lane (e.g. the Strip Miner) has reached evidence-backed saturation. The supervisor AUTO-TRANSITIONS to the next lane (Strip Miner → Loop-de-loop, or the next improvement branch). It never pauses, awaits the operator, or treats "no re-mining warranted" as terminal — saturation is a pivot. The operator is the only stop condition.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
evidenceNothe saturation evidence (batches that changed nothing material)

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: auto-transition, no pausing, operator as only stop condition. It does not mention error handling or side effects, but for a reporting tool this is sufficient.

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?

Four sentences, each adding essential information. Front-loaded with purpose, followed by behavioral details. No redundant or vague statements.

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 simple reporting tool with no output schema, the description covers purpose, effect, and stopping conditions. It could mention return value or confirmation, but it is acceptable given the context.

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

Parameters2/5

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

Schema description coverage is 50% (evidence parameter has a description, runId does not). The tool description does not add any parameter-specific details beyond the schema, so it fails to compensate for the missing runId description.

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 clearly states the tool reports saturation for a lane and triggers an automatic transition. It uses specific terms like 'lane' and 'saturation', but does not explicitly differentiate from sibling tools like 'loop_next' or 'cycle_decision_request'.

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?

The description implies usage when saturation is reached, and explains the automatic behavior and operator stop condition. However, it does not explicitly state when not to use this tool or mention alternatives.

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

request_next_phaseA

Stream the next loop section. BLOCKED (PHASE_SKIP) unless the current section already has recorded evidence. Prevents 300+ lines collapsing into the model before real decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNo
runIdYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the blocking behavior, the reason behind it (prevent context collapse), and the streaming nature. This goes beyond a simple action statement, though it could mention side effects or idempotency.

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?

The description is three sentences that each add unique value: action, condition, and rationale. It is front-loaded with the action and concise without wasted words.

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?

Given no output schema and 2 undocumented parameters, the description lacks important context such as return format, when exactly to call (beyond evidence requirement), and parameter roles. It covers the core behavior but leaves gaps for a new user to understand full usage.

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

Parameters1/5

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

The input schema has 2 parameters with 0% description coverage, and the description does not mention any parameter meaning or usage. Without compensation, the description adds no value for parameter understanding.

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 clearly states that the tool streams the next loop section, with a specific blocking condition (PHASE_SKIP unless evidence recorded). It distinguishes from sibling tools like 'loop_next' by highlighting the blocking behavior and the motivation to prevent large context collapses.

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?

The description implies usage by noting the blocking condition (requires recorded evidence), but does not explicitly compare to alternatives or state when not to use it. The context about preventing 300+ lines gives some guidance, but it is not explicit enough for clear alternative choice.

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

reverify_runA

Deep re-verification: re-hash every raw artifact behind a full test and confirm the claimed metrics reproduce. Promotion is blocked until this passes (anti benchmark-gaming / baseline-tampering).

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
testIdNo
hypothesisIdNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions the verification process and the consequence (blocking promotion), but does not disclose side effects, idempotency, or whether it modifies state. The behavior is partially transparent but lacks depth.

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?

The description is extremely concise with two sentences. The first sentence front-loads the action and the second adds consequence and motivation. Every word earns its place with no redundancy.

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?

The description covers purpose and consequence but fails to document parameters, which are essential for a tool with 3 params and no output schema. Given the complexity and lack of annotations, the description is incomplete.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain any of the three parameters (runId, testId, hypothesisId). The required runId is not mentioned, and optional parameters are ignored. This is a critical gap for correct invocation.

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 clearly states the tool's purpose: 'deep re-verification' by re-hashing raw artifacts and confirming metrics. It distinguishes itself from sibling tools by explicitly linking to promotion blocking and anti-gaming, which is a unique use case.

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?

The description implies when to use this tool: before promotion ('promotion is blocked until this passes'). It provides context (anti-benchmark gaming) but does not explicitly state when not to use it or compare to alternatives like test_hypothesis.

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

run_campaignA

AUTONOMOUS SUPERVISOR (opt-in: SUPER_LOOP_ALLOW_EXEC=1). One call drives the whole campaign itself — intake → work the target queue (mine → improve) → for each improve target: hash-lock baseline → freeze benchmark → measure the bar on a real worker → FullTestBatches (3-5 frontier workers, each output VALIDATED through the enforcement boundary) → supervisor delta → reverify → promote (bank a Stone) → advance/retire → re-mine — and keeps going until the operator stop-file. Worker output is never trusted: summary-only / early-stop / fake-metric / self-promote / phase-skip / copied-public are rejected and re-entered, and invalid batches do not count toward retirement. maxBatches bounds the in-call MCP run (a safety cap, NOT completion); the standalone super-loop-run CLI runs it until the stop-file. Returns the exact string MISSING_FULL_PRIVATE_LOOPS if a full private loop is absent.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
configYes{ task, routes:[3-5 frontier], benchmark:{name,taskValueDimensions,resourceDimensions,cases,oracle}, targets:[{kind:"mine"|"improve", loop?, baselineContent?, benchmark?, routes?}], noImprovePolicy?(default 30), remineOnEmpty? }
stopFileNopath whose existence stops the campaign — the operator stop signal
maxBatchesNosafety cap on valid FullTestBatches for this in-call run (default 3); not a completion state

TDQS

A4.1/5.0
Behavior5/5

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

No annotations are provided, so the description carries full burden. It transparently details rejection criteria (summary-only, early-stop, fake-metric, etc.), validation process, and the return value for missing loops. This far exceeds minimal disclosure.

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?

The description is a dense wall of text without bullet points or structure. While it front-loads the key 'AUTONOMOUS SUPERVISOR' label, the rest is a long sentence that could be broken into multiple sentences or lists for readability.

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?

Given the complexity of the tool and lack of output schema, the description covers the workflow, safety caps, validation, and return behavior. It is fairly complete, though a bit verbose.

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 75% (3 of 4 params have descriptions). The tool description reiterates the purpose of maxBatches and stopFile but does not add new semantic details beyond the schema. Config parameter is described with a nested structure in the schema, and the description gives some context but no additional clarity.

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 clearly states the tool's purpose as an 'AUTONOMOUS SUPERVISOR' that drives a whole campaign end-to-end, listing specific phases (intake, work queue, mine/improve, etc.). It distinguishes itself from sibling tools like campaign_status or continue_run by being the main orchestrator.

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?

The description includes opt-in condition (SUPER_LOOP_ALLOW_EXEC=1) and distinguishes between the in-call MCP run (bounded by maxBatches) and the standalone CLI. It does not explicitly list when not to use this tool relative to siblings, but provides clear context for when it is appropriate.

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

skill_fetchA

Retrieve skill knowledge for the current task. Two modes: 'plan' returns the index (titles, purposes, token estimates) of skills matching your query — read these to decide which sections to fetch; never loads full skill bodies. 'section' fetches ONE section body by (skill_id, section_id) so you pull only the knowledge you need. Default partition is 'working'; 'reference' is opt-in only (held-out skills). Pass runId to pin the exact skill version this run used.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoplan (Router 1 index) or section (Router 2 body fetch). Default plan.
topKNoplan mode: max skills to return (default 5)
queryNofor plan mode — what you are working on
runIdNooptional — pins the fetched skill version to this run for reproducibility
skill_idNofor section mode — skill to fetch from
partitionNoworking (default, retrievable in normal runs) or reference (held-out, opt-in only)
section_idNofor section mode — one section to return

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully discloses behaviors: plan never loads full bodies, section fetches one section, partition defaults, and runId pins versions. No contradictions.

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?

The description is compact (under 100 words) and well-structured: starts with a clear verb+resource statement, then explains modes, parameters, and partitions without redundancy.

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?

Given 7 parameters, two modes, and no output schema, the description covers key behavioral details (modes, partitions, version pinning) but omits the exact structure of returned data for section mode. Still, it is largely complete.

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

Parameters5/5

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

Despite 100% schema coverage, the description adds significant meaning beyond the schema: it explains the two modes, the purpose of each parameter in context (e.g., query for plan, skill_id for section), and default values.

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 explicitly states 'Retrieve skill knowledge for the current task' and distinguishes two modes (plan and section), making the tool's purpose clear and differentiating it from the listed sibling tools.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use each mode: plan for reading the index to decide which sections to fetch, and section for fetching one section body. It also clarifies default and opt-in partitions.

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

test_hypothesisC

Record ONE full test of a hypothesis = 3–5 frontier agents that actually ran the loop end-to-end. Every agent run must carry a measurementRef (tool-measured). Aggregates vs the frozen baseline bar; a no-improvement run is NO_IMPROVEMENT, never "perfect", and bumps the failure counter.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes
fullTestYes
hypothesisIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It reveals some behavioral traits (e.g., outcome values like NO_IMPROVEMENT, never 'perfect'), but does not disclose side effects, idempotency, or behavior on repeated calls. Missing transparency on what happens after recording (e.g., aggregation, state updates).

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?

The description is concise and front-loaded, stating the main action in the first sentence. Additional clarifications about agent runs and outcome rules are useful. However, it could be better structured (e.g., separate sections for input-output behavior).

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?

Given the complexity (nested objects, 3 required params, no output schema), the description is insufficient. It does not explain what the tool returns, how to construct the fullTest object, or what constitutes valid inputs beyond the mention of measurementRef. An agent would likely need additional information to use this tool correctly.

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

Parameters2/5

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

Schema coverage is 0%, requiring description to compensate. The description adds meaning to 'measurementRef' (must be tool-measured) and outcome classification, but does not explain 'runId', 'hypothesisId', or the full structure of 'fullTest' (e.g., valid values for 'model'). Incomplete parameter semantics.

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 clearly defines the tool's purpose: recording a full test of a hypothesis involving 3–5 frontier agents, with specific requirements for measurement references and outcome classification. It is distinct from sibling tools like 'execute_full_test' or 'observation_record' due to the explicit mention of agent runs and baseline comparison.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., 'execute_full_test' or 'observation_record'). The description only explains what it does, not the context of use, prerequisites, or when not to use it.

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

update_dashboardC

Render the always-available local dashboard.html (score matrix, phase progress, failure patience, Approve/Sludge, and the stop-condition notice). Human review happens only here; deterministic lanes do not wait on it.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden. It says 'render' implying read-only, but the name suggests mutation. It does not explicitly state whether the tool modifies state or is safe.

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?

The description is concise (two sentences) and front-loaded with the action. However, it could be more precise about the parameter.

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?

With one required parameter and no output schema, the description should explain the role of 'runId'. It lists dashboard contents but omits how the parameter fits in, making it incomplete.

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

Parameters1/5

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

Schema coverage is 0% and the description does not mention the 'runId' parameter at all, leaving its purpose and format completely unspecified.

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

Purpose3/5

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

The description clearly states it renders a local dashboard, but the name 'update_dashboard' suggests modification, creating confusion. It does not explicitly distinguish from sibling tools.

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?

The description provides context that human review happens here and deterministic lanes do not wait, but it does not name alternatives or specify when to use this tool versus others.

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

TDQS

C2.9/5.0
Disambiguation4/5

Tools have mostly distinct purposes, with detailed descriptions clarifying roles. However, some tools like 'continue_run' and 'request_next_phase' could be confused without careful reading, slightly reducing disambiguation.

Naming Consistency3/5

Naming is predominantly snake_case but mixes verb-first (e.g., 'artifact_record') and noun-first (e.g., 'campaign_status') patterns. Some compound names are awkward, and there is an alias ('loop_next') that adds redundancy.

Tool Count2/5

29 tools is high for the domain; while each tool has a specific role, the number exceeds the typical 3-15 range and is above 25, making the surface heavy and potentially overwhelming for agents.

Completeness4/5

The tool set covers the full campaign lifecycle: initialization, benchmarking, hypothesis testing, looping, human review, verification, and reporting. Minor gaps exist, such as no direct artifact listing, but overall it is comprehensive.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enforces disciplined programming practices by requiring AI assistants to audit their work and produce verified outputs at each phase of development, following structured workflows for refactoring, feature development, and testing.
    20
    35
    12
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to learn from their work by recording tasks, extracting patterns, detecting mistakes, and proactively surfacing insights, all using the agent's own model through a cooperative intelligence pattern.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alexalexalex222/Loop-Factory-mcp-public'

If you have feedback or need assistance with the MCP directory API, please join our Discord server