Skip to main content
Glama

Rush

Agentic code-quality tools for coding agents. Rush is a Python CLI and MCP server that gives AI coding agents (and you) a fast, local way to review, lint, format, test, and secure a codebase — plus token-saving context tools built for how agents actually work.

Release Python 3.12 MCP: stdio License: MIT Ruff

Install · Quickstart · Connect an AI agent · What it does · Configuration · Contributing


Why Rush

AI coding agents move fast and occasionally make a mess: hallucinated imports, empty placeholder functions, huge test-failure traces that blow your context budget, and the occasional overconfident rm -rf. Rush sits between you and that mess — a local-first toolbelt an agent (or you, from the terminal) can call before anything ships:

  • Catch it before it ships — deterministic AST review, linting, formatting, and test running across Python and JS/TS, dispatched to real engines (Ruff, ESLint, Biome, pytest, and more).

  • Keep agents on a leash — a command-safety firewall that blocks destructive shell commands, isolated git worktrees for patch attempts, and a failure ledger so agents stop repeating the same broken fix.

  • Give agents a real memory — a typed, queryable store per project (not a stuffed context window) that survives across sessions and agents, with a trust gate so nothing gets treated as fact until it's corroborated.

  • Stop burning tokens — context packing, AST skeletons, and compact result formats so you're not pasting whole files and 10,000-line stack traces into a chat window.

  • Talk to your agent directly — a stdio MCP server so Claude Code, Cursor, Windsurf, Zed, and other MCP-capable agents can call Rush's tools natively, not just from a shell.

Rush runs entirely on your machine. It doesn't upload your code anywhere, and it doesn't install anything in the background — it drives quality/security engines that are already on your PATH.


Related MCP server: mcp-lint-tools

Install

The fastest way to get rush on your machine is the install script — it downloads a checksum-verified, self-contained binary. No Python, no uv, no repo checkout required.

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/jamesdsizemore/rush-cli/main/scripts/install.sh | sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/jamesdsizemore/rush-cli/main/scripts/install.ps1 | iex

This installs rush to a user-owned directory, adds it to your shell (or tells you how to), and automatically connects any supported coding agent it finds on your machine (Claude Desktop, Claude Code, Cursor, Windsurf, Zed, Codex CLI). Once installed, re-run the rush install command directly any time you want different flags, upgrade, repair, or connect a specific project:

# Skip agent connection / memory consent entirely
rush install --agents none --memory off

# Connect a specific project instead of leaving selection pending
rush install --agents all --memory on --project /path/to/your/project

Windows on ARM64 isn't available yet — a dependency (cryptography) doesn't currently publish a prebuilt wheel for that platform. Every other combination (macOS Intel/Apple Silicon, Linux x86_64/ARM64, Windows x86_64) is fully supported.

Verify it worked:

rush --version
rush doctor      # checks your environment and toolchain health
git clone https://github.com/jamesdsizemore/rush-cli.git
cd rush-cli

# with uv (recommended for development)
uv sync --all-extras --frozen
uv run rush --version

# or with pip
python -m venv .venv
source .venv/bin/activate   # .venv\Scripts\activate on Windows
pip install -e ".[dev]"

Quickstart

# Set up a project: writes a rush.toml tailored to your stack
rush init .

# Sync one set of rules to every IDE/agent config you use
rush governance sync

# Review the codebase — deterministic AST checks, no network calls
rush review .

# Preview safe auto-fixes (formatting + lint) without touching files
rush fix . --dry-run

# Run the full pre-flight release gate: tests, coverage, lint, security, drift
rush ship gate

Every command prints a consistent result — status, findings, and a one-line summary — whether you're reading it in a terminal or an agent is parsing it as JSON (--json on most commands).


Connect an AI agent (MCP)

Rush speaks MCP over stdio, so any MCP-capable agent can call its tools directly instead of shelling out.

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "rush": {
      "command": "rush",
      "args": ["mcp", "serve"]
    }
  }
}

Cursor (~/.cursor/mcp.json) and Windsurf (~/.codeium/windsurf/mcp_config.json) use the same shape:

{
  "mcpServers": {
    "rush": {
      "command": "rush",
      "args": ["mcp", "serve"]
    }
  }
}

If your client can't resolve rush from PATH, point command at the absolute path rush doctor reports. For every other client, see the MCP client setup guide. The full tool list — schemas included — is always available live from the running server (tools/list) and documented in the MCP reference; a few of the most-used tools:

Tool

What it does

rush_context_pack

Packs the relevant symbols and AST skeletons for a task into a token budget

rush_blast_radius

Reports what a change would affect — files, routes, tests

rush_hallu_guard

Checks that an agent's proposed imports actually exist in the codebase

rush_context_mistakes_check

Looks up whether a similar approach already failed before

rush_mesh_acquire_lock / rush_mesh_release_lock

Cooperative file locks for multiple agents working the same repo

rush_test_heal

Investigates a flaky test in an isolated sandbox


What it does

Rush ships as one CLI with a lot of focused tools behind it (rush --help for the full list). Grouped by what you'd actually reach for:

Code quality review · lint · format · fix · typecheck · dead · complexity · simplify · slop (AI hallucination/placeholder detector) · tdd

Testing test · e2e · mutation · pbt (property-based) · flaky · coverage · contract · fuzz · load · test-heal

Security & supply chain security (dependency vulnerabilities) · secrets (with automatic redaction) · sbom · codeql · attest (draft SLSA provenance) · license-matrix · iam-audit

Agent safety guard (blocks destructive commands like git reset --hard/rm -rf) · isolated git-worktree sandboxes for patch attempts · swarm-merge (3-way AST merge for concurrent agents) · a failure ledger that stops agents from retrying known-bad fixes

Memory memory write / recall / ask — a typed store (.rush/memory.db, one per project, WAL-mode SQLite) across 7 kinds: episodic, preference, failure, architectural decisions, domain knowledge, skill patterns, and active context. Nothing an agent writes is trusted outright — memory promote runs it through a corroboration gate that also screens for instruction-override/exfiltration patterns before anything is treated as fact. context mistakes mines actual git-revert history so an agent doesn't retry a fix that was already tried and reverted. session save/restore and continuity checkpoint a working session and resume it later. The rush_memory MCP tool bridges a bounded handoff between agents instead of each one keeping its own siloed context.

Static analysis feeds directly into it: memory plan-checks ranks which checks actually matter for a change using real evidence pulled from memory — a prior test that failed against this exact code, measured coverage, a blast-radius/api-diff structural relation, a version-bound security finding — never a fabricated "this is covered" from a check that only ever ran in config. memory last-success-diagnose compares a current failure against the last time this code path actually passed. Scan results themselves become typed memory artifacts on handoff, so a finding an agent hands off is a durable, queryable record, not just terminal output that evaporates.

Token economy & context context pack (AST-aware, budget-constrained context) · context align-prompt (prompt-cache-friendly formatting) · context gain (live token/cost savings HUD) · token count · blast-radius

Governance & multi-IDE governance sync — compile one AGENTS.md into .cursorrules, .windsurfrules, .clinerules, and Claude Code config in one command

Dashboards dashboard — a local, authenticated web UI · ui — the same views as a terminal app (Rich TUI), both backed by the same project data (scans, findings, memory, token use, git history)

Every one of these has real engines behind it where a standard tool exists (Ruff, ESLint, pytest, Gitleaks, Syft, and dozens more) and a deterministic built-in fallback where it doesn't. rush capabilities . shows exactly what's usable in your environment before you run anything. A couple of honest gaps: rush hook run exists today, but hook install/hook verify aren't wired up yet, and dead-asset reports candidates without a --prune flag to delete them for you.


Configuration

Rush reads rush.toml from your project root — rush init . generates one tailored to your stack. Everything is optional; sensible defaults apply if you skip it:

log_level = "warn"

[project]
src = ["src"]
test = ["tests"]
exclude = ["**/.venv/**", "**/node_modules/**"]

[review]
max_file_lines = 400
scaffold_markers = ["TODO", "FIXME", "HACK"]

[tools.lint]
check = true

Full field reference: docs/CONFIGURATION.md.


Safety notes

  • Rush never installs packages or runs network calls on its own — quality/security engines are discovered from your PATH; you decide what's installed.

  • Destructive git operations (rewriting history, force-pushing, tagging, publishing) never happen implicitly — only when you explicitly ask.

  • The stdio MCP server keeps stdout reserved for JSON-RPC; all logging goes to stderr.

  • Full threat model and guarantees: docs/SAFETY.md.


Contributing

  1. uv run --python 3.12 --extra dev ruff check src tests scripts and ruff format --check should both pass.

  2. New engines/tools need tests under tests/test_<name>.py.

  3. See docs/developer/contributor-onboarding.md for the full guide.

License

MIT

Available Tools

79 tools
rush_actionsA

Check GitHub Actions workflows without rewriting; missing actionlint returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.5/5.0
Behavior4/5

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

There are no annotations, so the description carries the full behavioral disclosure burden. It explicitly states that the tool does not rewrite and that a missing actionlint results in status='skipped'. This gives meaningful context about side effects and fallback behavior beyond the schema. It does not cover all possible behaviors, but for a check-only tool this is solid disclosure.

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 sentence that front-loads the core purpose and then adds the key behavioral detail about actionlint. Every part contributes information; there is no filler or repetition.

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 one-parameter tool with an output schema, the description covers purpose, non-destructive behavior, and a notable edge case. However, it leaves path semantics underspecified and does not distinguish this tool from siblings such as rush_lint or rush_ci. It is adequate but not complete for confident selection and invocation.

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%, and the description does not explain the path parameter. While 'check GitHub Actions workflows' implies path points to workflow files or a repo, it does not specify whether path should be a file, directory, or repository root, nor what happens when path is invalid. The description fails to compensate for the schema's lack of parameter documentation.

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 uses a specific verb and resource: 'Check GitHub Actions workflows'. The qualifier 'without rewriting' adds useful scope and helps distinguish it from formatting or rewrite-style tools. It does not explicitly name sibling alternatives, but the resource is unambiguous enough for an agent to identify what it operates on.

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 phrase 'without rewriting' implies this is a non-mutating check tool, but the description gives no explicit when-to-use or when-not-to-use guidance. Among siblings like rush_lint, rush_ci, and rush_yaml, the choice is left to inference rather than stated.

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

rush_agent_connectionC

Discover, connect, and diagnose local coding agents

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only restates high-level verbs. It doesn't say whether connecting is read-only, whether it scans local processes or files, whether authentication is needed, or what side effects discovery/diagnosis might have.

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 sentence is short, but it is under-specified rather than concise. It omits essential invocation detail and reads more like a marketing tagline than a functional specification.

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?

Despite the presence of an output schema, the description leaves the input contract entirely unknown. With only a generic request object and no behavioral detail, the tool is not callable based on this definition alone.

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 schema has one required 'request' object with additionalProperties: true and 0% schema description coverage. The description provides no hints about what fields the request should contain, so an agent cannot construct a valid invocation.

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 uses three active verbs—Discover, connect, and diagnose—against a clear resource: local coding agents. This distinguishes the tool from most generic rush_* siblings, though it doesn't explicitly name a sibling alternative.

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 is given about when to choose this tool over related siblings such as rush_doctor, rush_context_retrieve, or rush_scan. There are no usage conditions, exclusions, or alternative tool pointers.

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

rush_ai_evalC

Evaluate LLM prompts, agent workflows, and safety guardrails. Requires explicit permissions for live inference runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It adds one behavioral detail (permissions for live inference runs) but does not disclose side effects, what the evaluation does with the path, or the implications of the allow_* flags. This is minimal disclosure for a potentially impactful tool.

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 brief, front-loaded with the action, and has no redundant words. However, it is so short that it omits crucial context, so it is concise but not optimally structured for completeness.

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?

For a tool with 8 parameters, 0% schema coverage, and no annotations, the description is severely incomplete. It does not explain what 'path' points to, what each allow flag controls, when to use this tool versus siblings, or how the evaluation is performed. The output schema does not compensate for the missing parameter and usage details.

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 8 parameters. The required 'path' parameter is undefined, and the boolean allow_* flags (allow_slow, allow_build, allow_browser, etc.) are entirely unexplained, leaving the agent without semantic guidance.

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 states a clear action ('Evaluate') and identifies specific target resources: LLM prompts, agent workflows, and safety guardrails. It does not explicitly differentiate from overlapping siblings like rush_prompt_eval, but the purpose is clear enough to distinguish from generic tools.

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?

The description provides no guidance on when to use this tool versus alternatives. 'Requires explicit permissions for live inference runs' is a prerequisite, not a usage criterion, and no sibling tools are mentioned for comparison.

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

rush_api_diffA

Detect breaking public API changes against base Git ref

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNomain

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/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 implies a read-only detection operation ('Detect'), but it does not explicitly state side effects, permissions, or any behavioral nuances beyond the core action. It does not disclose return format (though an output schema exists) or failure conditions, leaving the agent to infer safety.

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, clear sentence with no waste. It front-loads the verb and resource, and the phrase 'against base Git ref' efficiently conveys the key parameter context. This is a model of conciseness.

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 simplicity (one optional parameter, an output schema available), the description is largely adequate. It tells the agent what the tool does and implies how to use it. However, it omits any guidance on when to use this tool over other API-related tools in the large sibling set, and it does not mention any prerequisites or limitations. Still, for a straightforward detection tool, this is acceptable.

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 0% (no descriptions in the input schema), so the description must compensate. It mentions 'against base Git ref', which clarifies that the 'base' parameter is a Git ref, adding meaning beyond the bare schema. However, it does not explicitly explain that 'base' is optional or describe its default behavior beyond what the schema already shows, so the added value is modest.

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 specific purpose: detecting breaking public API changes against a base Git ref. It uses a specific verb ('Detect') and a specific resource ('breaking public API changes'), and it distinguishes itself from siblings like rush_tui_diff (UI diff) and rush_db_drift (database drift) by focusing on API compatibility.

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 when to use the tool (when you need to check for breaking API changes against a Git ref), but it does not explicitly mention when to prefer it over alternatives or when not to use it. Given the large sibling set, this lack of explicit exclusions leaves some ambiguity for the agent.

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

rush_arch_guardB

Validate codebase against clean architecture layer boundaries

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 full burden of disclosing side effects and behavior. It only states the validation action without saying whether the tool is read-only, modifies files, requires permissions, or how it reports results. The word 'validate' suggests non-mutating behavior, but the name 'guard' could imply blocking, leaving ambiguity.

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 sentence with no filler words; the core action and scope are front-loaded. It is as concise as possible while conveying the essential 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?

The tool has no parameters and an output schema exists, so the description does not need to cover arguments or return structure. However, it lacks context about scope (e.g., whole repository vs. changed files), required configuration, or typical invocation scenarios, leaving some gaps for an agent deciding when to invoke it.

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?

The tool accepts zero parameters and the schema is empty with 100% coverage. The description correctly has no parameter-specific details to add; the baseline 4 for zero-parameter tools applies.

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 uses a specific verb ('validate') and a specific resource/scope ('codebase against clean architecture layer boundaries'), making the tool's function clear. It does not explicitly differentiate from siblings such as rush_lint or rush_complexity, but the unique focus on layer boundaries gives it a reasonably distinct purpose.

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?

The description gives no guidance on when to use this tool instead of other rush_* tools, no prerequisites, and no exclusions. It does not mention typical invocation contexts (e.g., before a commit, after architecture changes) or alternatives to consider.

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

rush_attestC

Generate in-toto Statement v1 SLSA provenance unsigned draft for build artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
verifyNo
allow_slowNo
builder_idNohttps://rush-cli.org/builder/v1
allow_buildNo
output_pathNo
allow_browserNo
allow_networkNo
artifact_pathNo
trusted_rootsNo
allow_downloadNo
allowed_signersNo
allowed_buildersNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.6/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of disclosing behavior. It states the output is an 'unsigned draft', which is useful, but it does not mention potential side effects such as building artifacts, network access, browser use, or file writes—concerns implied by the many 'allow_*' parameters. This lack of disclosure leaves significant behavioral uncertainty.

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, tight sentence with no filler or redundancy. The key information—what is generated and in what form—is front-loaded. It earns high marks for efficiency, though the brevity comes at the cost of completeness.

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?

This is a complex tool with 15 parameters, no schema descriptions, no annotations, and a detailed but undocumented parameter set. The description does not cover prerequisites, side effects, parameter meaning, or even the difference from the sibling 'rush_attest_generate'. An agent cannot reliably invoke this tool correctly based solely on this definition.

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 offers no explanation of any of the 15 parameters. It does not help an agent understand the meaning or relationship of 'path', 'artifact_path', 'output_path', 'allow_*' flags, or 'trusted_roots'. Since the schema itself has no descriptions, the description needed to compensate but did 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 specifies a clear verb ('Generate') and resource ('in-toto Statement v1 SLSA provenance unsigned draft for build artifacts'). It names the exact output format and the 'unsigned draft' qualifier, which distinguishes it from a signed attestation. Though it does not explicitly differentiate from the sibling 'rush_attest_generate', the purpose is concrete and actionable.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, exclusions, or sibling tools. An agent must infer usage solely from the tool name and sibling list, which is insufficient for correct tool selection.

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

rush_attest_generateB

Deprecated alias for rush_attest

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
verifyNo
allow_slowNo
builder_idNohttps://rush-cli.org/builder/v1
allow_buildNo
output_pathNo
allow_browserNo
allow_networkNo
artifact_pathNo
trusted_rootsNo
allow_downloadNo
allowed_signersNo
allowed_buildersNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.1/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 full behavioral burden. It only discloses deprecation status and equivalence to rush_attest; it does not describe side effects, permissions, rate limits, or any concrete execution behavior.

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 compact sentence with no filler, front-loading the deprecation status and the alias target. For a deprecated alias, this is an appropriately concise and clear structure.

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?

The redirect information is sufficient for a deprecated stub, but the tool has 15 parameters, no annotations, and zero schema descriptions. If an agent ever needed to invoke this alias directly, it would lack almost all context about parameter behavior and tool side effects.

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 there are 15 parameters, yet the description provides no semantic information about any of them. The agent gets no help understanding path, verify, allow_* flags, or other settings from the description.

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 identifies the tool as a deprecated alias for rush_attest, which distinguishes it from siblings, but it never states what rush_attest actually does. The agent can infer the tool's behavior only indirectly from the sibling name, leaving the purpose vague.

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 labels the tool as deprecated and names rush_attest as the canonical tool. This gives clear when-not-to-use guidance and a direct alternative, which is exactly what an agent needs to route away from a deprecated alias.

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

rush_benchmarkB

Compare performance samples against baseline thresholds at ; baseline recording requires --allow-cache-write. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
recordNo
optionsYes
samplesNo
operationNocheck
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
baseline_nameNodefault
allow_downloadNo
allow_cache_writeNo
threshold_percentNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

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, and it does add useful behavioral context by noting the cache-write requirement for baseline recording and the returned shape {status, findings[], summary}. It does not explain side effects of other allow_* permissions, how thresholds are applied, or what happens in 'record' vs 'check' modes, so it is only partially transparent.

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 front-loaded sentence with no filler, and it packs the core action, a key prerequisite, and the result shape into a compact string. Every clause earns its place.

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?

Despite having an output schema, this is a highly parameterized tool with 14 inputs and no annotation support. The description leaves too much undefined for correct invocation: operation values, threshold semantics, samples handling, and the meaning of the many allow_* flags are all absent.

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 schema covers 0% of the 14 parameters with descriptions, so the description needed to compensate. It only clarifies <path> and the allow_cache_write requirement; the remaining 12 parameters (options, operation, samples, threshold_percent, baseline_name, etc.) receive no semantic explanation.

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 states a specific action ('Compare performance samples against baseline thresholds') and a target resource (<path>), so an agent can tell this is a benchmarking/regression-checking tool. It does not explicitly differentiate it from related siblings like rush_load or rush_snapshot, but the core behavior is clear.

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 purpose implies when to use it (when performance samples need to be compared to baseline thresholds), and it adds one operational prerequisite: baseline recording requires --allow-cache-write. However, it gives no explicit guidance about when not to use it or which sibling tool might be more appropriate.

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

rush_blast_radiusA

Calculate downstream transitive blast radius for a changed file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
depthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining behavior; 'calculate' implies a read-only analysis and 'downstream transitive' adds directionality and recursive traversal. However, it does not disclose failure conditions, side effects, or depth semantics, leaving some behavioral uncertainty.

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?

A single front-loaded sentence with no filler: the verb, target, and input context all appear in nine words. Every phrase adds semantic value.

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?

The tool is simple (two parameters) and has an output schema, so the description need not enumerate return values. Still, the agent is left uninformed about how depth affects the blast-radius traversal and whether any prerequisites exist for the changed file, which keeps it below 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?

Schema description coverage is 0%, so the description must explain both parameters. It clarifies path as 'a changed file' but gives no meaning for 'depth', which is only visible as an integer default of 5. The description therefore fails to fully compensate for the schema's lack of parameter documentation.

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 ('Calculate') with a precise resource ('downstream transitive blast radius for a changed file'), conveying the tool's core function. It is distinct from all sibling tools, none of which claim the same impact-analysis behavior.

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 phrase 'for a changed file' supplies a clear usage context: call this when a file has changed and the agent needs to know its transitive downstream impact. It does not name alternative tools or when-not-to-use conditions, but given the unique sibling set, this is not a significant gap.

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

rush_ciA

Inspect local CI workflow configuration without accessing credentials or remote status.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.5/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 behavioral burden, and it delivers on the key safety trait: it states the tool is inspect-only and explicitly does not access credentials or remote status. This is genuinely valuable pre-invocation knowledge an agent cannot get elsewhere. It stops short of describing output shape or error/edge behavior, but an output schema exists to cover returns.

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?

A single sentence that front-loads the verb and resource and appends the behavioral constraint. There is zero filler, and the length is appropriate for a one-parameter inspection tool.

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?

The tool has a small surface area (one required param, output schema present), and the description covers purpose, scope, and a key behavioral boundary. Gaps remain: 'path' semantics are undocumented, and no sibling is named for remote-status or credential-requiring cases, but the information needed to invoke the tool is largely present.

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% and the description never mentions the single 'path' parameter directly. The agent can only infer from the tool purpose that 'path' likely points to the CI workflow configuration, with no clarification of file vs directory, relative vs absolute, or accepted formats. The description does not compensate for the schema's complete lack of documentation.

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 opens with a specific verb and resource ('Inspect local CI workflow configuration') and adds meaningful scope constraints ('without accessing credentials or remote status'). This helps distinguish the tool from remote-status CI tools and credential-touching operations among the large sibling list, though it never names an alternative sibling explicitly.

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 constraint 'without accessing credentials or remote status' implies the tool is for local, offline inspection, which gives the agent a sense of when it applies. However, no alternative tool is named and no explicit when-to-use/when-not-to-use conditions are given; the agent must infer applicability from the negative scope rather than being told.

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

rush_codeqlC

Import a local CodeQL SARIF report or run CodeQL analysis under --allow-build.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
report_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.9/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 full burden of behavioral disclosure. It does reveal that the tool can run CodeQL analysis with --allow-build and can import SARIF reports, but it does not explain side effects such as whether builds are triggered, whether files are written, whether external downloads occur, or what permissions are needed. The many allow_* parameters suggest behaviors that remain unexplained.

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 compact sentence with no filler and front-loads the two key actions. It is concise and readable, though it sacrifices important detail for brevity.

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 9 parameters, no annotations, and no schema descriptions, the description is not complete enough for an agent to safely select and invoke this tool. It omits the meaning of most flags, the distinction between import and analysis modes, and the practical implications of running with --allow-build.

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 all 9 parameters. It only hints at the allow_build flag and a SARIF report path, but does not clarify how path and report_path relate, nor explain allow_slow, allow_network, allow_browser, allow_download, allow_cache_write, or allow_artifact_write. This is insufficient for a tool with this many security-relevant flags.

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 identifies the resource (CodeQL SARIF/analysis) and two concrete actions: importing a local SARIF report or running analysis with --allow-build. It does not explicitly contrast with sibling tools like rush_security or rush_scan, but the CodeQL-specific focus makes the purpose fairly distinct.

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 two usage modes—import an existing SARIF report or run a fresh analysis with build allowed—which helps an agent understand basic scenarios. However, it gives no explicit when-to-use guidance, prerequisites, or comparison to alternatives, so the agent must infer appropriate conditions.

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

rush_cold_startB

Audit import overhead and cold-start latency at ; dynamic -X importtime requires --allow-slow. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
dynamicNo
optionsYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
timeout_secondsNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.1/5.0
Behavior3/5

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

Without annotations, the description carries the behavioral disclosure burden. It adds a meaningful caveat (dynamic -X importtime requires --allow-slow) and states the return shape, but it does not disclose whether the audit mutates anything, can execute code, or requires special permissions. Most of the allow_* flags in the schema are left unexplained.

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, opening with the action and resource and summarizing the return value in a compact form. However, given the parameter count, the brevity comes at the cost of needed detail, though this is not a structural or verbosity problem.

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?

This is a high-complexity tool with 11 parameters, no annotations, and no schema-level parameter descriptions. The description only covers the high-level purpose, one behavioral caveat, and the output shape. It is not enough for an agent to correctly supply required parameters like 'options' or understand the allow_* flag semantics.

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. It only indirectly explains dynamic and allow_slow, and it leaves the required 'options' parameter completely unspecified along with the other eight parameters. This is a significant gap for a tool with 11 parameters.

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 uses a specific verb ('Audit') and clearly identifies the resource ('import overhead and cold-start latency at <path>'), which distinguishes it from broader sibling tools like rush_benchmark or rush_mem_profile. It is not a tautology and gives the agent a concrete sense of the tool's scope.

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 when to use the tool—when investigating import overhead or cold-start latency—but it does not explicitly name alternatives or state when not to use it. The note about dynamic importtime requiring allow_slow is useful usage guidance but does not address sibling-tool selection.

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

rush_commit_msgC

Validate supplied Conventional Commit messages without modifying Git history.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
messageNo
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.9/5.0
Behavior3/5

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

The description discloses the key side-effect (no Git history modification), which is valuable given that no annotations are provided. However, it does not cover other behaviors such as error handling, return format, permissions, or the meaning of the various boolean parameters (allow_slow, allow_build, etc.). With no annotations, the description only partially carries the transparency burden.

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, front-loaded sentence that states the core purpose succinctly with no fluff. It is appropriately concise, though it sacrifices detail for brevity, which is why it is not a 5.

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?

For a tool with 9 parameters, no annotations, and a non-trivial schema, the description is severely inadequate. It omits parameter semantics, usage context, behavioral details, and return behavior, making it impossible for an agent to invoke the tool correctly without substantial additional information.

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 9 parameters with 0% description coverage, and the tool description provides no explanation of 'path', 'message', or the permission-like boolean flags. The description fails to compensate for the schema gap, leaving an agent unable to correctly populate the parameters without external knowledge.

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 a specific verb ('Validate') and resource ('Conventional Commit messages'), and explicitly negates side effects ('without modifying Git history'). It distinguishes itself from sibling tools, none of which suggest commit-message validation, so an agent can identify its purpose without ambiguity.

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?

There is no mention of when to use this tool versus alternatives, no context about prerequisites, and no explicit exclusions. The description only states the primary action, leaving the agent to infer that it is meant for validating commit messages, but without any guidance on scenarios where it might not be appropriate or alternatives to consider.

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

rush_complexityA

Measure Python and JS/TS complexity at . Uses radon or jscpd; missing engines return status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description must disclose behavior itself. It does so by naming the engines (radon or jscpd) and the skip fallback when engines are missing. Although it does not explicitly state that the operation is read-only, 'measure' plus the 'status='skipped'' behavior imply a non-mutating analysis.

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 tight sentences front-load the core action and then add only essential engine and fallback detail. No wasted words or redundant schema repetition.

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 single-parameter measurement tool, the description covers purpose, engines, and failure behavior. An output schema exists, so return-value documentation is not required from the description. The only missing piece is explicit usage guidance, which is already captured in the usage_guidelines dimension.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must clarify the path parameter. It does so minimally by identifying <path> as the target of complexity measurement and implying Python/JS/TS code, but it does not specify whether path should be a file or directory or give any path-formatting rules. The single generic path parameter leaves little ambiguity, but the description could add more 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 first clause names a specific action ('Measure'), a resource type ('Python and JS/TS complexity'), and a target ('at <path>'). Among the many rush_* siblings, this is the only one concerned with complexity measurement, so it is clearly differentiated.

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 use when complexity measurement is needed, but it gives no explicit when-to-use or when-not-to-use guidance and does not name alternatives such as rush_review or rush_lint. The engine and fallback sentence is behavioral, not usage direction.

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

rush_containerfileA

Check container files without rewriting; missing hadolint returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It discloses a key non-mutating trait ('without rewriting') and a meaningful edge case behavior ('missing hadolint returns status=skipped'). It does not describe every possible status or side effect, but it is strong for a simple check-style tool.

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 efficient sentence with no filler. The primary purpose comes first, and the important behavioral edge case is stated in a compact second clause.

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 one-parameter, no-nesting tool with an output schema, the description is largely complete: it states what is checked, that nothing is rewritten, and what happens when hadolint is missing. The main minor gaps are explicit path semantics and comparison with sibling tools, but the tool is simple enough that these are not critical.

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 schema has only one required path parameter with 0% schema description coverage, so the description must compensate. The description never explicitly ties 'path' to a container file, even though that is inferable from context. This is a noticeable gap at 0% 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?

The description uses a specific verb ('check') and resource ('container files'), and the phrase 'without rewriting' distinguishes it from mutating or fix-oriented tools. Mentioning hadolint makes the checking mechanism concrete and helps separate it from generic linters.

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 clearly implies this tool is for checking container files, but it does not explicitly state when to use it versus siblings like rush_lint, rush_scan, or rush_review. The use case is inferable, but no when-not guidance or alternative routing is provided.

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

rush_context_gain_statsB

Get real-time token economy savings and cost metrics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It mentions 'real-time' implying a live query, but does not clarify whether the operation is read-only, has side effects, requires authentication, or what happens on failure. No details about the output or any limitations are given.

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, front-loaded sentence that conveys the core purpose efficiently. It is appropriately concise with no wasted words, though it could benefit from a bit more context without becoming verbose.

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?

The tool is simple (0 params, output schema present), so the description need not explain return values. However, it lacks any context about what 'token economy' specifically refers to, potential use cases, or any prerequisites. For a tool with such a specific name, more context could help an agent decide if it's the right choice.

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?

The tool has zero parameters, and schema coverage is 100% (vacuously). Per guidelines, a baseline of 4 is appropriate for 0-param tools since there is nothing to document. The description adds no parameter-specific detail, which is acceptable given there are none.

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's purpose: 'Get real-time token economy savings and cost metrics' identifies a specific verb (get) and resource (token economy savings and cost metrics). It is unambiguous and distinct from the many sibling tools, though it does not explicitly differentiate from similar context-related tools like rush_context_retrieve or rush_token_outline.

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 is provided on when to use this tool versus alternatives. There is no mention of scenarios where this should be preferred, nor any exclusions. The description only states what it does, not when to invoke it.

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

rush_context_mistakes_checkB

Check git revert history for past mistakes and anti-patterns

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden. 'Check' suggests a read-only inspection, but the description never states that it does not modify the repository, what permissions are needed, or any other behavioral traits. It does not contradict anything, but it omits the safety profile entirely.

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?

A single front-loaded sentence with no filler. It conveys the action and target in ten words. It is short rather than over-specified, so appropriateness is high.

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 zero-parameter tool with an output schema, the description is mostly sufficient. Gaps remain: what counts as a 'mistake' or 'anti-pattern', which repository/history is checked, and when to invoke this tool relative to its siblings. This is adequate but not complete.

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?

The input schema has zero properties, so there is nothing to document; schema coverage is trivially 100%. No parameter explanation is needed, and the description adds no irrelevant parameter details.

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?

States a specific action ('Check') and resource ('git revert history'), and identifies the subject as 'past mistakes and anti-patterns.' It doesn't explicitly differentiate from siblings such as rush_context_retrieve or rush_review, but the domain is distinct enough. Vague terms like 'mistakes' and 'anti-patterns' reduce clarity slightly.

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 choose this tool over siblings, when it is appropriate, or when not to use it. The description gives no context, exclusions, or alternatives, so an agent must infer usage from the name alone.

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

rush_context_packC

Pack graph-pruned context outline under a strict token budget

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
budgetNo
symbolNo
allow_cache_writeNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions a 'strict token budget' and 'graph-pruned context outline', which hints at the tool's behavior, but it does not disclose side effects, whether it writes to cache (despite the allow_cache_write parameter), what happens when the budget is exceeded, or whether the operation is read-only or mutating. The description is too terse to provide meaningful 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.

Conciseness3/5

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

The description is a single short sentence, which is concise, but it is under-specified rather than efficiently informative. It front-loads the core action but omits essential context. It earns a middle score because it is not verbose, but it does not use its brevity to deliver high-value information.

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 tool has 4 parameters, no output schema, no annotations, and 0% schema description coverage, the description is far from complete. An agent cannot determine what inputs are required, what the output looks like, or what side effects may occur. The tool appears to be part of a large family of rush_* tools, and without more context, an agent is likely to misuse it.

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 the four parameters, but it only mentions 'token budget' (mapping to budget) and 'context outline' (loosely mapping to path). It does not explain what 'path' refers to, what 'symbol' selects, or what 'allow_cache_write' controls. The description adds minimal meaning beyond the schema and leaves most parameters semantically opaque.

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 'Pack graph-pruned context outline under a strict token budget' names a specific verb ('pack') and resource ('context outline'), and mentions a token budget, which gives a rough sense of the operation. However, it does not explain what 'graph-pruned' means or what the output artifact is, and it does not distinguish this tool from the many sibling context-related tools like rush_context_retrieve, rush_token_outline, or rush_context_gain_stats. The purpose is clear enough at a high level but lacks the specificity needed to differentiate it from siblings.

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?

The description gives no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or exclusions, and it does not reference any sibling tools. An agent would have to infer from the name and description that this is for packing context, but there is no explicit routing information.

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

rush_context_retrieveC

Retrieve uncompressed content from CCR chunk store by hash

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.
chunk_hashYes

TDQS

C2.8/5.0
Behavior2/5

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

The description discloses that the returned content is uncompressed, but no annotation is present to cover safety/aspects. It does not state whether this is a pure read operation, what happens for an unknown or missing hash, or whether any related state is changed.

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 focused sentence with no filler. The core action and key qualifier are front-loaded, making it easy to scan.

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 no annotations, no output schema, and 0% schema parameter coverage, this one-line description leaves important gaps: the meaning of 'path', what a successful response looks like, and expected behavior on errors are all absent. More context is needed for reliable invocation.

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 the parameters. It only hints at 'chunk_hash' via the phrase 'by hash' and says nothing about 'path' or its default value, leaving a required aspect of the tool under-specified.

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 states a specific verb ('Retrieve'), a specific resource ('content from CCR chunk store'), and a lookup key ('hash'), making the tool's purpose clear. It stands apart from sibling tools like rush_context_pack and rush_context_mistakes_check, though it does not explicitly name a distinguishing alternative.

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?

The description gives no guidance on when to use this tool versus siblings or when it is appropriate to call it. There is also no mention of prerequisites, such as having a valid hash or needing a particular path context.

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

rush_continuityC

Save, list, or restore a local Rush session checkpoint. Returns {status, findings[], summary}; saving requires explicit cache-write permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pathYes
as_v1No
filesNo
agent_idNo
base_codeNo
open_workNo
operationNolist
ours_codeNo
provider_idNo
theirs_codeNo
context_pathNo
current_goalNo
dependenciesNo
token_budgetNo
allow_networkNo
target_symbolNo
context_handleNo
allow_cache_writeNo
coordination_pathNo
flight_session_idNo
failure_fingerprintNo
historic_instructionNo
coordination_max_age_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does disclose the return shape and the requirement that saving needs explicit cache-write permission, which is genuinely useful. However, it does not explain side effects for restore or the other operation modes, whether operations mutate state, or whether network access is involved.

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 filler. The core purpose is stated first, followed by the return shape and the most important permission caveat. Every sentence earns its place.

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?

This is a high-complexity tool with 24 parameters, nine operation enum values, no annotations, and no parameter descriptions. The description covers only a small fraction of that surface, omitting how operation selects behavior and which parameters apply to which modes. An agent cannot confidently call this tool correctly based on the description alone.

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% and there are 24 parameters, so the description must compensate heavily. The only added semantics are the cache-write permission requirement and the mention of save/list/restore modes. This is far too little to make the many parameters meaningful, and the agent still has no guide to how path, files, token_budget, or provider_id relate to operations.

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 states a clear verb and resource: save, list, or restore a local Rush session checkpoint. However, the operation enum reveals nine distinct modes including context_pack, coordination_check, and provider_resume, none of which are mentioned in the description. This makes the stated purpose materially incomplete and potentially misleading about the tool's actual scope.

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?

The description does not say when to use this tool versus alternatives like rush_context_pack, rush_context_retrieve, or rush_memory. It provides no exclusions, no operation-selection guidance, and no prerequisites beyond the cache-write permission for saving. An agent would be guessing when to invoke this tool instead of a sibling.

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

rush_contractC

Import a local Pact report or run local contract verifications under --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
allow_slowNo
pact_filesNo
allow_buildNo
report_pathNo
provider_urlNo
allow_browserNo
allow_networkNo
allow_downloadNo
timeout_secondsNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/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 behavioral traits. It mentions 'import' and 'run verifications', but does not state potential side effects like building, network access, downloading dependencies, or cache writes, even though many parameters (allow_build, allow_network, allow_download, allow_cache_write) suggest these are possible. The description is silent on what actually happens during execution, leaving the agent without critical safety or side-effect knowledge.

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 extremely concise—a single sentence that front-loads the primary action. It wastes no words and is easy to parse. However, the conciseness comes at the cost of essential details, which is a trade-off that reduces effectiveness overall.

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?

With 13 parameters, no annotations, and no output schema explanation, the description is drastically incomplete. An agent cannot determine how to set up the contract verification, what the required 'path' refers to, how 'options' is structured, or what the return value contains. Every aspect beyond the mention of --allow-slow is left unspecified, making the tool effectively inscrutable for an AI agent.

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%, meaning none of the 13 parameters have descriptions in the schema. The description itself only mentions the --allow-slow flag, leaving the other 12 parameters undefined. An agent cannot infer the meaning of options like path, pact_files, provider_url, or allow_browser from the tool description, making it impossible to correctly invoke the tool beyond the simplest case.

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's two distinct actions: importing a local Pact report and running local contract verifications with the --allow-slow flag. This is specific enough to distinguish it from siblings like rush_test or rush_lint, which focus on other concerns. However, it does not explicitly name any sibling tool as an alternative, so it doesn't fully separate itself in the broader context.

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?

The description implies usage: when you have a Pact report or want to verify contracts. But it provides no conditions for when to use this tool versus alternatives, no exclusions, and no prerequisites. With a large sibling list, the lack of routing guidance is a notable gap.

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

rush_coverageC

Import a local coverage report or run coverage analysis under --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
report_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions two modes (import vs. run analysis) and the --allow-slow flag, but doesn't disclose side effects, whether it writes files, requires network/build access, or what the output looks like. The schema shows many allow_* flags (allow_build, allow_network, allow_download, etc.) but the description doesn't explain their behavioral implications.

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 with no wasted words. It front-loads the primary action (import) and mentions the alternative mode. However, it's so terse that it sacrifices necessary detail for brevity.

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?

For a tool with 9 parameters, 0% schema description coverage, no annotations, and an output schema, the description is far too thin. It doesn't explain the two modes' relationship, what the allow_* flags do, when to use them, or what the output schema contains. An agent would struggle to invoke this tool correctly without opening the schema and guessing at flag semantics.

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 the 9 parameters. It only mentions 'local coverage report' (mapping to path/report_path) and '--allow-slow' (mapping to allow_slow), leaving the other 7 parameters (allow_build, allow_browser, allow_network, allow_download, allow_cache_write, allow_artifact_write) completely unexplained. The description adds minimal meaning beyond the schema's field names.

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 states a specific action ('Import a local coverage report or run coverage analysis') and names the resource (coverage), which is clear enough to distinguish it from most siblings. However, it doesn't explicitly differentiate it from other rush_* tools that might also analyze code, and the 'under --allow-slow' phrasing is cryptic without explaining what that flag does.

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?

The description gives no guidance on when to use this tool versus alternatives like rush_test, rush_benchmark, or rush_review. It doesn't state prerequisites, when importing a report is preferred over running analysis, or what the --allow-slow flag implies for usage. The agent is left to infer context from the tool name and schema.

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

rush_db_driftB

Audit ORM models against migrations to detect schema drift

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 full burden of disclosing behavioral traits. It implies a read-only diagnostic operation but never explicitly states that it performs no mutations, what kind of report or exit status it produces, or how it handles nondeterminism. The phrase 'Audit... to detect' gives intent but not behavioral detail.

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, tightly written sentence with no filler or repetition. Every word earns its place, and the core action and target are front-loaded, making it easy for an agent to parse quickly.

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 zero-parameter tool with an output schema, the description is mostly adequate: it states the subject and purpose clearly. However, without annotations or any usage guidance, and in the face of dozens of sibling rush_* tools, it leaves some ambiguity about when this checker should be invoked and what behavioral guarantees it offers.

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?

The tool has zero parameters, so there is nothing for the description to explain beyond its already-communicated domain. The baseline of 4 applies here; the description's reference to ORM models and migrations provides all necessary semantic context.

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 names a specific verb ('Audit'), a concrete resource ('ORM models'), and a clear objective ('detect schema drift'), so an agent can understand what this tool does at a glance. It distinguishes itself from generic lint/audit siblings by targeting database schema drift, though it does not explicitly contrast itself with any potential sibling like semantic drift.

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?

There is no guidance on when to choose this tool over the many sibling audit/drift tools, nor any stated conditions, prerequisites, or exclusions. The intended use is only implied by the verb 'Audit' and the resource scope, leaving an agent to infer when 'rush_db_drift' is the right call.

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

rush_deadA

Find unused Python and JS/TS code at . Uses vulture or knip; missing engines return status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral burden. It exceeds a bare purpose statement by disclosing the engine strategy ('Uses vulture or knip') and the edge-case fallback ('missing engines return status='skipped''). It stops short of explicitly confirming the analysis is non-destructive, though the verb 'Find' strongly implies read-only.

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 zero filler. The first sentence front-loads the purpose and parameter role; the second adds tooling and fallback behavior. Every clause earns its place.

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 single-parameter tool with an output schema, the description covers purpose, supported languages, engine selection, and the missing-engine fallback. The main gap is the absence of an explicit non-destructive/read-only statement, which matters in a family where analysis tools could conceivably also mutate code.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does clarify that <path> is the scan target for dead-code detection, but it leaves path semantics open: file vs. directory, recursion behavior, and how vulture and knip interpret the path differently.

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 states a specific verb ('Find') with a precise resource ('unused Python and JS/TS code') and a location scope ('at <path>'). The language-specific scope distinguishes it from adjacent siblings like rush_dead_asset (unused assets vs. code) and from quality tools like rush_lint or rush_complexity.

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 when to use the tool — when unused Python or JS/TS code needs to be identified at a given path. However, it gives no explicit when-not conditions or named alternatives, which is a meaningful gap given a sibling list of 80+ tools including the closely related rush_dead_asset.

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

rush_dead_assetA

Detect unreferenced images, fonts, and media assets under (strictly read-only). Returns {status, findings[], summary}; export manifest requires --allow-artifact-write.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
export_manifestNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A4/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 transparency burden. It explicitly states 'strictly read-only,' discloses the return shape ({status, findings[], summary}), and warns that exporting a manifest requires --allow-artifact-write. This is strong behavioral disclosure, though it does not cover edge cases 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?

Two dense sentences with no filler. The action and scope are front-loaded, read-only safety is placed prominently, and the export caveat is compressed into a single clause. Every part earns its place.

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 moderate complexity, the description covers the essential context: what it scans, the read-only guarantee, the return shape, and the artifact-write requirement. An output schema exists to fill in return details, so this is sufficiently complete, though it could add a note on whether path must be a directory or file.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It references all three parameters indirectly: <path>, export manifest, and --allow-artifact-write, and it explains the relationship between manifest export and write permission. However, it does not clarify expected formats, defaults beyond the schema, or the meaning of null 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 opens with a specific verb ('Detect') and a concrete resource ('unreferenced images, fonts, and media assets') scoped to a path. This clearly distinguishes rush_dead_asset from siblings like rush_dead (likely code-focused) and rush_media_opt (optimization-focused).

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 tool's use case is implied clearly: run this when you need to find unreferenced media assets under a path. However, it does not explicitly mention alternatives or state when not to use it, so the agent must infer routing from the name and sibling context.

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

rush_doctorA

Diagnose environment health, toolchain integrity, and binary resolution at . Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

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 behavioral burden. It discloses the output contract '{status, findings[], summary}', which is useful, but it does not mention side effects, prerequisites, network/local behavior, or whether the tool is purely read-only. 'Diagnose' implies non-mutating, but that is left to inference.

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?

A single, front-loaded sentence that states the action, target, and return shape. Every word earns its place; there is no filler 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?

For a tool with one optional parameter and an output schema, the description is nearly complete: it names what is diagnosed and the response envelope. It lacks guidance on when to use it among sibling tools, but the output schema covers return-value details.

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, but it only repeats '<path>' as a placeholder. It does not explain what path should point to, how the default '.' behaves, or what kinds of paths are valid beyond the schema's format: 'path'.

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 names a specific verb ('Diagnose'), explicit resources ('environment health, toolchain integrity, and binary resolution'), and a scope ('<path>'). This differentiates it from the many sibling rush_* tools, which focus on linting, testing, benchmarking, or scanning, not environment health.

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 clearly implies the tool is for diagnosing environment/toolchain/binary issues, but it does not state when to prefer it over related tools such as rush_scan or rush_continuity, and it provides no exclusions or alternative recommendations. Context is present but not explicit.

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

rush_e2eC

Run configured E2E tests only with --allow-browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses one gate — the run requires allow_browser — but says nothing about side effects of E2E runs (launching a browser, writing files, network usage), what happens if the gate is false, or why the other six allow_* permission flags exist. For a tool built around permission-style flags, this is a significant gap.

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?

A single sentence with zero filler, and the verb and resource are front-loaded. However, 'only with --allow-browser' is terse to the point of possible confusion — an agent could mistake it for a shell flag rather than the JSON parameter allow_browser.

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 output schema exists, so return values needn't be explained, but the description is still inadequate for a 9-parameter tool with no annotations and zero parameter documentation. It fails to explain the gating model behind the allow_* flags, the role of path and options, or when to prefer a sibling tool, leaving an agent to guess on most of the input surface.

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 the schema's silence. It adds meaning to exactly one of nine parameters (allow_browser, and only in CLI notation), while path, options, and the other six allow_* booleans receive no semantic explanation at all. It does not meet the burden set by a 0%-coverage schema.

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 names a specific verb and resource: 'Run configured E2E tests.' The qualifier 'only with --allow-browser' adds a distinguishing condition. It partially separates this from siblings like rush_test by naming E2E tests explicitly, but it does not fully differentiate it from other test-adjacent tools (rush_snapshot, rush_visual) and the '--allow-browser' phrasing is cryptic.

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 when to use the tool — when configured E2E tests must be run — and states a precondition (pass --allow-browser). However, it gives no explicit when-not-to-use guidance, no alternative routing such as 'for unit tests use rush_test', and no explanation of what happens when the browser gate is not satisfied.

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

rush_error_catalogB

Extract Python, TypeScript, and Rust exceptions at , generate RFC 7807 problem catalog; export markdown requires --allow-artifact-write.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
export_pathNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full behavioral burden. It does disclose a meaningful behavioral requirement: exporting markdown requires --allow-artifact-write, which informs the agent about write permissions. However, it does not clarify whether extraction itself writes anything, what side effects occur, or what the output schema contains beyond the catalog concept.

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 dense sentence that front-loads the primary action and includes a key requirement. The only flaw is the awkward literal '<path>' placeholder and the semicolon structure, which slightly reduce clarity without wasting 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?

An output schema exists, so return values are partially covered, but the description is still incomplete for an agent deciding whether and how to invoke this tool. It provides no usage context relative to siblings and leaves path and export_path semantics underspecified. The tool is not adequately self-contained.

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. It only indirectly addresses the allow_artifact_write parameter via the export requirement, and it uses a literal '<path>' placeholder without explaining what path should be provided. export_path is completely unexplained.

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

Purpose5/5

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

The description uses a specific verb ('Extract') with a clear resource ('Python, TypeScript, and Rust exceptions at <path>') and a concrete output concept (RFC 7807 problem catalog). This clearly differentiates it from the large sibling set of rush_* tools, none of which claim this behavior.

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?

The description gives no guidance on when to use this tool as opposed to any of the many sibling tools. It states its function but does not mention alternatives, exclusions, or preconditions for choosing it.

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

rush_fixB

Safely auto-remediate formatting and linter issues at . Returns {status, findings[], summary}. Enforces strict path confinement.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.
forceNo
dry_runNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

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 discloses the return shape and the 'strict path confinement' safety behavior. However, it does not clearly state that files will be modified, how force affects that, or the purpose of allow_artifact_write. 'Safely' is vague and doesn't cover side effects or dry-run semantics.

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 short sentences with no waste. The main action is front-loaded, followed by a compact return shape and a key safety constraint. Every sentence contributes essential information.

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 tool has 4 optional parameters with 0% schema coverage, so the description needs to explain their roles. It only covers path and the overall purpose, leaving force, dry_run, and allow_artifact_write as unexplained flags. It also lacks usage guidance and side-effect disclosure, making the description insufficient for correct invocation without external knowledge.

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 the parameters. It only mentions <path>, leaving force, dry_run, and allow_artifact_write completely unexplained. The description fails to compensate for the missing schema documentation, forcing the agent to guess at the flags' meanings.

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 states a specific action ('auto-remediate') and resource ('formatting and linter issues at <path>'), clearly indicating a fix tool. However, it does not explicitly distinguish from siblings like rush_lint and rush_format, leaving some ambiguity about overlapping functionality.

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?

Usage is implied: use it when you want to automatically fix formatting and linter issues at a path. But there is no explicit when-to-use vs alternatives, no conditions, no prerequisites, and no statement about when not to use it (e.g., when you only want to lint or format without fixing).

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

rush_flakyC

Import a local JUnit report or run duplicate test analysis under --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
report_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/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 carry the burden of disclosing behavioral characteristics. It only states the actions 'import' and 'run analysis'; it does not explain whether the operation writes state, requires an existing report, is read-only, or what slow mode implies beyond its name.

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 with no filler, and the primary action is front-loaded. However, it packs two disjoint operations into one clause and brevity sacrifices necessary detail.

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?

A 9-parameter tool with no annotations and only a one-sentence description leaves an agent unable to understand how to select parameters or anticipate side effects. The output schema may clarify return values, but the behavioral and operational context is far from complete.

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 there are 9 parameters. The description alludes only to allow_slow via --allow-slow and provides no meaning for the required path, report_path, or the many allow_* boolean flags.

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 names two concrete operations: importing a local JUnit report and running duplicate test analysis, with the --allow-slow condition attached to the latter. It does not explicitly differentiate it from sibling test-related tools, but the verb+resource framing is reasonably clear.

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 is given on when to prefer rush_flaky over rush_test, rush_test_heal, or other testing-related siblings. The only contextual hint is the --allow-slow flag, which signals a mode rather than a usage criterion.

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

rush_formatA

Format Python/JS/TS files at . Returns {status, findings[], summary}. Engines: ruff format (Python), prettier (JS/TS). Always check-only in v0.1.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
checkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A4.2/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, and it does well by explicitly stating 'Always check-only in v0.1' and listing the return shape {status, findings[], summary}. It does not fully disclose failure modes, permissions, or path expectations, but the key non-mutating behavior is clearly surfaced.

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 short and every sentence earns its place: purpose, return shape, engines, and behavioral constraint. It is front-loaded with the action and resource, and the additional details are all relevant and specific.

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 two-parameter tool with no annotations and a simple output shape, the description provides enough to call the tool correctly: what it does, which files it targets, the engines, the return contract, and the check-only behavior. It could mention whether path is a file or directory or expand on the `check` parameter, but these are minor gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds useful semantics for path by specifying supported file types and the placeholder '<path>', and 'check-only' clarifies tool behavior. However, the `check` parameter itself is not explained—its default is false but the description does not say what setting it to true does, leaving part of the parameter surface underdocumented.

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 names a specific action ('Format'), resource ('Python/JS/TS files at <path>'), and the engines used, making the tool's purpose unmistakable. It is clearly distinguishable from siblings like rush_lint because it is about formatting, and the check-only note further narrows its scope.

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 gives clear usage context: Python/JS/TS files, specific engines, and that it is check-only in v0.1. It stops short of explicitly naming alternative tools or stating when not to use it, but the file-type and engine details are enough to infer the intended use case.

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

rush_fuzzC

Import a local fuzz report or execute local fuzz tests under --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
seedNo
corpusNo
harnessNo
optionsYes
max_runsNo
allow_slowNo
allow_buildNo
report_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
timeout_secondsNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It discloses only that fuzz tests are slow enough to require --allow-slow; it does not mention build requirements, network/browser/download side effects (despite six allow_* flags in the schema), or what importing a report entails.

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?

One sentence with zero filler, and the two primary operations are front-loaded. It is appropriately compact for what it conveys, though the brevity borders on under-specification rather than pure efficiency.

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?

For a complex 15-parameter tool with two distinct modes and no annotations, this description is incomplete. The output schema reduces the burden of explaining return values, but significant gaps remain: which parameters apply to import versus execution, what each allow_* flag gates, and whether import is a prerequisite for running tests.

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 15 undocumented parameters. It adds meaning only to allow_slow and vaguely frames path within the two modes; the remaining 13 parameters (seed, corpus, harness, max_runs, timeout_seconds, and the permission flags) receive no explanation.

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 names two concrete operations with a specific resource: 'Import a local fuzz report' and 'execute local fuzz tests.' This is more specific than average and conveys the dual-mode nature of the tool, even though it does not explicitly differentiate it from siblings like rush_test, rush_pbt, or rush_mutation.

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 is given on when to use this tool versus alternatives such as rush_pbt or rush_test, and no exclusions are stated. The only usage signal is 'under --allow-slow,' which hints that execution requires that flag, but this is weak and implicit rather than explicit guidance.

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

rush_hallu_guardB

Audit code imports against installed packages and stdlib

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 burden of behavioral disclosure. It conveys that the tool compares imports against installed packages and the standard library, but it does not state whether the tool modifies files, how it resolves the environment, or what it does with missing or unknown imports.

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 front-loaded sentence with no filler or redundancy. It is appropriately concise for the tool's simplicity.

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?

The output schema likely covers return values, so those need not be described. However, the description omits important invocation context such as path semantics, whether scanning is recursive, and what counts as an 'installed package,' leaving an agent to guess.

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 only parameter, 'path', has no schema description and the description does not explain how path is used or what it should point to (file vs directory). Since schema description coverage is 0%, the description should compensate, but it does not.

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 states a specific verb ('Audit'), a specific resource ('code imports'), and the comparison target ('installed packages and stdlib'). This clearly distinguishes the tool from siblings like rush_lint, rush_security, and rush_dead, whose purposes are not about import validation.

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?

The description gives no explicit guidance on when to use this tool versus alternatives, and no exclusions or prerequisites are mentioned. An agent must infer the use case from the tool name and one-line description.

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

rush_iacB

Check Terraform without rewriting; missing local engines return status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.3/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 a key behavioral trait: 'missing local engines return status=skipped'. However, it does not explain what 'local engines' are, whether the operation is read-only beyond the implied 'without rewriting', or any permission/error specifics. It offers some transparency but is incomplete.

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 sentence that is concise and front-loaded with the primary purpose. It includes a key behavioral detail (status='skipped') without unnecessary fluff. Every word earns its place.

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 tool has only one parameter and an output schema, the description is still insufficient. It does not explain what 'check' entails (validation, formatting, plan? ), what 'missing local engines' means, or what the path parameter should contain. The output schema may cover return values, but the input semantics and operational context are under-specified. For a simple tool with many siblings, more context is needed.

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 description does not mention the sole 'path' parameter at all. The schema only provides the name and format 'path', with 0% description coverage. An agent receives no guidance on what the path should point to (e.g., a directory, a file, a module) or how it relates to the Terraform check. This is a critical 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 the action 'Check' and the resource 'Terraform', and adds 'without rewriting' to signal it is non-modifying. This distinguishes it from sibling check tools like rush_lint or rush_typecheck by focusing on Terraform specifically. The purpose is unambiguous.

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 context (when you want to check Terraform without rewriting) but provides no explicit when-not-to-use guidance or named alternatives. It does not mention any sibling tools or conditions that would select this over others, so usage is inferred rather than explicit.

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

rush_iam_auditC

Audit cloud SDK calls in code, inspect Terraform HCL2 policies for wildcards, and synthesize minimal least-privilege IAM policies. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
output_policy_fileNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.8/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 full burden. It states that the tool audits and synthesizes policies and returns a specific shape, but it does not disclose side effects such as writing an output policy file, whether it is read-only, or whether it requires network/sandbox permissions (despite many allow_* parameters). The return shape is helpful but insufficient for 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.

Conciseness4/5

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

Two sentences with no fluff, and the main purpose is front-loaded before the return shape. It is efficient, though slightly under-specified for the tool's complexity; still, for what it contains, the structure is tight.

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 9 parameters, zero parameter documentation, no usage guidance, and no annotations, the description is incomplete. It does state the return shape, but doesn't explain parameter semantics, invocation context, or side effects. An agent would need to guess how to correctly call this tool for a meaningful audit.

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 9 parameters. It doesn't mention that 'path' is required, what 'output_policy_file' controls, or what the 'allow_*' booleans mean. The description adds no meaning beyond the raw schema titles.

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 names specific actions (audit cloud SDK calls, inspect Terraform HCL2 for wildcards, synthesize least-privilege IAM policies) and a clear resource domain (IAM). This is detailed enough that an agent can distinguish it from generic siblings like rush_security or rush_iac without opening the schema.

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?

The description gives no guidance on when to choose this tool over alternatives, no prerequisites, and no exclusions. It merely states the purpose; the agent must infer when it is appropriate. There is no reference to sibling tools or contexts where this tool is or isn't preferred.

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

rush_license_matrixC

Audit open-source dependencies for license risks and copyleft compliance. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allowed_licensesNo
package_licensesNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It mentions the operation and return shape, but does not explain important behavioral traits signaled by the parameters, such as whether this audit can be slow, trigger builds, use the network, or write caches. The allow_* flags in the schema remain unexplained.

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 and both earn their place: the first states the core purposeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, and the second gives the return structure. It is front-loaded and free of filler.

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?

Despite an output schema, the tool has 10 parameters with zero schema-level descriptionsy and no annotations, yet the description does not clarify how to invoke it correctly. The presence of allow_slow, allow_build, allow_network, and others implies hidden operational constraints that should be explained, leaving significant gaps for an AI agent.

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%, so the description must compensate by explaining parameters, but it does not mention any of the 10 parameters. The meaning of 'path', 'allowed_licenses', 'package_licenses', and the various allow_* flags is left entirely to the schema's field names and defaults, which is insufficient for confident invocation.

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 states a specific verb ('Audit'), a clear resource ('open-source dependencies'), and the exact purpose ('license risks and copyleft compliance'). It does not explicitly distinguish this tool from related sibling tools like rush_security or rush_sbom, so it does not reach a 5.

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 intended use case is reasonably implied: use this tool when an audit of license risks and copyleft compliance is needed. However, the description provides no explicit guidance about when to prefer this tool over alternatives, no exclusions, and no prerequisites, so the guidance remains implicit.

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

rush_lintA

Lint Python/JS/TS files at . Returns {status, findings[], summary}. Engines: ruff (Python), eslint (JS/TS). status='skipped' means engine not on PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
engine_argsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.8/5.0
Behavior4/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 the return contract ({status, findings[], summary}), the engine-per-language routing, and the 'skipped' condition. While not exhaustive, this is solid behavioral transparency for a lint operation.

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 concise sentences with no filler. The action and target come first, followed by the return shape and the engine/status details. Every sentence adds distinct value.

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 low-complexity tool with an output schema, the core contract is adequately covered. However, engine_args semantics and whether path should be a file or directory are underspecified, leaving optional behavior 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 compensate. It clarifies the path parameter by specifying supported languages and engine selection, but it never explains engine_args, the optional array parameter, leaving its behavior entirely to inference.

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 states a specific action ('Lint'), a specific resource ('Python/JS/TS files at <path>'), and engine mapping, which clearly distinguishes it from siblings like rush_format or rush_typecheck. An agent can immediately understand what the tool does.

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 when to use the tool: linting supported files at a path with available engines. It also explains the 'skipped' status when an engine is missing, but it does not explicitly contrast this with nearby alternatives or state 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.

rush_loadC

Import a local load report or execute load traffic under --allow-network.

ParametersJSON Schema
NameRequiredDescriptionDefault
vusNo
pathYes
scriptNo
optionsYes
allow_slowNo
target_urlNo
allow_buildNo
report_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
timeout_secondsNo
duration_secondsNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/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 full burden. It mentions the --allow-network flag but does not disclose side effects, whether it executes arbitrary code, resource impact, or what the import does to existing state. A load-testing tool typically runs scripts and may be resource-intensive; none of that is disclosed.

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

Conciseness3/5

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

The description is a single sentence and is not verbose, so it is concise. However, it under-specifies the tool's behavior and offers no structure (e.g., bullets or sections) to organize the two modes. It is not over-wordy but is too thin to be considered well-structured.

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?

With 15 parameters, 2 required, and zero schema descriptions, the description is severely incomplete. It does not explain the required 'options' parameter, the meaning of the boolean flags, timeout/duration, or what the output schema contains. An agent cannot correctly invoke this tool without guessing.

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 15 parameters. It does not clarify what 'path', 'options', 'vus', 'duration_seconds', or the various allow_* flags mean. The description fails to compensate for the schema's lack of property descriptions.

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 states a clear action: import a local load report or execute load traffic, with the network gate mentioned. It is not a tautology and conveys the core function. However, it does not distinguish itself from rush_benchmark or other load-related siblings, and 'load report' vs 'load traffic' is slightly ambiguous without context.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention rush_benchmark or any other sibling, nor does it state prerequisites or typical use cases. The only hint is the network flag requirement, which is not a usage guideline.

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

rush_markdownA

Check Markdown at without rewriting files; missing markdownlint-cli returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.8/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, and it does well by disclosing the non-destructive behavior ('without rewriting files') and the degraded-mode behavior when markdownlint-cli is absent ('returns status='skipped''). It does not mention every possible side effect, but for a single-path checker these are the most operationally critical details.

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 entire description is one efficient sentence that front-loads the core operation, then adds the non-rewriting guarantee and the tool-missing fallback. There is no filler or repetition of information already present in the schema.

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 low-complexity tool with one parameter and an output schema present, the description covers the essential behavior, the no-write guarantee, and an important environmental edge case. It leaves ambiguous what kind of Markdown checking is performed (lint rules, link validation, etc.), but the output schema and tool name fill in enough context.

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?

The schema has only one parameter, 'path', and the description references it ('at <path>'), but adds little beyond the parameter name and format. Since schema description coverage is 0%, the description should compensate more by explaining whether the path is expected to be a file, directory, or glob, though the simple single-parameter case keeps this from being a severe gap.

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 checks Markdown at a given path and explicitly notes it does not rewrite files, which distinguishes it from formatting tools like rush_format. It is specific about the resource and operation, though it does not name sibling alternatives such as rush_lint or rush_review to sharpen the boundary.

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 phrase 'without rewriting files' implies this is the read-only checking variant, but there is no explicit guidance about when to prefer this over siblings like rush_lint, rush_format, or rush_review. An agent can infer the general use case, but the description stops short of offering clear use-vs-alternative direction.

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

rush_media_optC

Audit media assets for CLS and SVG security at ; writes optimized assets with --allow-artifact-write. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
optimizeNo
sanitizeNo
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.9/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 discloses a write side effect ('writes optimized assets with --allow-artifact-write') and the return shape, which is useful. However, it does not explain whether writes modify assets in place, what sanitization entails, or what other permission flags control.

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, efficient sentence that front-loads the main purpose and includes return information without excess. It is appropriately small for the amount of behavioral context it provides.

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?

Despite having an output schema, the tool is complex with 11 parameters and no annotations, so the description must explain more. It omits the required `options` parameter semantics, the purpose of the permission flags, and the meaning of optimize versus sanitize. The return type is covered, but the most confusing invocation details are not.

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%, and the description compensates for only path and allow-artifact-write. The required `options` parameter is completely unexplained, and the many boolean flags such as optimize, sanitize, allow_network, and allow_browser receive no semantic clarification.

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 states a specific action ('Audit media assets for CLS and SVG security at <path>') and names the resource and location. The write behavior is also included, making the tool's overall responsibility clear. It does not explicitly differentiate from sibling tools, but the media-asset CLS/SVG focus is distinctive enough.

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 is given about when to prefer this tool over alternatives or when not to use it. The description says what the tool does but provides no exclusions, prerequisites, or comparisons to sibling tools such as rush_dead_asset or rush_visual.

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

rush_memoryC

Query, write, or promote a cross-tool memory artifact in the typed artifact store. Returns {status, findings[], summary}; write/promote/maintain/verify_attempt require explicit permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
taskNo
queryNo
sourceNo
contentNo
requestNo
subjectNo
operationNoask
allow_slowNo
batch_sizeNo
symbol_refNo
allow_buildNo
source_kindNolocal_tool
user_statedNo
allow_browserNo
allow_networkNo
allow_downloadNo
include_archivedNo
allow_cache_writeNo
candidate_sourcesNo
session_allowlistNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description supplies useful behavioral details: the return envelope ({status, findings[], summary}) and the fact that certain operations require explicit permissions. However, it does not disclose side effects of destructive operations, caching/network implications, or the effects of the many allow_* flags, so it is only partially transparent.

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

Conciseness3/5

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

The two sentences are tight and front-load the main actions, and neither sentence is wasted. Yet the description is under-sized for the tool's complexity: a 22-operation/22-parameter surface needs more than a two-sentence overview.

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 return-shape and permission hints are helpful, but the tool is highly complex and the description omits operation semantics, parameter roles, and selection guidance. An agent could not confidently choose among delete/edit/archive/maintain/etc., so the definition is materially 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%, so the description had to explain the 22 parameters, but it does not mention path, query, content, request, subject, candidate_sources, or any operation values beyond three. The permission warning is the only parameter-adjacent info, and it does not help an agent know what values to supply.

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 names a specific resource ('cross-tool memory artifact in the typed artifact store') with concrete verbs ('Query, write, or promote'), which makes the tool's core purpose clear and distinguishes it from the code-quality siblings. It loses a point because the tool actually supports 22 operations, including delete/edit/archive, that the description does not hint at.

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 is given on when to call rush_memory versus alternatives such as rush_context_retrieve or rush_context_pack, and the description does not state conditions for choosing among its own operations. The only usage-related note is a permission warning, which is a precondition rather than a selection rule.

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

rush_mem_profileB

Audit memory usage and unclosed resources at ; dynamic probe requires --allow-slow. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
dynamicNo
optionsYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
timeout_secondsNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.1/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, and it does add useful behavioral context by disclosing that a dynamic probe needs --allow-slow and that the result is {status, findings[], summary}. It does not disclose side effects, permissions, or what the dynamic probe entails, but 'audit' suggests a non-mutating operation.

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 compact and front-loaded with the core purpose. The return-shape sentence is somewhat redundant given the output schema exists, but it is short and does not bloat the description.

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 11 parameters, no annotations, and zero schema description coverage, the description is too thin to be fully actionable. It gives the purpose and one flag requirement, but an agent still lacks context on the options object, permission-related flags, and when to choose this audit tool over alternatives.

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 11 undocumented parameters. It only clarifies <path> as the target and ties allow_slow to the dynamic probe; the required 'options' object and the remaining allow_* flags are left unexplained.

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 uses a specific verb ('Audit') and resource ('memory usage and unclosed resources at <path>'), making the tool's purpose clear. It stops short of explicitly naming or differentiating from siblings like rush_memory, but the audit focus and return shape give enough distinctiveness.

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 phrase 'Audit memory usage and unclosed resources' implies a diagnostic use case, and 'dynamic probe requires --allow-slow' gives a conditional usage hint. However, there is no guidance about when to prefer this tool over related siblings 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.

rush_mesh_acquire_lockC

Acquire non-blocking multi-agent file lock

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
agent_idYes
capabilityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden. 'Non-blocking' is useful, but the description does not explain what happens when the lock is unavailable, whether the lock is released automatically, or how ownership is determined. Key behavioral details are missing.

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

Conciseness3/5

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

The description is extremely concise and contains no filler, but it is under-specified for a three-parameter tool with no annotations. It is compact rather than appropriately sized.

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?

For a coordination/locking tool with no annotations and no parameter documentation, this description is not complete. It omits behavior on lock contention, return values, lock scope, and how the optional capability affects the lock. The existence of an output schema helps, but the description still leaves critical usage context undefined.

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%, so the description must compensate, but it does not explain the meanings of 'path', 'agent_id', or the optional 'capability'. The parameter names are somewhat self-explanatory, yet no additional semantic value is provided beyond the bare schema.

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 states a specific verb ('Acquire') and resource ('multi-agent file lock'), making the core action clear. It conveys the non-blocking nature, which distinguishes it from a blocking lock or release operation, though it does not explicitly name 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 Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives like rush_mesh_release_lock or other coordination tools. The non-blocking qualifier hints at one scenario, but prerequisites, conflicts, and fallback behavior are not addressed.

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

rush_mesh_release_lockB

Release multi-agent file lock

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
agent_idYes
capabilityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 full responsibility for behavioral disclosure. It only names the action and does not explain side effects, ownership requirements, idempotency, failure behavior, or what happens if the lock is not held.

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 words with no filler and front-loads the action. It is extremely concise, though this brevity contributes to the lack of contextual detail.

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?

For a state-changing lock-release tool with no annotations and no parameter documentation, this is incomplete. It should clarify ownership semantics, whether agents can release locks held by others, and how errors are surfaced if the lock is missing.

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%, and the description does not explain what 'path', 'agent_id', or the optional 'capability' mean. The parameter names are somewhat self-explanatory, but 'capability' remains ambiguous and the description adds no meaning beyond the schema.

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 verb 'Release' and resource 'multi-agent file lock' state exactly what the tool does. It also naturally contrasts with the sibling rush_mesh_acquire_lock, making its role unambiguous.

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 intended use is implied by the name and the acquire-lock sibling, but the description never explicitly states when to call it, such as after acquiring a lock or when an agent is finished with a file. There is no exclusion or alternative guidance beyond the implicit pairing.

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

rush_mutationC

Import a local mutation report or run mutation testing under --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
allow_slowNo
test_pathsNo
allow_buildNo
report_pathNo
source_pathsNo
allow_browserNo
allow_networkNo
allow_downloadNo
timeout_secondsNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden. It only mentions two actions but does not disclose side effects, permission requirements, or what the allow_* flags control. It does not state whether running mutation testing modifies files, requires network access, or what happens on import. This is a significant gap for a tool with 13 parameters implying varied behaviors.

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

Conciseness3/5

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

The description is a single concise sentence, which is appropriate in length. However, it lacks any structure or elaboration; it is under-specified rather than efficiently concise, omitting essential context needed for correct usage.

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?

With 13 parameters, two distinct modes, and an output schema present but not described, the description is grossly incomplete. The agent cannot determine which parameters apply to importing vs. running, what the output format is, or how flags like allow_build or allow_network affect behavior. This is far from sufficient for a tool of this complexity.

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%, so the description must explain the parameters. It only references '--allow-slow' indirectly, leaving the other 12 parameters completely undocumented. The description adds no semantic value to the schema fields, making it nearly impossible for an agent to correctly populate options.

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 can 'Import a local mutation report or run mutation testing', specifying a clear verb and resource (mutation testing). However, it does not differentiate from siblings like rush_test or rush_coverage; an agent might not know when mutation testing is preferred over those.

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?

There is no guidance on when to use this tool versus alternatives. No mention of when importing is preferable over running, nor any exclusions or prerequisites. The agent is left to infer usage context entirely.

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

rush_offline_reviewA

Run air-gapped code review using external local LLM (ollama/llama-cli) on PATH; returns skipped if no local runner is found. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
modelNocodellama
optionsYes
allow_slowNo
allow_buildNo
runner_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.7/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 burden, and it usefully discloses that the tool relies on a local runner on PATH, returns 'skipped' when no runner is found, and returns {status, findings[], summary}. This goes beyond the schema and gives agents a realistic expectation of fallback behavior.

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 concise sentences with the primary purpose and key fallback behavior front-loaded. There is no fluff or repeated schema material.

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?

Although the description covers purpose and return shape, the tool is complex with 11 parameters and no annotations. The many boolean permission flags and the opaque 'options' parameter are left completely undocumented, so an agent cannot confidently construct a correct invocation beyond the high-level intent.

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 11 parameters with 0% schema description coverage, yet the description explains none of them. It only indirectly references local LLM runners, leaving path, model, options, and all allow_* booleans unexplained.

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

Purpose5/5

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

The description clearly identifies the action ('Run air-gapped code review'), the resource ('code'), and the distinguishing mechanism ('external local LLM (ollama/llama-cli) on PATH'). It also differentiates from sibling rush_review by emphasizing the air-gapped/local nature.

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 air-gapped qualifier provides clear context for when this tool is appropriate, implying use in offline environments or when a local LLM is required. It does not explicitly name alternatives like rush_review or state when not to use it, so it misses the full exclusion guidance.

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

rush_patch_applyA

Verify a contained unified diff in an isolated checkout. Defaults to dry-run; promotion requires artifact-write permission. Returns status, findings, summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.
dry_runNo
patch_fileYes
circuit_breakerNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.7/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 and does a solid job: it states that the tool defaults to dry-run, that promotion requires artifact-write permission, and that it returns status, findings, and summary. It does not explain effects of circuit_breaker or precise side effects, but the safety-relevant behavior is disclosed.

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 compact sentences with the primary action front-loaded. Every clause carries useful information, and there is no filler or repetition of schema titles/defaults.

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 5-parameter tool with no annotations and no output schema, the description covers the core safety behavior and return categories, which is a reasonable baseline. It leaves gaps around circuit_breaker semantics, what promotion actually changes, how findings/status are structured, and when to prefer a sibling 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?

The description adds meaning for dry_run ('Defaults to dry-run'), allow_artifact_write ('promotion requires artifact-write permission'), and patch_file ('unified diff'), which goes beyond the bare schema. It does not explain circuit_breaker or path semantics, so it is adequate but not complete.

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 names a specific action ('Verify'), a concrete object ('a contained unified diff'), and a location ('an isolated checkout'), so an agent can tell what the tool operates on. It is clear, but it does not name or contrast with any sibling tool, so it falls short of full differentiation.

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 should be used for safely verifying contained patches in an isolated checkout, and the dry-run/permission note gives contextual conditions. However, it never states when not to use it or which sibling tools are alternatives, leaving routing partly to inference.

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

rush_pbtC

Import a local property-test report or run property tests under --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
report_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It does not mention side effects, permissions, or what happens to the report. Running property tests implies code execution but doesn't clarify safety implications. Parameters like allow_network and allow_browser suggest guarded operations, but the description fails to disclose these.

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

Conciseness3/5

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

The description is a single sentence, which is concise and front-loads the primary actions. However, it lacks structure for the two modes and provides no breakdown of parameters. It's appropriately short but at the expense of completeness, earning a middle score.

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 nine parameters, no annotations, and a large set of sibling tools, the description is severely incomplete. It doesn't explain the import versus run distinction, the meaning of each parameter, or how this tool differs from rush_fuzz or rush_test. An agent would struggle to invoke it correctly without additional 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 0%, so the description must compensate. It only hints at allow_slow via the --allow-slow flag, but doesn't explain path, report_path, allow_build, or the other six parameters. With nine parameters, this is severely insufficient; the description adds minimal value over the raw schema.

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 two specific actions: importing a local property-test report or running property tests with the --allow-slow flag. The verbs 'Import' and 'run' are explicit, and 'property tests' identifies the domain. However, it doesn't distinguish this tool from siblings like rush_fuzz or rush_test, though the purpose is still clearly defined.

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. It doesn't specify when to choose the import mode versus the run mode, nor when to prefer this over sibling tools like rush_fuzz (fuzzing) or rush_test (general testing). The mention of --allow-slow is a condition hint but not a clear usage directive.

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

rush_projectD

Register, discover, select, and configure Rush projects

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only names actions without describing side effects, permissions, reversibility, or what configuring a project entails. This leaves the operational impact of the call completely undisclosed.

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 single sentence is short, but the brevity reflects under-specification rather than conciseness. It provides no structure to separate the four claimed operations or their differing semantics, so each word adds only vague generality.

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 an opaque schema, absent annotations, a nested request object, and four distinct operations, the description fails to cover nearly all context an agent needs. It omits request formats, operation selection, return values, and constraints, making the tool effectively unusable without external documentation.

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 is an opaque single 'request' object with additionalProperties: true and no property descriptions (0% schema coverage), so the description was the only opportunity to explain the payload. It does not mention the request structure, required fields, or operation-specific syntax, forcing agents to guess.

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 lists four broad verbs ('Register, discover, select, and configure') applied to 'Rush projects', but this is an umbrella statement rather than a specific purpose. Since all sibling tools also operate on Rush projects, this wording does not distinguish rush_project from rush_commit_msg, rush_scan, or others.

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 is provided about when to use this tool versus alternatives; it neither names sibling tools nor offers decision criteria. An agent cannot determine whether to call rush_project or a more specific rush_* tool for a given task.

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

rush_prompt_evalC

Evaluate recorded prompt runs against golden task criteria at . Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
recordsNo
allow_slowNo
allow_buildNo
golden_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
max_cost_thresholdNo
pass_rate_thresholdNo
allow_artifact_writeNo
max_tokens_thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return structure ({status, findings[], summary}) but does not disclose side effects, permissions, whether it modifies state, or any error conditions. The minimal output hint is insufficient for a tool with 14 parameters.

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, focused sentence that front-loads the purpose and return format. It is concise with no fluff, though it sacrifices necessary detail for brevity.

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?

For a tool with 14 parameters, zero schema coverage, no annotations, and only a bare output shape, the description is severely incomplete. An agent has almost no information about what 'options' means, how thresholds work, or what side effects might occur, making safe invocation unlikely.

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 explains no parameters. It only implies 'path' is a location via '<path>', but 'options' and all other parameters (allow_slow, thresholds, etc.) remain completely undocumented. The description fails to compensate for the schema's lack of explanations.

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 states a specific action ('Evaluate recorded prompt runs') and resource ('against golden task criteria'), and includes the return shape. It does not explicitly distinguish from any sibling, but the purpose is unambiguous given the name and phrasing.

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?

There is no guidance on when to use this tool versus alternatives, no exclusions, and no context about prerequisites or typical invocation scenarios. The description is purely a one-liner with no usage direction.

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

rush_provenance_aiC

Analyze git commit trailers for AI attribution, calculate empirical code survival curves (30/60/90d), and compute defect correlation. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description bears the full burden of disclosing behavior. It states only that it computes and returns data, but does not mention potential side effects such as slow execution, cache/artifact writes, network/download access, or build operations—all suggested by the allow_* parameters. This under-disclosure could lead to failed invocations.

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 two sentences with no fluff; the first sentence front-loads the core functionality and the second states the return shape. It is appropriately sized, though somewhat terse.

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 tool is moderately complex (8 parameters, one required, output schema present). The description misses essential context about parameter semantics and behavioral flags, which are critical for correct invocation. The output schema covers return values, but the allow_* flags are left completely unexplained.

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 adds no meaning for any parameter. It does not explain the required 'path' parameter or any of the eight allow_* flags, leaving the agent with only parameter names to guess from.

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 names a specific resource (git commit trailers) and three concrete analytical actions (AI attribution analysis, survival curve calculation, defect correlation). This is specific enough to distinguish it from siblings like rush_ai_eval or rush_attest, even without naming them.

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?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of what 'path' should point to or when the allow_* flags must be enabled. An agent must infer usage entirely.

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

rush_pr_synthesizeA

Synthesize semantic PR markdown card from git diff and evidence at ; export requires --allow-artifact-write.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
base_refNomain
export_pathNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.5/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 behavioral disclosure burden. It does disclose one important behavior: export requires --allow-artifact-write. However, it does not clarify side effects, whether output is returned directly, or what happens when export is not permitted.

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 compact sentence that front-loads the core action and input source, then states the key export condition. No filler or redundant wording is present.

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?

While an output schema exists, the description still omits important context such as the meaning of base_ref, the relationship between export_path and allow_artifact_write, and expected input semantics for evidence. This is insufficient for a tool with four parameters and no annotation support.

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 for all four parameters. It adds meaning for 'path' as the evidence location and implies that 'allow_artifact_write' gates export, but it leaves 'base_ref' and 'export_path' semantically unexplained.

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

Purpose5/5

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

The description clearly identifies a specific verb ('Synthesize') and resource ('semantic PR markdown card'), and specifies the input sources ('git diff and evidence at <path>'). This distinguishes it from sibling tools like rush_review or rush_commit_msg.

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 when git diff and evidence are available, but it does not explicitly state when to use this tool versus alternative Rush tools, nor does it provide exclusions. The export requirement is a usage hint, not a full routing guideline.

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

rush_releaseB

Create a dry-run release plan; publishing requires explicit confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. 'Dry-run' explicitly signals no publishing side effects, and 'publishing requires explicit confirmation' reinforces the boundary. This is a meaningful behavioral disclosure, even though it does not detail all 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.

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. Both the dry-run nature and the confirmation requirement are stated efficiently, and every phrase earns its place.

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 tool is simple, and the output schema covers return details, but the critical meaning of the only required parameter is absent. An agent cannot confidently construct a correct call without knowing what 'path' refers to. The description is too incomplete for confident invocation.

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 never mentions 'path'. An agent cannot determine what the path should point to, what scope it represents, or any constraints beyond the schema's generic 'format: path'. The description adds no parameter-level meaning.

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 states a specific verb and resource: 'Create a dry-run release plan'. It also clarifies that this is not a publish action. It is clear enough to distinguish from a release tool that actually ships, though it does not explicitly name or contrast 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 implies usage context: use this tool for a dry-run plan and expect a separate explicit confirmation before any publishing. However, it does not explicitly state when not to use it or point to an alternative tool such as a real release/publish tool.

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

rush_reviewA

Review code at for size, TODO density, missing docstrings, naming, complexity. Returns {status, findings[], summary}. Default: heuristic. Pass use_llm=true to call configured model.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
use_llmNo
use_graftNo
changed_filesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It discloses the return format ({status, findings[], summary}) and the two modes (heuristic vs LLM). However, it does not mention potential side effects like network calls or costs when using the LLM, nor does it explicitly state whether the operation is read-only, which is implied by 'review' but not confirmed.

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 zero wasted words. The core purpose is front-loaded, and the mode switch is mentioned immediately after. Perfectly 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?

An output schema exists (though not provided in the prompt), so the return structure is covered. The description mentions the return format. However, the unexplained parameters (use_graft, changed_files) and lack of behavioral details about LLM side effects make it incomplete for an agent to use confidently without additional information.

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. It explains use_llm (calling the configured model) but does not explain use_graft or changed_files at all. The path parameter is obvious from the description but not elaborated. With four parameters, only one is partially described, leaving significant gaps.

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 verb (review), the resource (code at <path>), and the specific criteria (size, TODO density, missing docstrings, naming, complexity). It is distinct from siblings like rush_lint or rush_complexity by being a holistic code review rather than a focused check.

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 guidance on the default heuristic mode and explicitly states when to use the LLM (pass use_llm=true). It does not explicitly mention when to avoid this tool in favor of alternatives, but it gives enough context for basic selection.

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

rush_sbomB

Generate an SBOM only to a safe explicit output path; missing cdxgen returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
overwriteNo
allow_slowNo
allow_buildNo
output_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

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 must disclose behavioral traits. It does mention a key fallback: 'missing cdxgen returns status='skipped'' – valuable. It also implies a safety constraint on output path. However, it does not clarify behaviors around the many boolean flags (overwrite, allow_*), nor what happens if output_path is null, nor the exact output structure. The disclosure is partial, earning a 3.

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 sentence, front-loaded with the primary action. It is highly concise with no filler. The structure is efficient, though it sacrifices completeness for brevity – but that tradeoff is evaluated in other dimensions.

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 10 parameters, no annotations, 0% schema coverage, and no output schema visible, this description is woefully incomplete. It does not explain parameter semantics, output format, failure modes beyond one case, or usage context. An agent would struggle to call this tool correctly without further information.

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. It only touches on output_path via the safety phrase, but does not explain any of the 10 parameters. The booleans like overwrite, allow_slow, allow_build, etc., are completely unexplained. This is insufficient for an agent to correctly set parameters.

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: 'Generate an SBOM' – a specific verb and resource. It also adds a meaningful constraint ('only to a safe explicit output path') that differentiates it from generic SBOM tools. While no sibling is named, the purpose is unambiguous and distinct within the rush_* family.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any other tool, prerequisites, or conditions for selection. The only hint is the implicit need for an SBOM, but that is not explicit enough to count as usage guidance.

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

rush_scanC

Plan, run, and check status of a full-project scan

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavior disclosure, but it only says the tool plans, runs, and checks status. It does not mention side effects, whether it modifies project state, required permissions, execution time, or whether it is safe to run repeatedly. The multi-phase behavior is hinted at but not explained.

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 front-loaded sentence with no filler or repetition. It efficiently conveys the tool's high-level lifecycle. It is concise rather than overly verbose, though it sacrifices detail needed in other dimensions.

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?

Despite the presence of an output schema, the description remains incomplete for a tool with one opaque required parameter and no annotations. It lacks any information about request structure, operational behavior, or invocation context, leaving important gaps for an agent trying to call the tool correctly.

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 schema provides only an opaque 'request' object with additionalProperties true and zero property descriptions, so schema coverage is 0%. The description does not compensate at all: it never explains what the request should contain, what fields are expected, or how the plan/run/check behavior maps to the request. This leaves the agent with no meaningful guidance for constructing input.

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 uses clear verbs ('Plan, run, and check status') and names the resource ('full-project scan'), so an agent can grasp the tool's core purpose. It does not explicitly differentiate from siblings such as rush_scan_handoff, but the scope of a full-project scan is reasonably specific.

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?

There is no guidance on when to use this tool versus alternatives, no exclusions, and no context that would help an agent choose it over sibling scan-related tools. The only implicit signal is that it is for full-project scans, which is not enough to inform routing decisions.

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

rush_scan_handoffC

Prepare, dispatch, and acknowledge a bounded agent handoff of scan findings

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It suggests an action with side effects ('acknowledge', 'dispatch') but does not state what changes occur, whether the handoff consumes or locks resources, or what acknowledgment entails.

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

Conciseness3/5

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

The description is a single concise sentence and is not bloated, but the brevity comes at the cost of substance. It is readable yet under-informative, offering no structure or elaboration that would help an agent act.

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?

The tool has an opaque nested request object, no annotations, and no parameter or behavior explanations. The output schema may exist, but without input semantics or usage context an agent cannot reliably invoke this tool.

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 single 'request' parameter is an arbitrary object with additionalProperties true and 0% schema coverage, yet the description provides no information about its expected shape, fields, or meaning. The agent has essentially no guidance for constructing a valid request.

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 names a clear operation: preparing, dispatching, and acknowledging a bounded agent handoff of scan findings. It identifies both the action and the resource, and it is distinguishable from siblings like rush_scan or rush_agent_connection, though 'bounded' is not elaborated.

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?

There is no guidance on when to use this tool versus alternatives, no exclusions, and no mention of prerequisites. The phrase 'of scan findings' implies a context, but an agent gets no help deciding between this and related tools such as rush_scan or rush_context_pack.

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

rush_secretsA

Scan for secrets without exposing values; missing gitleaks returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations present, the description carries the full behavioral disclosure burden. It explicitly states that values are not exposed and that a missing gitleaks results in status='skipped', both of which are meaningful behavioral traits not inferable from the schema.

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?

One dense sentence that front-loads the primary action and safety property, then adds the edge-case behavior. No filler or redundant wording.

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 single-parameter tool with an output schema, the description covers the main behavioral nuance (skipped status) and the critical safety guarantee (no value exposure). However, it lacks explicit routing guidance and any parameter reasoning, so it is 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 schema has 0% description coverage, so the description should compensate. It never mentions the 'path' parameter or what it should point to, leaving the agent to infer entirely from the parameter name and format.

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 states a specific action and resource ('Scan for secrets') and adds a key differentiator: values are not exposed. This clearly separates it from broader siblings like rush_security or generic rush_scan.

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 purpose is clear through the word 'secrets', but the description gives no explicit when-to-use guidance or comparison to sibling tools. The gitleaks-missing condition describes runtime behavior rather than when to invoke this tool over alternatives.

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

rush_securityC

Scan deps at for known vulnerabilities. Returns {status, findings[], summary}. Engines: pip-audit (Python), npm audit (JS/TS). status='skipped' means engine not on PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.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 of behavioral disclosure. It discloses the return format, the engines used, and the meaning of status='skipped', which is useful. However, it does not state whether the scan is read-only, whether network access is required (despite the allow_network flag), or any side effects. The description adds some value but leaves significant behavioral gaps.

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 compact and front-loaded with the primary action, then the return shape and engine details. It is efficient and avoids redundancy, though it could be slightly more structured with the parameter explanations.

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 tool has 8 parameters, no schema descriptions, and no annotations, the description is far from complete. It fails to explain the allow_* flags, which are critical for understanding the tool's capabilities and constraints. While the output schema exists, the description does not cover essential invocation details, leaving significant gaps for an agent.

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 the 8 parameters. It only implicitly covers 'path' and mentions engines, but the seven boolean flags (allow_slow, allow_build, etc.) are completely unexplained. Without descriptions, an agent cannot understand what these flags control, making parameter semantics insufficient.

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 scans dependencies at a path for known vulnerabilities, which is a specific and unambiguous purpose. It mentions the engines and return shape, but it doesn't explicitly differentiate from sibling tools like rush_sbom or rush_scan, though the vulnerability focus makes it distinct.

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?

The description gives context about engines and the 'skipped' status but provides no guidance on when to use this tool versus alternatives (e.g., rush_sbom for SBOM generation, rush_secrets for secrets). There is no mention of exclusions or prerequisites, so an agent has to infer appropriate usage.

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

rush_semantic_driftB

Semantic drift detection comparing rendered DOM/accessibility against baseline. Requires both --allow-browser and --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

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 carries the full behavioral burden. It discloses the browser/slow-mode prerequisites and the DOM/accessibility comparison mechanism, but it does not mention side effects, baseline storage, or whether other allow_* flags are needed.

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?

One tight sentence with no fluff: purpose is front-loaded, and the prerequisite follows. Both clauses add information not already present in the schema.

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 8 parameters and zero annotations, this description is too thin. It omits path semantics, the purpose of the other allow_* flags, and behavioral/side-effect context. The output schema may cover return values, but invocation-level context remains incomplete.

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. It only clarifies the allow_browser and allow_slow flags; the required path and the other six allow_* parameters are left to name inference, which is insufficient.

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?

Clearly identifies the tool as semantic drift detection and specifies what is compared: rendered DOM/accessibility against a baseline. This is distinguishable from siblings like rush_db_drift or rush_visual, though it lacks a strong action verb and does not explicitly name alternatives.

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 that both --allow-browser and --allow-slow must be enabled, which is critical because the schema marks them as optional with default false. This gives clear invocation context, but it does not explain when to prefer this tool over sibling scan tools.

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

rush_ship_cleanB

Clean scratch directories and build caches before release

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.
applyNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden, but it only says 'Clean,' which implies deletion without stating that files may be removed or that this is a destructive operation. It also omits key behavior such as the role of the `apply` flag (default false), which likely controls whether changes are actually applied or only simulated.

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 front-loaded sentence with no filler or redundant language. It is concise, though it earns that conciseness at the cost of omitting important parameter and behavior details.

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 that this appears to be a mutating cleanup operation with no annotations and 0% schema parameter coverage, the description is not sufficiently complete. It does not explain the safety gate (`apply`), the permission flag (`allow_artifact_write`), or what 'clean' actually changes, so an agent would lack critical context for safe invocation.

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 mentions none of the three parameters: path, apply, or allow_artifact_write. An agent cannot determine what these parameters mean, how path is scoped, or what apply/allow_artifact_write control from the description alone.

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 uses a specific verb ('Clean') and identifies concrete resources ('scratch directories and build caches') plus a clear timing context ('before release'). This is clear and distinct from sibling release/ship tools, though it does not explicitly name any alternative or contrast with a similar cleanup tool.

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 phrase 'before release' provides a clear temporal trigger for when this tool should be used. However, it does not discuss when not to use it or name alternatives such as rush_release or rush_ship_gate, leaving some routing decision to inference.

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

rush_ship_envA

Audit codebase environment variable usage against .env.example

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/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 behavioral disclosure burden. The verb 'Audit' implies a read-only inspection, which is useful, but the description does not explicitly state whether the tool modifies files, what side effects may occur, or how discrepancies are reported.

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?

A single, front-loaded sentence that states the action and the comparison target with no wasted words. It is concise without sacrificing the core meaning.

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?

The tool has no parameters and an output schema, so the description only needs to convey the tool's purpose and scope. 'Audit codebase environment variable usage against .env.example' is sufficient for a zero-parameter audit action, though it lacks richer detail about report format or failure behavior.

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?

The tool has zero parameters, so the description does not need to explain parameter behavior. The baseline of 4 applies because there is no parameter semantics gap 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 uses a specific verb 'Audit' with a clear resource: 'codebase environment variable usage against .env.example'. This clearly distinguishes it from sibling tools like rush_secrets or rush_ship_gate by its unique focus on environment variable consistency.

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?

The description states only what the tool does, with no guidance on when to use it, when not to use it, or which sibling tool might be an alternative. An agent is left to infer the appropriate context from the tool name alone.

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

rush_ship_gateC

Run 7-vector pre-flight release readiness cockpit

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies running a process but doesn't state whether it's read-only, what side effects occur, what 'pre-flight' entails, or what the output represents. This is a significant gap for an agent deciding whether to invoke it.

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 6-word sentence with no fluff or redundant phrasing. It is efficiently front-loaded, but the brevity contributes to vagueness. Still, as far as conciseness alone, it earns its place without waste.

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?

For a 0-param tool with an output schema, the description is the primary source of intent. It fails to explain the '7-vector' concept, what 'pre-flight release readiness' actually means, or when to run this gate. An agent cannot confidently decide to use this tool based on the description alone.

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?

The tool has zero parameters, so the schema provides no input semantics to document. The baseline for 0 params is 4, and the description appropriately doesn't need to explain parameters. It adds no parameter detail, but none is required.

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 states a specific action ('Run') and a resource ('7-vector pre-flight release readiness cockpit'), but the resource is opaque jargon. It doesn't define what the 7 vectors are or what 'cockpit' means, and it doesn't clearly differentiate from siblings like rush_release or rush_ship_clean. It's not a tautology, but it's vague.

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?

There is no guidance on when to use this tool versus alternatives. No conditions, prerequisites, or exclusions are mentioned. The agent is left to infer that it's related to release readiness, but no concrete selection criteria are provided.

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

rush_simplifyB

Decompose high-complexity functions into modular helpers

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
max_complexityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 full burden. It states the action but doesn't disclose whether the tool modifies the file in place, creates new files, requires a specific language, or how it handles functions that can't be simplified. For a tool that likely rewrites code, this is a significant gap.

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?

A single, concise sentence that front-loads the core action. It's efficient and not padded, though it could add a bit more detail without becoming verbose.

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 tool has an output schema (not shown) and 2 parameters, but the description is minimal. For a code-modifying tool, an agent needs to know whether the file is edited in place, what the output contains, and how max_complexity affects behavior. The description is too thin to fully guide correct invocation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the purpose of 'file' implicitly (the file containing high-complexity functions) but doesn't explain 'max_complexity' semantics beyond its name. The default of 10 is in the schema, but the description doesn't clarify what the threshold means or how it's used. Baseline 3 is appropriate since the description adds some context but leaves parameter meaning mostly to inference.

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 uses a specific verb ('decompose') and resource ('high-complexity functions'), and the tool name 'rush_simplify' aligns with the action. It clearly distinguishes from siblings like rush_complexity (which likely measures complexity) and rush_review (which reviews code), though it doesn't explicitly name an alternative.

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: use this when you have high-complexity functions that need modularization. However, it doesn't explicitly state when not to use it or mention alternatives like rush_complexity for measuring complexity first. The context is clear but exclusions are absent.

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

rush_slopB

Detect Python AI slop and deterministic JS/TS noise at ; missing sloppylint returns status='skipped' when no JS/TS fallback applies.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It discloses a specific edge case (missing 'sloppylint' leads to status='skipped' when no JS/TS fallback applies), which adds useful behavior. However, it does not state whether the operation is read-only, modifies anything, or requires permissions.

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 with the main action front-loaded. The second half about 'sloppylint' is somewhat cryptic but does not add excessive length. It is concise and avoids redundancy.

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?

An output schema exists, so return values are presumably covered there. The description explains one edge case but leaves ambiguities such as what 'sloppylint' is and whether the tool scans directories recursively. Given the tool's simplicity (one parameter), it is adequate but not fully comprehensive.

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%, and the description only references the parameter as '<path>' without adding meaning beyond what the schema's 'path' format already implies. It does not clarify whether the path should be a file or directory, or what it should contain.

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 states a specific verb ('Detect') and resource ('Python AI slop and deterministic JS/TS noise') at a given path. It is not a tautology and conveys a concrete function, though it does not explicitly differentiate from many sibling tools like rush_lint or rush_review.

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 is given on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or exclusions. The description only states the action and a behavioral caveat, leaving the agent to infer context.

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

rush_snapshotC

Import a local snapshot comparison or run snapshot tests under --allow-slow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
acceptNo
optionsYes
allow_slowNo
allow_buildNo
report_pathNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It does not disclose whether snapshots are written, accepted, or compared only in memory, what the allow_* flags enable, or what side effects such as report_path or accept may cause.

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 short and front-loaded, avoiding redundancy. However, it is concise to the point of under-specification, so it earns credit for structure rather than completeness.

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?

A tool with 11 parameters, no annotations, and no schema-level parameter descriptions needs far more context to be invoked correctly. The output schema covers return shape, but the description still omits mode semantics, flag meanings, and the effect of accept and report_path.

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 only mentions allow_slow without explaining it. It provides no meaning for the required path and options arguments, nor for accept, report_path, allow_build, allow_network, or the other flags.

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 states two concrete actions: importing a local snapshot comparison and running snapshot tests with the --allow-slow flag. This distinguishes it by resource type from many sibling tools, although 'local snapshot comparison' remains somewhat ambiguous.

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 is given on when to call rush_snapshot versus related tools like rush_test, rush_visual, or rush_tui_diff. The mention of 'under --allow-slow' hints at a condition, but there are no explicit when-to-use instructions or exclusions.

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

rush_sqlB

Check SQL without rewriting; missing sqlfluff returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It usefully states that the tool does not rewrite SQL and that a missing sqlfluff dependency results in status='skipped'. However, it does not explain what happens when sqlfluff is present, how errors are reported, or whether the tool fails or degrades in other conditions.

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 sentence with no filler. The main purpose is front-loaded ('Check SQL without rewriting') and the dependency-fallback behavior is stated efficiently. Every clause 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?

This is a simple one-parameter tool, but the no-annotation context raises the bar. The description covers the core action and one edge case, yet it omits path semantics, alternatives, and behavior in the normal success path. The output schema may cover return values, but the description alone leaves notable 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?

Schema description coverage is 0%, so the description must compensate for explaining the 'path' parameter. It does not mention path at all. The schema only provides the title 'Path' and format 'path', which leaves ambiguity around whether path is a file, directory, glob, or something else.

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 identifies a specific action ('Check SQL') and a key distinguishing trait ('without rewriting'), which separates it from formatting tools. The name 'rush_sql' is broad, but the description narrows it to SQL checking. It does not name sibling tools explicitly, so it stops short of a 5.

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 when to use the tool: when SQL needs checking without rewriting. However, it gives no explicit when-not-to-use guidance and does not mention alternatives like rush_lint or rush_format. Usage context is present but left to inference.

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

rush_strictifyC

Synthesize runtime type guards for unvalidated parameters

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/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 full burden of behavioral disclosure. It does not mention side effects (e.g., whether files are written), required file format, supported languages, or what happens on failure. The description only states the high-level action, leaving significant behavioral unknowns for a code-generation tool.

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 concise sentence that front-loads the verb and the object. It contains no filler and is immediately scannable. It is slightly terse, which reduces completeness, but as a structure it is efficient.

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?

Although an output schema exists (so return values may be covered elsewhere), the description is incomplete for correct invocation. It does not explain what the 'file' parameter should contain, whether the tool modifies files in place, what input formats are accepted, or any expected preconditions. For a tool that generates runtime guards, this is a notable gap.

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. The single parameter 'file' is not explained at all beyond the schema's generic string type. The phrase 'unvalidated parameters' hints that the file may contain such parameters, but it never explicitly defines what 'file' is, its format, or how it relates to the synthesis. This is insufficient guidance for an agent to correctly populate the parameter.

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 states a specific action ('synthesize') and resource ('runtime type guards') with a clear target ('unvalidated parameters'). This clearly distinguishes it from the many sibling tools like rush_lint or rush_typecheck, though it doesn't explicitly name alternatives. It is not a tautology and conveys the core purpose.

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?

The description gives no explicit guidance on when to use this tool versus any of the numerous rush_* siblings. The phrase 'for unvalidated parameters' implies a condition, but there is no context about prerequisites, alternatives, or exclusions. This leaves the agent to infer 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.

rush_swarm_mergeC

Execute 3-way AST merge conflict resolution

ParametersJSON Schema
NameRequiredDescriptionDefault
base_codeYes
ours_codeYes
theirs_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the operation is a 3-way AST merge conflict resolution, which implies it takes base/ours/theirs and produces a merged result, but it does not disclose whether the tool mutates any state, whether it is deterministic, what happens when conflicts cannot be auto-resolved, whether it returns a diff or a full merged file, or whether it has side effects. The description is too thin to give an agent confidence about the tool's behavior beyond the basic operation.

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, efficient sentence with no wasted words. It front-loads the core action ('Execute') and the key qualifier ('3-way AST merge conflict resolution'). It is appropriately sized for a tool with three self-descriptive parameters, though it could have used the available space to add one or two more sentences of behavioral context without becoming verbose.

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 tool has three required parameters, no annotations, no schema descriptions, and an output schema that is not shown in the provided context. The description is a single sentence that names the operation but does not explain input semantics, output format, failure modes, or side effects. For a tool that performs a complex operation like AST merge conflict resolution, an agent would need more context to invoke it correctly and interpret the result. The output schema exists but is not visible in the context, so the description should have compensated with more detail.

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 the schema's lack of parameter documentation. The description names the merge strategy (3-way AST) but does not explain the semantics of base_code, ours_code, and theirs_code beyond what their names imply. It does not clarify the expected format (full file contents? snippets?), language constraints, or how the three inputs relate to each other. The parameter names are self-explanatory to a degree, but the description adds no meaningful detail beyond the schema.

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 states a specific verb and resource: 'Execute 3-way AST merge conflict resolution.' It identifies the operation (merge conflict resolution) and the method (3-way AST), which is clear enough to distinguish it from the sibling tools, none of which are merge tools. However, it lacks detail about what the tool actually does with the three code inputs—whether it returns a merged result, a conflict report, or both—so the purpose is clear at a high level but not fully specified.

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?

The description provides no guidance on when to use this tool versus alternatives. While the sibling list contains no other merge tool, there is no explicit statement of when this tool is appropriate, what prerequisites exist (e.g., valid ASTs, language support), or when a different tool like rush_patch_apply or rush_review might be more suitable. The usage context is entirely implied by the tool name and one-line description.

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

rush_tddC

Verify Test-Driven Development (TDD) compliance at . Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the tool verifies TDD compliance and returns a structured result, but does not clarify whether it is read-only, what side effects it may have (e.g., modifying files), or any limitations. This is insufficient for a tool with no annotation coverage.

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

Conciseness3/5

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

The description is a single concise sentence that front-loads the purpose and mentions the return type, which is structurally efficient. However, it is under-specified, omitting critical parameter details and usage context, making it too sparse to be fully effective.

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?

The tool has 9 parameters, 2 required, and no annotations or schema descriptions. The description provides only the barest overview and does not explain the options object or the permission flags, which are essential for correct invocation. Despite having an output schema, the description does not elaborate on the return values beyond names, leaving the agent without adequate guidance.

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%, meaning the schema itself provides no descriptions for the 9 parameters. The description only mentions <path> and the return structure, but fails to explain the purpose of 'options' or the boolean flags like allow_slow, allow_build, etc. The description does not compensate for the lack of schema documentation.

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 verifies TDD compliance at a given path, which is a specific verb-resource pairing. However, it does not differentiate from siblings like rush_test or rush_coverage, so it lacks explicit distinction.

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 is provided on when to use this tool versus alternatives. There is no mention of when to prefer rush_tdd over other rush_* tools, nor any exclusions or preconditions. The usage context is entirely implied.

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

rush_templatesA

Check templates without rewriting; missing djlint returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.6/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 of disclosing behavior. It clearly states that the tool does not rewrite and that a missing djlint results in status='skipped', which gives an agent important expectations about side effects and failure handling.

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 concise sentence that front-loads the core action and immediately conveys the most important behavioral constraints. Every word contributes value, with no redundancy or filler.

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 one-parameter tool with an output schema, the description is largely complete: it states the action, the non-mutating behavior, and the key skipped status condition. It could be slightly more explicit about what 'templates' refers to, but the available context plus output schema covers the essential calling requirements.

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%, and the description does not mention the single 'path' parameter at all. The parameter is somewhat self-evident from its name and 'path' format, but the description fails to compensate for the low schema coverage by explaining what kind of path is expected or how it relates to templates.

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 states a specific verb ('Check') and resource ('templates') and adds the key qualifier 'without rewriting', which clarifies the tool's non-mutating scope. It is clear enough to distinguish from the many sibling tools, though it does not explicitly name an alternative.

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 phrase 'Check templates without rewriting' implies that this tool is appropriate when a non-mutating template check is desired, which is a legitimate usage signal. However, it does not explicitly state when to prefer this over related siblings like rush_lint or rush_format, nor does it mention any exclusions.

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

rush_testA

Run tests for project at . Returns {status, findings[], summary}. Engines: pytest (Python), vitest/npm (JS/TS). status='skipped' means engine not on PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A4/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 of behavioral disclosure. It does disclose the return structure ({status, findings[], summary}) and the skip condition ('status=\"skipped\" means engine not on PATH'), which is useful. However, it does not mention potential side effects (e.g., whether the test run modifies files or requires a clean environment) or any prerequisites beyond engine availability. This is adequate but not comprehensive.

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 concise, front-loaded with the primary action, and contains no wasted words. It packs the action, parameter, return format, and engine support into a compact sentence, making it easy for an agent to quickly grasp the tool's function.

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 tool with a single parameter and a known output schema (implied by 'Has output schema: true'), the description covers the essential aspects: what it does, what the return looks like, and a key edge case (skipped). It does not elaborate on error handling or interpretation of findings, but these may be covered by the output schema. Overall, it is sufficiently complete for its simplicity.

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?

The schema has 0% description coverage, so the description must compensate. It does: the phrase 'for project at <path>' clarifies that the 'path' parameter refers to the project directory, which adds meaning beyond the bare schema field. It does not specify relative/absolute path format, but given the single parameter and its mention in the description, this is a minor 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 the tool's purpose: 'Run tests for project at <path>.' It uses a specific verb and resource, and the mention of engines (pytest, vitest/npm) distinguishes it from sibling tools like rush_lint or rush_security. It is not a tautology and leaves no ambiguity about what the tool does.

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 (running tests) but does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it. It does indicate supported engines, which indirectly suggests it is not for other languages, but there is no direct comparison or exclusionary guidance for the many sibling tools.

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

rush_test_healC

Diagnose flaky test race conditions and suggest fixes

ParametersJSON Schema
NameRequiredDescriptionDefault
runsNo
seedNo
targetYes
dry_runNo
allow_slowNo
allow_buildNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/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 full burden of behavioral disclosure. It indicates the tool diagnoses and suggests fixes, but does not state whether it actually runs tests, whether it can modify files, or what side effects may occur. Parameters like dry_run and allow_artifact_write hint at behavior, but the description itself leaves these unknown.

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 with no filler, and the core action is front-loaded. It earns points for being concise and clear, though it does not use the available space to add necessary context. It is appropriately sized for a simple title but the tool itself is more complex.

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 tool has 7 parameters, no annotations, and only a one-line description, which is insufficient for an agent to understand how to invoke it correctly. It lacks guidance on parameter semantics, expected behavior, and how it relates to overlapping siblings like rush_flaky or rush_fix. The presence of an output schema does not make up for the missing operational context.

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 provides no information about any of the 7 parameters, including the required 'target' or the meaningful 'dry_run', 'seed', and 'runs'. The tool name and description do not compensate for the complete lack of parameter explanation.

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 a specific verb ('Diagnose') and resource ('flaky test race conditions'), and mentions the outcome ('suggest fixes'). This distinguishes its core purpose from generic test runners like rush_test or linters like rush_lint. However, it does not explicitly differentiate itself from closely related siblings like rush_flaky or rush_fix, so it falls short of a 5.

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 flaky test race conditions are encountered, but offers no explicit guidance on when to prefer this tool over alternatives such as rush_flaky or rush_fix. There is no mention of when not to use it, prerequisites, or context that would help an agent decide between the many sibling tools.

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

rush_token_outlineB

Generate token-efficient AST skeleton outline of a code file

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
focus_symbolNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 full burden of behavioral disclosure. It only says an outline is generated, without explaining whether the operation is read-only, how focus_symbol affects output, supported file types, or any side effects or prerequisites.

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, front-loaded sentence with no filler or repetition. It states the key action and object immediately, which makes it easy for an agent to parse quickly.

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 two-parameter tool with an output schema, the description is nearly enough to make a basic call: it identifies the target resource and the required path parameter is obvious. However, the optional focus_symbol semantics and the meaning of 'token-efficient' are not explained, and no usage guidance is given relative to the many related siblings.

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%, and the description does not explain either parameter. While 'path' is self-descriptive and the phrase 'code file' gives some context, 'focus_symbol' is left unexplained and its behavior must be inferred entirely from its name and default 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 uses a concrete verb ('Generate') and a precise object ('token-efficient AST skeleton outline') tied to a clear resource ('code file'). It also distinguishes the tool from the long list of siblings because no other listed tool claims to produce an AST skeleton outline.

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?

The description provides no explicit guidance about when to prefer this tool over its many siblings. The only usage hint is implicit in the verb and noun phrase, and there are no exclusions, alternatives, or selection criteria.

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

rush_traceB

Scan codebase and specs to output requirement traceability matrix

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits on its own. 'Scan' and 'output' hint at a read-only analysis, but the description does not state side effects, what inputs are consumed, or any operational impact. This is minimal disclosure for an unannotated tool.

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, direct sentence beginning with the action and ending with the deliverable. There is no filler, redundancy, or unnecessary detail.

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?

The tool is simple and has an output schema, which reduces the need for return-value documentation. However, with no annotations and no usage guidance, the description leaves an agent uncertain about when to select this tool over siblings and what exactly the output matrix covers.

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?

The input schema has zero parameters and no required arguments, so the description does not need to explain any parameters. This matches the baseline for parameterless tools.

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 states a specific action and deliverable: scan the codebase and specs to produce a requirement traceability matrix. This is clear and distinguishes the tool from most siblings, but it does not name an alternative or clarify what the matrix contains.

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 is given for when to use this tool versus any of the many rush_* siblings. The description implies it is for traceability work, but there are no explicit conditions, prerequisites, or exclusions.

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

rush_tui_diffC

Compute Git commit and quality findings deltas at ; renders Rich tables in CLI. Returns {status, findings[], summary}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
base_refNoHEAD~1
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
base_findingsNo
allow_downloadNo
current_findingsNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions Rich CLI rendering and the return shape, but it does not disclose that this tool may run slow, trigger builds, open browsers, download resources, or write to caches/artifacts, as the numerous allow_* parameters imply. This is a significant transparency gap for a potentially side-effectful tool.

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 dense sentence with no filler, and it front-loads the primary action. It conveys the main purpose and output shape efficiently, though the brevity contributes to the lack of usage guidance and parameter semantics.

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 tool's complexity—12 parameters, multiple behavior-affecting allow_* flags, and a rich sibling ecosystem—the description is too thin. It does not explain the meaning of 'options', the effect of each optional flag, or when this tool is preferred over other diff-related siblings, so an agent cannot reliably invoke it correctly.

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 only references <path>; it offers no explanation for 'options', 'base_ref', 'allow_slow', or any of the other ten parameters. Since the schema provides no descriptions, the tool description fails to compensate, leaving most parameters semantically opaque.

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 states a specific action ('Compute Git commit and quality findings deltas') and a resource ('at <path>'), which clearly identifies the tool's core purpose. It does not explicitly contrast against sibling diff-like tools such as rush_api_diff or rush_db_drift, but the wording is specific enough to avoid confusion.

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?

There is no guidance on when to use this tool versus alternatives, nor any statement of exclusions or prerequisites. The description does not mention whether this should be used for commit-level analysis, findings comparison, or both, leaving the agent to infer the appropriate context.

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

rush_typecheckA

Type-check Python and JS/TS at . Uses mypy or tsc; missing engines return status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

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 responsibility for behavioral disclosure. It does add one useful non-obvious behavior: missing engines produce a 'skipped' status instead of an error. It does not mention whether the tool is read-only, what side effects it has, or how it handles mixed-language directories, leaving room for improvement.

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 sentence that front-loads the purpose, then adds engine details and the skipped-status behavior. There is no wasted wording; every phrase adds useful 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?

For a one-parameter tool with an output schema present, the description covers the core action and one key behavior. However, absence of annotations means it should also clarify safety (read-only), target path form, and how engines are selected per file type. 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 schema has only one parameter (path) with 0% description coverage, so the description must compensate. It merely echoes '<path>' without explaining what the path should point to (file vs directory, project root vs target file). This is minimal added meaning over the schema, so a score of 2 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?

The description states a specific verb ('Type-check') and resource ('Python and JS/TS at <path>'), and names the underlying engines (mypy/tsc). This clearly distinguishes it from siblings like rush_lint, rush_test, or rush_format without needing to name them, because the action and scope are explicit.

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: use it to type-check Python or JS/TS at a given path. However, it gives no explicit guidance about when to choose this over related tools such as rush_lint or rush_test, nor does it state exclusions. Context is minimal, so it earns a 3.

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

rush_visualB

Check visual baselines; updates require --accept.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
optionsYes
allow_slowNo
allow_buildNo
allow_browserNo
allow_networkNo
allow_downloadNo
allow_cache_writeNo
allow_artifact_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

B3.1/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 does disclose a meaningful behavioral trait: updates are gated behind --accept, implying the default operation is read-only checking. Still, it does not explain side effects, permission requirements, or how the many allow_* flags affect 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 very short and front-loaded, with no filler or repetition. Every word contributes to the core purpose and the key update caveat. It is concise, though perhaps too terse to fully support a 9-parameter 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?

With 9 parameters, no annotations, and minimal description, this is not complete enough for an agent to confidently invoke the tool with the right options. The output schema may document return values, but the description still leaves the allow_* flags and options semantics entirely unexplained.

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%, and the description does not explain any of the 9 schema parameters. The only parameter-like guidance is the external --accept flag, which is not part of the schema. With such low coverage, the description should compensate but does not address path, options, or any allow_* flags.

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 names a clear action and object: 'Check visual baselines'. This identifies the tool as a visual regression checker and is specific enough to distinguish it from most siblings. It does not explicitly differentiate it from a related tool like rush_snapshot, but the core purpose is unambiguous.

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 phrase 'updates require --accept' provides useful context: normal invocation is a check, while updating baselines requires an explicit flag. However, there is no explicit guidance about when to prefer this tool over sibling tools or when not to use it, so the guidance is mostly implied rather than stated.

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

rush_yamlA

Check YAML without rewriting; missing spectral returns status='skipped'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
toolNo
engineNo
statusNo
metricsNo
summaryNo
findingsNo
metadataNo
artifactsNo
duration_msNo
review_kindNo
engine_versionNo
review_providerNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and delivers: it promises no file rewriting and discloses a graceful 'skipped' outcome when spectral is absent. It could add what happens on success or invalid YAML, but the output schema is present to cover return shape.

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?

One dense, well-ordered sentence that front-loads the core action and then adds the dependency caveat. Every word earns its place; no filler.

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 one-parameter, no-annotation tool, the description covers the key invocation facts: what is checked, that it's non-mutating, and what happens when spectral is missing. It doesn't explain how to distinguish this from the broader rush_lint sibling, and the success/failure statuses are left to the output schema, so it is strong but not exhaustive.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It doesn't document the path parameter directly, but 'Check YAML' makes it clear the single required path points to a YAML file. The bare schema title and format carry the rest, so this is adequate but not rich.

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?

States a specific action (check) and resource (YAML), and adds a meaningful qualifier: it does not rewrite the file. It does not explicitly name a sibling or say what kind of check is performed, so it falls just short of a 5.

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 phrase 'Check YAML without rewriting' implies use when validating YAML rather than formatting or rewriting it, and 'missing spectral' hints at dependency behavior. It gives no explicit when/when-not guidance or named alternatives, so usage must be inferred.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 82 tool updatesv0.2.2
    • Changedrush_actions1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedrush_agent_connection
    • Addedrush_ai_eval
    • Removedrush_ai-eval
    • Changedrush_api_diff2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_api_diffArguments"New value: +"rush_api_diffArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_api_diffOutput"New value: +"rush_api_diffOutput"
    • Changedrush_arch_guard2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_arch_guardArguments"New value: +"rush_arch_guardArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_arch_guardOutput"New value: +"rush_arch_guardOutput"
    • Addedrush_attest
    • Changedrush_attest_generate33 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_browser
        Added value: +{
        +  "default": false,
        +  "title": "Allow Browser",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_build
        Added value: +{
        +  "default": false,
        +  "title": "Allow Build",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_cache_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Cache Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_download
        Added value: +{
        +  "default": false,
        +  "title": "Allow Download",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_network
        Added value: +{
        +  "default": false,
        +  "title": "Allow Network",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_slow
        Added value: +{
        +  "default": false,
        +  "title": "Allow Slow",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allowed_builders
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Allowed Builders",
        +  "type": "array"
        +}
      • addedInput schema / properties / allowed_signers
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Allowed Signers",
        +  "type": "array"
        +}
      • addedInput schema / properties / builder_id
        Added value: +{
        +  "default": "https://rush-cli.org/builder/v1",
        +  "title": "Builder Id",
        +  "type": "string"
        +}
      • addedInput schema / properties / output_path
        Added value: +{
        +  "default": "",
        +  "title": "Output Path",
        +  "type": "string"
        +}
      • addedInput schema / properties / path
        Added value: +{
        +  "format": "path",
        +  "title": "Path",
        +  "type": "string"
        +}
      • addedInput schema / properties / trusted_roots
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Trusted Roots",
        +  "type": "array"
        +}
      • addedInput schema / properties / verify
        Added value: +{
        +  "default": "",
        +  "title": "Verify",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "path"
        +]
      • changedInput schema / title
        Previous value: -"mcp_rush_attest_generateArguments"New value: +"__call__Arguments"
      • addedOutput schema / $defs
        Added value: +{
        +  "Finding": {
        +    "description": "One issue from any engine. total=False because not all engines\npopulate every field (e.g. heuristics may lack `rule`).",
        +    "properties": {
        +      "column": {
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "evidence": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Evidence"
        +      },
        +      "fingerprint": {
        +        "title": "Fingerprint",
        +        "type": "string"
        +      },
        +      "fix": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Fix"
        +      },
        +      "freshness": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Freshness"
        +      },
        +      "line": {
        +        "title": "Line",
        +        "type": "integer"
        +      },
        +      "message": {
        +        "title": "Message",
        +        "type": "string"
        +      },
        +      "patch": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Patch"
        +      },
        +      "path": {
        +        "title": "Path",
        +        "type": "string"
        +      },
        +      "provenance": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Provenance"
        +      },
        +      "remediation": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Remediation"
        +      },
        +      "rule": {
        +        "title": "Rule",
        +        "type": "string"
        +      },
        +      "rule_id": {
        +        "title": "Rule Id",
        +        "type": "string"
        +      },
        +      "severity": {
        +        "enum": [
        +          "info",
        +          "warn",
        +          "error"
        +        ],
        +        "title": "Severity",
        +        "type": "string"
        +      },
        +      "suggested_fix": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Suggested Fix"
        +      }
        +    },
        +    "title": "Finding",
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / artifacts
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Artifacts"
        +}
      • addedOutput schema / properties / duration_ms
        Added value: +{
        +  "default": null,
        +  "title": "Duration Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / engine
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine"
        +}
      • addedOutput schema / properties / engine_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine Version"
        +}
      • addedOutput schema / properties / findings
        Added value: +{
        +  "default": null,
        +  "items": {
        +    "$ref": "#/$defs/Finding"
        +  },
        +  "title": "Findings",
        +  "type": "array"
        +}
      • addedOutput schema / properties / metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metadata"
        +}
      • addedOutput schema / properties / metrics
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metrics"
        +}
      • addedOutput schema / properties / raw
        Added value: +{
        +  "anyOf": [
        +    {},
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Raw"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "title": "Result",
        -  "type": "string"
        -}
      • addedOutput schema / properties / review_kind
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "heuristic",
        +        "llm"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Kind"
        +}
      • addedOutput schema / properties / review_provider
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Provider"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "default": null,
        +  "enum": [
        +    "ok",
        +    "warn",
        +    "fail",
        +    "error",
        +    "skipped"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "default": null,
        +  "title": "Summary",
        +  "type": "string"
        +}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "default": null,
        +  "title": "Tool",
        +  "type": "string"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • changedOutput schema / title
        Previous value: -"mcp_rush_attest_generateOutput"New value: +"ToolResult"
    • Addedrush_benchmark
    • Changedrush_blast_radius2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_blast_radiusArguments"New value: +"rush_blast_radiusArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_blast_radiusOutput"New value: +"rush_blast_radiusOutput"
    • Changedrush_ci1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_codeql1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedrush_cold_start
    • Addedrush_commit_msg
    • Removedrush_commit-msg
    • Changedrush_complexity1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_containerfile1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_context_gain_stats2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_context_gain_statsArguments"New value: +"rush_context_gain_statsArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_context_gain_statsOutput"New value: +"rush_context_gain_statsOutput"
    • Changedrush_context_mistakes_check2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_context_mistakes_checkArguments"New value: +"rush_context_mistakes_checkArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_context_mistakes_checkOutput"New value: +"rush_context_mistakes_checkOutput"
    • Changedrush_context_pack1 field changed
      • changedInput schema / title
        Previous value: -"mcp_rush_context_packArguments"New value: +"rush_context_packArguments"
    • Changedrush_context_retrieve1 field changed
      • changedInput schema / title
        Previous value: -"mcp_rush_context_retrieveArguments"New value: +"rush_context_retrieveArguments"
    • Changedrush_continuity20 fields changed
      • addedInput schema / properties / as_v1
        Added value: +{
        +  "default": false,
        +  "title": "As V1",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / FindingV1
        Added value: +{
        +  "properties": {
        +    "column": {
        +      "title": "Column",
        +      "type": "integer"
        +    },
        +    "evidence": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Evidence"
        +    },
        +    "extensions": {
        +      "additionalProperties": true,
        +      "title": "Extensions",
        +      "type": "object"
        +    },
        +    "fingerprint": {
        +      "title": "Fingerprint",
        +      "type": "string"
        +    },
        +    "fix": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Fix"
        +    },
        +    "freshness": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Freshness"
        +    },
        +    "line": {
        +      "title": "Line",
        +      "type": "integer"
        +    },
        +    "message": {
        +      "title": "Message",
        +      "type": "string"
        +    },
        +    "patch": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Patch"
        +    },
        +    "path": {
        +      "title": "Path",
        +      "type": "string"
        +    },
        +    "provenance": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Provenance"
        +    },
        +    "remediation": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Remediation"
        +    },
        +    "rule": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Rule"
        +    },
        +    "rule_id": {
        +      "title": "Rule Id",
        +      "type": "string"
        +    },
        +    "severity": {
        +      "enum": [
        +        "info",
        +        "warning",
        +        "error"
        +      ],
        +      "title": "Severity",
        +      "type": "string"
        +    },
        +    "suggested_fix": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Suggested Fix"
        +    }
        +  },
        +  "required": [
        +    "path",
        +    "line",
        +    "column",
        +    "rule_id",
        +    "severity",
        +    "message",
        +    "fingerprint"
        +  ],
        +  "title": "FindingV1",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ToolResult
        Added value: +{
        +  "description": "The canonical output every tool returns, regardless of CLI or MCP.\n\nAlways-present minimum: tool, status, duration_ms, summary, findings.\nOther fields are tool-specific or engine-specific.",
        +  "properties": {
        +    "artifacts": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Artifacts"
        +    },
        +    "duration_ms": {
        +      "title": "Duration Ms",
        +      "type": "integer"
        +    },
        +    "engine": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Engine"
        +    },
        +    "engine_version": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Engine Version"
        +    },
        +    "findings": {
        +      "items": {
        +        "$ref": "#/$defs/Finding"
        +      },
        +      "title": "Findings",
        +      "type": "array"
        +    },
        +    "metadata": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Metadata"
        +    },
        +    "metrics": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {
        +            "anyOf": [
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Metrics"
        +    },
        +    "raw": {
        +      "anyOf": [
        +        {},
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Raw"
        +    },
        +    "review_kind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "heuristic",
        +            "llm"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Review Kind"
        +    },
        +    "review_provider": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Review Provider"
        +    },
        +    "status": {
        +      "enum": [
        +        "ok",
        +        "warn",
        +        "fail",
        +        "error",
        +        "skipped"
        +      ],
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "title": "Summary",
        +      "type": "string"
        +    },
        +    "tool": {
        +      "title": "Tool",
        +      "type": "string"
        +    }
        +  },
        +  "title": "ToolResult",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ToolResultV1
        Added value: +{
        +  "properties": {
        +    "duration_ms": {
        +      "title": "Duration Ms",
        +      "type": "integer"
        +    },
        +    "engine": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Engine"
        +    },
        +    "engine_version": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Engine Version"
        +    },
        +    "extensions": {
        +      "additionalProperties": true,
        +      "title": "Extensions",
        +      "type": "object"
        +    },
        +    "findings": {
        +      "items": {
        +        "$ref": "#/$defs/FindingV1"
        +      },
        +      "title": "Findings",
        +      "type": "array"
        +    },
        +    "raw": {
        +      "anyOf": [
        +        {},
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Raw"
        +    },
        +    "schema_version": {
        +      "const": "1.0.0",
        +      "title": "Schema Version",
        +      "type": "string"
        +    },
        +    "status": {
        +      "enum": [
        +        "ok",
        +        "warn",
        +        "fail",
        +        "error",
        +        "skipped"
        +      ],
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "title": "Summary",
        +      "type": "string"
        +    },
        +    "tool": {
        +      "title": "Tool",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema_version",
        +    "tool",
        +    "engine",
        +    "engine_version",
        +    "status",
        +    "duration_ms",
        +    "summary",
        +    "findings"
        +  ],
        +  "title": "ToolResultV1",
        +  "type": "object"
        +}
      • removedOutput schema / properties / artifacts
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Artifacts"
        -}
      • removedOutput schema / properties / duration_ms
        Removed value: -{
        -  "default": null,
        -  "title": "Duration Ms",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / engine
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Engine"
        -}
      • removedOutput schema / properties / engine_version
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Engine Version"
        -}
      • removedOutput schema / properties / findings
        Removed value: -{
        -  "default": null,
        -  "items": {
        -    "$ref": "#/$defs/Finding"
        -  },
        -  "title": "Findings",
        -  "type": "array"
        -}
      • removedOutput schema / properties / metadata
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": true,
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Metadata"
        -}
      • removedOutput schema / properties / metrics
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": {
        -        "anyOf": [
        -          {
        -            "type": "integer"
        -          },
        -          {
        -            "type": "number"
        -          },
        -          {
        -            "type": "string"
        -          }
        -        ]
        -      },
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Metrics"
        -}
      • removedOutput schema / properties / raw
        Removed value: -{
        -  "anyOf": [
        -    {},
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Raw"
        -}
      • addedOutput schema / properties / result
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/ToolResult"
        +    },
        +    {
        +      "$ref": "#/$defs/ToolResultV1"
        +    }
        +  ],
        +  "title": "Result"
        +}
      • removedOutput schema / properties / review_kind
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "enum": [
        -        "heuristic",
        -        "llm"
        -      ],
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Review Kind"
        -}
      • removedOutput schema / properties / review_provider
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Review Provider"
        -}
      • removedOutput schema / properties / status
        Removed value: -{
        -  "default": null,
        -  "enum": [
        -    "ok",
        -    "warn",
        -    "fail",
        -    "error",
        -    "skipped"
        -  ],
        -  "title": "Status",
        -  "type": "string"
        -}
      • removedOutput schema / properties / summary
        Removed value: -{
        -  "default": null,
        -  "title": "Summary",
        -  "type": "string"
        -}
      • removedOutput schema / properties / tool
        Removed value: -{
        -  "default": null,
        -  "title": "Tool",
        -  "type": "string"
        -}
      • addedOutput schema / required
        Added value: +[
        +  "result"
        +]
      • changedOutput schema / title
        Previous value: -"ToolResult"New value: +"__call__Output"
    • Changedrush_contract6 fields changed
      • addedInput schema / properties / options
        Added value: +{
        +  "title": "Options"
        +}
      • addedInput schema / properties / pact_files
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Pact Files"
        +}
      • addedInput schema / properties / provider_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Provider Url"
        +}
      • addedInput schema / properties / timeout_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timeout Seconds"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "path"
        -]New value: +[
        +  "path",
        +  "options"
        +]
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_coverage1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_db_drift2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_db_driftArguments"New value: +"rush_db_driftArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_db_driftOutput"New value: +"rush_db_driftOutput"
    • Changedrush_dead1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_dead_asset22 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / export_manifest
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "path",
        +      "type": "string"
        +    },
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Export Manifest"
        +}
      • addedInput schema / properties / path
        Added value: +{
        +  "format": "path",
        +  "title": "Path",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "path"
        +]
      • changedInput schema / title
        Previous value: -"mcp_rush_dead_assetArguments"New value: +"__call__Arguments"
      • addedOutput schema / $defs
        Added value: +{
        +  "Finding": {
        +    "description": "One issue from any engine. total=False because not all engines\npopulate every field (e.g. heuristics may lack `rule`).",
        +    "properties": {
        +      "column": {
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "evidence": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Evidence"
        +      },
        +      "fingerprint": {
        +        "title": "Fingerprint",
        +        "type": "string"
        +      },
        +      "fix": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Fix"
        +      },
        +      "freshness": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Freshness"
        +      },
        +      "line": {
        +        "title": "Line",
        +        "type": "integer"
        +      },
        +      "message": {
        +        "title": "Message",
        +        "type": "string"
        +      },
        +      "patch": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Patch"
        +      },
        +      "path": {
        +        "title": "Path",
        +        "type": "string"
        +      },
        +      "provenance": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Provenance"
        +      },
        +      "remediation": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Remediation"
        +      },
        +      "rule": {
        +        "title": "Rule",
        +        "type": "string"
        +      },
        +      "rule_id": {
        +        "title": "Rule Id",
        +        "type": "string"
        +      },
        +      "severity": {
        +        "enum": [
        +          "info",
        +          "warn",
        +          "error"
        +        ],
        +        "title": "Severity",
        +        "type": "string"
        +      },
        +      "suggested_fix": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Suggested Fix"
        +      }
        +    },
        +    "title": "Finding",
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / artifacts
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Artifacts"
        +}
      • addedOutput schema / properties / duration_ms
        Added value: +{
        +  "default": null,
        +  "title": "Duration Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / engine
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine"
        +}
      • addedOutput schema / properties / engine_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine Version"
        +}
      • addedOutput schema / properties / findings
        Added value: +{
        +  "default": null,
        +  "items": {
        +    "$ref": "#/$defs/Finding"
        +  },
        +  "title": "Findings",
        +  "type": "array"
        +}
      • addedOutput schema / properties / metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metadata"
        +}
      • addedOutput schema / properties / metrics
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metrics"
        +}
      • addedOutput schema / properties / raw
        Added value: +{
        +  "anyOf": [
        +    {},
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Raw"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "title": "Result",
        -  "type": "string"
        -}
      • addedOutput schema / properties / review_kind
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "heuristic",
        +        "llm"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Kind"
        +}
      • addedOutput schema / properties / review_provider
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Provider"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "default": null,
        +  "enum": [
        +    "ok",
        +    "warn",
        +    "fail",
        +    "error",
        +    "skipped"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "default": null,
        +  "title": "Summary",
        +  "type": "string"
        +}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "default": null,
        +  "title": "Tool",
        +  "type": "string"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • changedOutput schema / title
        Previous value: -"mcp_rush_dead_assetOutput"New value: +"ToolResult"
    • Changedrush_doctor1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_e2e1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedrush_error_catalog
    • Changedrush_fix2 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_flaky1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_format1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_fuzz6 fields changed
      • addedInput schema / properties / corpus
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Corpus"
        +}
      • addedInput schema / properties / harness
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Harness"
        +}
      • addedInput schema / properties / max_runs
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Max Runs"
        +}
      • addedInput schema / properties / seed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Seed"
        +}
      • addedInput schema / properties / timeout_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timeout Seconds"
        +}
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_hallu_guard2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_hallu_guardArguments"New value: +"rush_hallu_guardArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_hallu_guardOutput"New value: +"rush_hallu_guardOutput"
    • Changedrush_iac1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_iam_audit28 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_browser
        Added value: +{
        +  "default": false,
        +  "title": "Allow Browser",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_build
        Added value: +{
        +  "default": false,
        +  "title": "Allow Build",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_cache_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Cache Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_download
        Added value: +{
        +  "default": false,
        +  "title": "Allow Download",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_network
        Added value: +{
        +  "default": false,
        +  "title": "Allow Network",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_slow
        Added value: +{
        +  "default": false,
        +  "title": "Allow Slow",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / output_policy_file
        Added value: +{
        +  "default": "",
        +  "title": "Output Policy File",
        +  "type": "string"
        +}
      • addedInput schema / properties / path
        Added value: +{
        +  "format": "path",
        +  "title": "Path",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "path"
        +]
      • changedInput schema / title
        Previous value: -"mcp_rush_iam_auditArguments"New value: +"__call__Arguments"
      • addedOutput schema / $defs
        Added value: +{
        +  "Finding": {
        +    "description": "One issue from any engine. total=False because not all engines\npopulate every field (e.g. heuristics may lack `rule`).",
        +    "properties": {
        +      "column": {
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "evidence": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Evidence"
        +      },
        +      "fingerprint": {
        +        "title": "Fingerprint",
        +        "type": "string"
        +      },
        +      "fix": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Fix"
        +      },
        +      "freshness": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Freshness"
        +      },
        +      "line": {
        +        "title": "Line",
        +        "type": "integer"
        +      },
        +      "message": {
        +        "title": "Message",
        +        "type": "string"
        +      },
        +      "patch": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Patch"
        +      },
        +      "path": {
        +        "title": "Path",
        +        "type": "string"
        +      },
        +      "provenance": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Provenance"
        +      },
        +      "remediation": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Remediation"
        +      },
        +      "rule": {
        +        "title": "Rule",
        +        "type": "string"
        +      },
        +      "rule_id": {
        +        "title": "Rule Id",
        +        "type": "string"
        +      },
        +      "severity": {
        +        "enum": [
        +          "info",
        +          "warn",
        +          "error"
        +        ],
        +        "title": "Severity",
        +        "type": "string"
        +      },
        +      "suggested_fix": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Suggested Fix"
        +      }
        +    },
        +    "title": "Finding",
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / artifacts
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Artifacts"
        +}
      • addedOutput schema / properties / duration_ms
        Added value: +{
        +  "default": null,
        +  "title": "Duration Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / engine
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine"
        +}
      • addedOutput schema / properties / engine_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine Version"
        +}
      • addedOutput schema / properties / findings
        Added value: +{
        +  "default": null,
        +  "items": {
        +    "$ref": "#/$defs/Finding"
        +  },
        +  "title": "Findings",
        +  "type": "array"
        +}
      • addedOutput schema / properties / metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metadata"
        +}
      • addedOutput schema / properties / metrics
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metrics"
        +}
      • addedOutput schema / properties / raw
        Added value: +{
        +  "anyOf": [
        +    {},
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Raw"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "title": "Result",
        -  "type": "string"
        -}
      • addedOutput schema / properties / review_kind
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "heuristic",
        +        "llm"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Kind"
        +}
      • addedOutput schema / properties / review_provider
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Provider"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "default": null,
        +  "enum": [
        +    "ok",
        +    "warn",
        +    "fail",
        +    "error",
        +    "skipped"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "default": null,
        +  "title": "Summary",
        +  "type": "string"
        +}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "default": null,
        +  "title": "Tool",
        +  "type": "string"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • changedOutput schema / title
        Previous value: -"mcp_rush_iam_auditOutput"New value: +"ToolResult"
    • Changedrush_license_matrix29 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_browser
        Added value: +{
        +  "default": false,
        +  "title": "Allow Browser",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_build
        Added value: +{
        +  "default": false,
        +  "title": "Allow Build",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_cache_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Cache Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_download
        Added value: +{
        +  "default": false,
        +  "title": "Allow Download",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_network
        Added value: +{
        +  "default": false,
        +  "title": "Allow Network",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_slow
        Added value: +{
        +  "default": false,
        +  "title": "Allow Slow",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allowed_licenses
        Added value: +{
        +  "default": [
        +    "MIT",
        +    "Apache-2.0",
        +    "BSD-2-Clause",
        +    "BSD-3-Clause",
        +    "ISC",
        +    "Unlicense",
        +    "CC0-1.0",
        +    "0BSD",
        +    "PSF-2.0",
        +    "Python-2.0",
        +    "Zlib"
        +  ],
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Allowed Licenses",
        +  "type": "array"
        +}
      • addedInput schema / properties / package_licenses
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Package Licenses"
        +}
      • addedInput schema / properties / path
        Added value: +{
        +  "format": "path",
        +  "title": "Path",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "path"
        +]
      • changedInput schema / title
        Previous value: -"mcp_rush_license_matrixArguments"New value: +"__call__Arguments"
      • addedOutput schema / $defs
        Added value: +{
        +  "Finding": {
        +    "description": "One issue from any engine. total=False because not all engines\npopulate every field (e.g. heuristics may lack `rule`).",
        +    "properties": {
        +      "column": {
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "evidence": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Evidence"
        +      },
        +      "fingerprint": {
        +        "title": "Fingerprint",
        +        "type": "string"
        +      },
        +      "fix": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Fix"
        +      },
        +      "freshness": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Freshness"
        +      },
        +      "line": {
        +        "title": "Line",
        +        "type": "integer"
        +      },
        +      "message": {
        +        "title": "Message",
        +        "type": "string"
        +      },
        +      "patch": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Patch"
        +      },
        +      "path": {
        +        "title": "Path",
        +        "type": "string"
        +      },
        +      "provenance": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Provenance"
        +      },
        +      "remediation": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Remediation"
        +      },
        +      "rule": {
        +        "title": "Rule",
        +        "type": "string"
        +      },
        +      "rule_id": {
        +        "title": "Rule Id",
        +        "type": "string"
        +      },
        +      "severity": {
        +        "enum": [
        +          "info",
        +          "warn",
        +          "error"
        +        ],
        +        "title": "Severity",
        +        "type": "string"
        +      },
        +      "suggested_fix": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Suggested Fix"
        +      }
        +    },
        +    "title": "Finding",
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / artifacts
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Artifacts"
        +}
      • addedOutput schema / properties / duration_ms
        Added value: +{
        +  "default": null,
        +  "title": "Duration Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / engine
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine"
        +}
      • addedOutput schema / properties / engine_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine Version"
        +}
      • addedOutput schema / properties / findings
        Added value: +{
        +  "default": null,
        +  "items": {
        +    "$ref": "#/$defs/Finding"
        +  },
        +  "title": "Findings",
        +  "type": "array"
        +}
      • addedOutput schema / properties / metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metadata"
        +}
      • addedOutput schema / properties / metrics
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metrics"
        +}
      • addedOutput schema / properties / raw
        Added value: +{
        +  "anyOf": [
        +    {},
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Raw"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "title": "Result",
        -  "type": "string"
        -}
      • addedOutput schema / properties / review_kind
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "heuristic",
        +        "llm"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Kind"
        +}
      • addedOutput schema / properties / review_provider
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Provider"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "default": null,
        +  "enum": [
        +    "ok",
        +    "warn",
        +    "fail",
        +    "error",
        +    "skipped"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "default": null,
        +  "title": "Summary",
        +  "type": "string"
        +}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "default": null,
        +  "title": "Tool",
        +  "type": "string"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • changedOutput schema / title
        Previous value: -"mcp_rush_license_matrixOutput"New value: +"ToolResult"
    • Changedrush_lint1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_load6 fields changed
      • addedInput schema / properties / duration_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Duration Seconds"
        +}
      • addedInput schema / properties / script
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "format": "path",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Script"
        +}
      • addedInput schema / properties / target_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Target Url"
        +}
      • addedInput schema / properties / timeout_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timeout Seconds"
        +}
      • addedInput schema / properties / vus
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Vus"
        +}
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_markdown1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedrush_media_opt
    • Addedrush_mem_profile
    • Addedrush_memory
    • Changedrush_mesh_acquire_lock3 fields changed
      • addedInput schema / properties / capability
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Capability"
        +}
      • changedInput schema / title
        Previous value: -"mcp_rush_mesh_acquire_lockArguments"New value: +"rush_mesh_acquire_lockArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_mesh_acquire_lockOutput"New value: +"rush_mesh_acquire_lockOutput"
    • Changedrush_mesh_release_lock3 fields changed
      • addedInput schema / properties / capability
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Capability"
        +}
      • changedInput schema / title
        Previous value: -"mcp_rush_mesh_release_lockArguments"New value: +"rush_mesh_release_lockArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_mesh_release_lockOutput"New value: +"rush_mesh_release_lockOutput"
    • Changedrush_mutation4 fields changed
      • addedInput schema / properties / source_paths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Paths"
        +}
      • addedInput schema / properties / test_paths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Test Paths"
        +}
      • addedInput schema / properties / timeout_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Timeout Seconds"
        +}
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedrush_offline_review
    • Addedrush_patch_apply
    • Changedrush_pbt1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_pr_synthesize24 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / base_branch
        Removed value: -{
        -  "default": "main",
        -  "title": "Base Branch",
        -  "type": "string"
        -}
      • addedInput schema / properties / base_ref
        Added value: +{
        +  "default": "main",
        +  "title": "Base Ref",
        +  "type": "string"
        +}
      • addedInput schema / properties / export_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "path",
        +      "type": "string"
        +    },
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Export Path"
        +}
      • addedInput schema / properties / path
        Added value: +{
        +  "format": "path",
        +  "title": "Path",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "path"
        +]
      • changedInput schema / title
        Previous value: -"mcp_rush_pr_synthesizeArguments"New value: +"__call__Arguments"
      • addedOutput schema / $defs
        Added value: +{
        +  "Finding": {
        +    "description": "One issue from any engine. total=False because not all engines\npopulate every field (e.g. heuristics may lack `rule`).",
        +    "properties": {
        +      "column": {
        +        "title": "Column",
        +        "type": "integer"
        +      },
        +      "evidence": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Evidence"
        +      },
        +      "fingerprint": {
        +        "title": "Fingerprint",
        +        "type": "string"
        +      },
        +      "fix": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Fix"
        +      },
        +      "freshness": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Freshness"
        +      },
        +      "line": {
        +        "title": "Line",
        +        "type": "integer"
        +      },
        +      "message": {
        +        "title": "Message",
        +        "type": "string"
        +      },
        +      "patch": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Patch"
        +      },
        +      "path": {
        +        "title": "Path",
        +        "type": "string"
        +      },
        +      "provenance": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Provenance"
        +      },
        +      "remediation": {
        +        "anyOf": [
        +          {
        +            "additionalProperties": true,
        +            "type": "object"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Remediation"
        +      },
        +      "rule": {
        +        "title": "Rule",
        +        "type": "string"
        +      },
        +      "rule_id": {
        +        "title": "Rule Id",
        +        "type": "string"
        +      },
        +      "severity": {
        +        "enum": [
        +          "info",
        +          "warn",
        +          "error"
        +        ],
        +        "title": "Severity",
        +        "type": "string"
        +      },
        +      "suggested_fix": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Suggested Fix"
        +      }
        +    },
        +    "title": "Finding",
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / artifacts
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Artifacts"
        +}
      • addedOutput schema / properties / duration_ms
        Added value: +{
        +  "default": null,
        +  "title": "Duration Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / engine
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine"
        +}
      • addedOutput schema / properties / engine_version
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Engine Version"
        +}
      • addedOutput schema / properties / findings
        Added value: +{
        +  "default": null,
        +  "items": {
        +    "$ref": "#/$defs/Finding"
        +  },
        +  "title": "Findings",
        +  "type": "array"
        +}
      • addedOutput schema / properties / metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metadata"
        +}
      • addedOutput schema / properties / metrics
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "anyOf": [
        +          {
        +            "type": "integer"
        +          },
        +          {
        +            "type": "number"
        +          },
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Metrics"
        +}
      • addedOutput schema / properties / raw
        Added value: +{
        +  "anyOf": [
        +    {},
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Raw"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "title": "Result",
        -  "type": "string"
        -}
      • addedOutput schema / properties / review_kind
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "heuristic",
        +        "llm"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Kind"
        +}
      • addedOutput schema / properties / review_provider
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Provider"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "default": null,
        +  "enum": [
        +    "ok",
        +    "warn",
        +    "fail",
        +    "error",
        +    "skipped"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "default": null,
        +  "title": "Summary",
        +  "type": "string"
        +}
      • addedOutput schema / properties / tool
        Added value: +{
        +  "default": null,
        +  "title": "Tool",
        +  "type": "string"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • changedOutput schema / title
        Previous value: -"mcp_rush_pr_synthesizeOutput"New value: +"ToolResult"
    • Addedrush_project
    • Addedrush_prompt_eval
    • Addedrush_provenance_ai
    • Changedrush_release1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_review1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_sbom1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedrush_scan
    • Addedrush_scan_handoff
    • Changedrush_secrets1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_security1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Addedrush_semantic_drift
    • Removedrush_semantic-drift
    • Changedrush_ship_clean9 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / apply
        Added value: +{
        +  "default": false,
        +  "title": "Apply",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "default": false,
        -  "title": "Dry Run",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / path
        Added value: +{
        +  "default": ".",
        +  "format": "path",
        +  "title": "Path",
        +  "type": "string"
        +}
      • changedInput schema / title
        Previous value: -"mcp_rush_ship_cleanArguments"New value: +"rush_ship_cleanArguments"
      • addedOutput schema / additionalProperties
        Added value: +true
      • removedOutput schema / properties
        Removed value: -{
        -  "result": {
        -    "title": "Result",
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • changedOutput schema / title
        Previous value: -"mcp_rush_ship_cleanOutput"New value: +"rush_ship_cleanDictOutput"
    • Changedrush_ship_env2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_ship_envArguments"New value: +"rush_ship_envArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_ship_envOutput"New value: +"rush_ship_envOutput"
    • Changedrush_ship_gate2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_ship_gateArguments"New value: +"rush_ship_gateArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_ship_gateOutput"New value: +"rush_ship_gateOutput"
    • Changedrush_simplify2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_simplifyArguments"New value: +"rush_simplifyArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_simplifyOutput"New value: +"rush_simplifyOutput"
    • Changedrush_slop1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_snapshot1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_sql1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_strictify2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_strictifyArguments"New value: +"rush_strictifyArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_strictifyOutput"New value: +"rush_strictifyOutput"
    • Changedrush_swarm_merge2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_swarm_mergeArguments"New value: +"rush_swarm_mergeArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_swarm_mergeOutput"New value: +"rush_swarm_mergeOutput"
    • Changedrush_tdd1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_templates1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_test1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_test_heal8 fields changed
      • addedInput schema / properties / allow_artifact_write
        Added value: +{
        +  "default": false,
        +  "title": "Allow Artifact Write",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_build
        Added value: +{
        +  "default": false,
        +  "title": "Allow Build",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / allow_slow
        Added value: +{
        +  "default": false,
        +  "title": "Allow Slow",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / dry_run
        Added value: +{
        +  "default": true,
        +  "title": "Dry Run",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / runs / default
        Previous value: -5New value: +20
      • addedInput schema / properties / seed
        Added value: +{
        +  "default": 0,
        +  "title": "Seed",
        +  "type": "integer"
        +}
      • changedInput schema / title
        Previous value: -"mcp_rush_test_healArguments"New value: +"rush_test_healArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_test_healOutput"New value: +"rush_test_healOutput"
    • Changedrush_token_outline2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_token_outlineArguments"New value: +"rush_token_outlineArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_token_outlineOutput"New value: +"rush_token_outlineOutput"
    • Changedrush_trace2 fields changed
      • changedInput schema / title
        Previous value: -"mcp_rush_traceArguments"New value: +"rush_traceArguments"
      • changedOutput schema / title
        Previous value: -"mcp_rush_traceOutput"New value: +"rush_traceOutput"
    • Addedrush_tui_diff
    • Changedrush_typecheck1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_visual1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrush_yaml1 field changed
      • changedOutput schema / properties / metrics / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "number"
        -        },
        -        {
        -          "type": "string"
        -        }
        -      ]
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {
        +      "anyOf": [
        +        {
        +          "type": "integer"
        +        },
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  2. 63 tool updatesv0.3.0
    • First observedrush_actions
    • First observedrush_ai-eval
    • First observedrush_api_diff
    • First observedrush_arch_guard
    • First observedrush_attest_generate
    • First observedrush_blast_radius
    • First observedrush_ci
    • First observedrush_codeql
    • First observedrush_commit-msg
    • First observedrush_complexity
    • First observedrush_containerfile
    • First observedrush_context_gain_stats
    • First observedrush_context_mistakes_check
    • First observedrush_context_pack
    • First observedrush_context_retrieve
    • First observedrush_continuity
    • First observedrush_contract
    • First observedrush_coverage
    • First observedrush_db_drift
    • First observedrush_dead
    • First observedrush_dead_asset
    • First observedrush_doctor
    • First observedrush_e2e
    • First observedrush_fix
    • First observedrush_flaky
    • First observedrush_format
    • First observedrush_fuzz
    • First observedrush_hallu_guard
    • First observedrush_iac
    • First observedrush_iam_audit
    • First observedrush_license_matrix
    • First observedrush_lint
    • First observedrush_load
    • First observedrush_markdown
    • First observedrush_mesh_acquire_lock
    • First observedrush_mesh_release_lock
    • First observedrush_mutation
    • First observedrush_pbt
    • First observedrush_pr_synthesize
    • First observedrush_release
    • First observedrush_review
    • First observedrush_sbom
    • First observedrush_secrets
    • First observedrush_security
    • First observedrush_semantic-drift
    • First observedrush_ship_clean
    • First observedrush_ship_env
    • First observedrush_ship_gate
    • First observedrush_simplify
    • First observedrush_slop
    • First observedrush_snapshot
    • First observedrush_sql
    • First observedrush_strictify
    • First observedrush_swarm_merge
    • First observedrush_tdd
    • First observedrush_templates
    • First observedrush_test
    • First observedrush_test_heal
    • First observedrush_token_outline
    • First observedrush_trace
    • First observedrush_typecheck
    • First observedrush_visual
    • First observedrush_yaml

TDQS

C2.6/5.0

Scored across 79 tools

Disambiguation2/5

Many tools fall into the same broad audit/scan bucket, such as rush_review, rush_lint, rush_slop, rush_dead, and rush_complexity, making selection genuinely ambiguous. Test-related tools like rush_test, rush_e2e, rush_snapshot, and rush_visual also blur together, and the deprecated rush_attest_generate alias adds extra confusion.

Naming Consistency3/5

All tools share the rush_ prefix and snake_case, which keeps the naming readable. However, the operation part is inconsistent: some are nouns, some are verbs, and some are long descriptive phrases, so there is no predictable verb_noun or noun_verb convention.

Tool Count1/5

With 79 tools, this is an extreme over-scoped MCP surface and far exceeds the threshold where a tool set remains navigable. Many related scanners could be consolidated into a single parameterized scan/audit tool, and the sheer count severely harms discoverability.

Completeness4/5

The inferred domain is a broad engineering-quality and release-readiness assistant, and the tool set covers static analysis, testing, security, release planning, AI evaluation, context management, and agent coordination. Some gaps remain—many findings can only be remediated by rush_fix and several tools depend on external engines—but agents can generally work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides comprehensive code quality tools including linting, security scanning, TypeScript checking, and testing through a single MCP server. Integrates multiple quality analysis tools like Biome, ESLint, and Playwright for streamlined development workflows.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Code linting and style checking tools for AI agents, exposed as an MCP server. Supports style checks, naming conventions, complexity analysis, dead code detection, and import analysis.
    29 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Autonomous spec-to-product coding-agent CLI. Its MCP server exposes 34 tools over stdio: project state and task-queue ops, memory retrieve/store, code search, quality and verification reports, repo hotspots/co-changes, and structured findings/learnings.
    903 npm
    1,072
    Business Source 1.1