Skip to main content
Glama

playcal_baseline

Save performance baselines and compare new runs against them, failing only when p95 frame time, GC, or memory worsen beyond configured noise.

Instructions

keep a perf baseline (p95 frame time, GC, memory) and fail only when a run is worse by more than noise

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>",
      "name": "<name>"
    },
    "name": "playcal_baseline"
  }
}

Input Schema

NameRequiredDescriptionDefault
dirNowhere baselines live (default .playcal/baselines).playcal/baselines
nameYesbaseline name, e.g. level4-android
floorNoignore slowdowns smaller than this in absolute units, e.g. frame_ms=0.5. Repeatable
actionYessave NAME FILE: keep a run as the baseline. check NAME FILE: compare a new run. show NAME
metricNoonly these metrics (default: all in both)
sourceNosamples JSON file, or - for stdin (default)-
toleranceNoallowed slowdown in percent (default 10)
percentileNopercentile to compare (default 95)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A3.5/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 does disclose the key behavioral trait that failures are noise-gated rather than exact-match regressions, and it names the metrics observed, but it omits that 'save' persists files under the baselines directory and how 'fail' is surfaced (exit code vs error payload). Side effects of a stateful tool are only partially covered.

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 tightly packed sentence with the core purpose front-loaded and zero filler. It is efficient, though the compression comes at the cost of never enumerating the save/check/show modes.

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 a fully documented 8-parameter schema and no output schema, the description supplies the missing conceptual layer — that this is a regression gate with noise tolerance over p95 frame time, GC, and memory. The remaining gap is the three action modes and the persistence side effect, which is not fully addressed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents dir, name, floor, action, metric, source, tolerance, and percentile. The description reinforces the comparison semantics (p95, 'noise' implying tolerance/floor) but adds no syntax or format detail beyond that baseline.

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 concrete resource ('perf baseline') and the metrics it covers (p95 frame time, GC, memory), plus the comparison policy ('fail only when a run is worse by more than noise'). It is clearly distinguishable from siblings like playcal_observe or playcal_report, though the verb 'keep' is soft and the three modes (save/check/show) are left entirely to 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 Guidelines3/5

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

The phrase 'keep a perf baseline ... and fail only when a run is worse by more than noise' implies the record-then-compare workflow and the gating semantics, but it never says when to prefer check over show, when a baseline should be saved, or how this relates to the other playcal tools. Usage is only implied, not prescribed.

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