Skip to main content
Glama

triage_test_coverage

Audit files and directories to rank them by mutation score, weakest first. Pinpoint fragile test coverage across your codebase in a single run.

Instructions

Batch triage: audit a set of files and/or directories and return a weakest-first ranked leaderboard of mutation scores, so you can see where the test suite is most fragile in one call. Directories are recursively expanded to supported source files (.ts/.js/.py/.rs/.php), skipping test files. Files are audited in parallel (see fileConcurrency, default min(4, cpus-1)), under a shared wall-clock budget (see totalTimeoutMs). Drill into a weak file with audit_code_resilience for per-mutant survivor detail: each row's file is relative to the server's working directory, so it can be passed straight back as that tool's filePath (its own target is spelled differently — see that tool's description).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathsNoFiles and/or directories to triage, resolved against the server's working directory. Directories are recursively expanded to supported source files. Each ranked row reports its `file` in that same spelling, so a row can be fed straight back to this tool or to audit_code_resilience. Example: ["src/utils", "src/index.ts"]
diffBaseNoAuto-scope the triage to files changed in git. "HEAD" (uncommitted), "staged", or any ref/branch/SHA (merge-base with HEAD). Makes "paths" optional: diffBase alone scans all changed supported source files; diffBase + paths intersects with those paths. TypeScript files are mutated only on changed lines; other languages run whole-file. Example: "main"
maxFilesNoCap on the number of files audited (precedence: this arg > config.defaultMaxFiles > 25). Files beyond the cap are skipped (reported in the summary). Example: 25
minScoreNoGate: if any file's mutation score is below this (0–100), the result reports gate.passed=false and lists the failing files. Never causes an error. Example: 80.
timeoutMsNoPer-file mutation-run timeout in milliseconds. Default: 300000 (5 minutes). Must be <= 2147483647 (the largest delay a timer accepts). Also clamped by whatever remains of totalTimeoutMs.
outputFormatNoOutput format. "json" (default) or "text".
totalTimeoutMsNoWall-clock budget for the WHOLE sweep in milliseconds. Default: 900000 (15 minutes). Files not started before it runs out are returned in "unaudited" rather than audited, so a large sweep still returns the ranking it produced. Must be <= 2147483647 (the largest delay a timer accepts). Example: 1800000
fileConcurrencyNoHow many files to audit in parallel. Default min(4, cpus-1). When >1, the per-file worker count is capped for every engine that has one (StrykerJS --concurrency, cargo-mutants -j, Infection --threads), and for StrykerJS each mutant's test run is additionally pinned to a single vitest worker, so those three layers multiply out to roughly the core count. Rust is the exception to watch: `cargo build`/`cargo test` parallelise internally and take no cap, so a Rust sweep runs fileConcurrency concurrent cargo builds, each of which wants its own multi-GB target directory — lower this to 1 or 2 on a memory-constrained machine. Raise with care on a workstation: a sweep is still the most resource-hungry thing this server does. Example: 4
mutatorDenylistNoStryker mutator names to exclude, applied to every TypeScript/JS file.
survivorsPerFileNoHow many top (severity-ranked, enriched) survivor groups to inline per ranked file. 0 (default) returns a scores-only leaderboard. Example: 3

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
gateNo
modeYes
noteYes
errorsYes
rankingYes
summaryYes
scopeNoteNo
unauditedNo
stoppedReasonNo
Install Server

TDQS

A4.6/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 key behaviors: directories are recursively expanded, test files are skipped, files are audited in parallel with a shared wall-clock budget, and the output format includes 'unaudited' files when the budget runs out. It also warns about resource intensity ('a sweep is still the most resource-hungry thing this server does') and the Rust exception. The only minor gap is that it doesn't explicitly state whether the tool is read-only or has side effects, but the description implies it's a read-only audit 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 well-structured and front-loaded with the core purpose. It uses paragraphs to separate the main description, parameter details, and cross-tool guidance. It is somewhat long but each sentence adds value, covering key behaviors, parameter interactions, and usage guidance. The only minor issue is that it could be slightly more concise, but the density of information justifies the length.

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

Completeness5/5

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

Given the tool's complexity (10 parameters, no required params, output schema present), the description is remarkably complete. It covers the main use case, parameter interactions, edge cases (Rust memory, timeouts), and cross-tool integration. The output schema exists, so the description doesn't need to explain return values in detail, but it does mention the 'unaudited' field and the gate behavior. The description is sufficient for an agent to use the tool effectively without additional context.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the interaction between parameters (e.g., diffBase + paths intersection, maxFiles precedence, totalTimeoutMs clamping per-file timeout, fileConcurrency effects on different engines). It also provides examples and clarifies the meaning of 'file' relative to the working directory, which is crucial for passing to audit_code_resilience. The description goes beyond the schema by explaining the resource implications of fileConcurrency and the behavior of totalTimeoutMs.

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: 'Batch triage: audit a set of files and/or directories and return a weakest-first ranked leaderboard of mutation scores'. It specifies the verb (audit/triage), the resource (files/directories), and the output (ranked leaderboard). It also distinguishes from siblings by mentioning 'Drill into a weak file with audit_code_resilience' and noting the difference in parameter spelling.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it explains when to use this tool (for a batch overview of fragility) and when to use the alternative (audit_code_resilience for per-mutant detail). It also explains the diffBase option for auto-scoping to changed files, and the precedence of maxFiles. The description clearly states the relationship with sibling tools, making it easy for an agent to choose correctly.

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

Other Tools

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AraneaDev/Chaos-MCP'

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