Skip to main content
Glama

probe

Run a record-only dry run to verify selectors and timing, optionally update or compare against a golden baseline, and get a job ID for status polling.

Instructions

Record-only dry run to verify selectors/timing (narration optional). With updateGolden, writes golden/probe.json (the regression baseline); with golden, deep-compares against it and returns match + field-level diffs. Returns a jobId immediately — poll job_status. Rejects if another job is running.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dirYesdemo project directory — pass an absolute path
freshNorun against a WIPED throwaway profile — use for any demo whose story starts at a first-run gate, onboarding, an empty state or a one-shot flow, since carried-over cookies/localStorage silently record the wrong story. Not for logged-in demos (a fresh profile has no login).
goldenNocompare against golden/probe.json; returns match + diffs (CI guard)
paramsNostoryboard template params (name → value); each must be declared in the storyboard's params block. Substitutes {{name}} across all stages.
captureNo
cookiesNocookies to seed before the first action (name, value, domain[, path, secure, httpOnly, sameSite, expires]). Also storyboard setup.cookies.
profileNoChrome user-data dir (logged-in profile)
headlessNorun Chrome headless (default false — headed, like the CLI)
fromSceneNoresume: keep the previous take's scenes before this scene id (footage + timeline, verified unchanged by hash) and record from it — after a late-scene failure or a change to the tail of the storyboard
storageStateNoabsolute path to a Playwright storageState JSON (cookies + per-origin localStorage) to seed into the profile before the first action — for cookie-gated sites. Also available as storyboard setup.storageState.
updateGoldenNowrite golden/probe.json from this probe (commit it as the baseline)
profileSeededNothe profile is seeded on purpose (login / cookie gate): silence the carried-over-state warning. Implied by storageState/cookies.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
jobIdYes
statusYes
demoDirYesresolved absolute demo directory
logFileYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.14.1
    • addedInput schema / properties / cookies
      Added value: +{
      +  "description": "cookies to seed before the first action (name, value, domain[, path, secure, httpOnly, sameSite, expires]). Also storyboard setup.cookies.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "domain": {
      +        "type": "string"
      +      },
      +      "expires": {
      +        "type": "number"
      +      },
      +      "httpOnly": {
      +        "type": "boolean"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "path": {
      +        "type": "string"
      +      },
      +      "sameSite": {
      +        "enum": [
      +          "Strict",
      +          "Lax",
      +          "None"
      +        ],
      +        "type": "string"
      +      },
      +      "secure": {
      +        "type": "boolean"
      +      },
      +      "url": {
      +        "type": "string"
      +      },
      +      "value": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "value"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / fresh
      Added value: +{
      +  "description": "run against a WIPED throwaway profile — use for any demo whose story starts at a first-run gate, onboarding, an empty state or a one-shot flow, since carried-over cookies/localStorage silently record the wrong story. Not for logged-in demos (a fresh profile has no login).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / fromScene
      Added value: +{
      +  "description": "resume: keep the previous take's scenes before this scene id (footage + timeline, verified unchanged by hash) and record from it — after a late-scene failure or a change to the tail of the storyboard",
      +  "type": "string"
      +}
    • addedInput schema / properties / profileSeeded
      Added value: +{
      +  "description": "the profile is seeded on purpose (login / cookie gate): silence the carried-over-state warning. Implied by storageState/cookies.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / storageState
      Added value: +{
      +  "description": "absolute path to a Playwright storageState JSON (cookies + per-origin localStorage) to seed into the profile before the first action — for cookie-gated sites. Also available as storyboard setup.storageState.",
      +  "type": "string"
      +}
  2. First observedv0.9.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: discloses record-only nature, optional narration, golden file writes, immediate jobId with polling, and job rejection. Missing details like error handling or output format but output schema exists.

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

Conciseness5/5

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

Three sentences, no waste, purpose front-loaded. Each sentence adds essential behavioral or workflow context.

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 12 params with strong schema coverage and an output schema, the description covers the core flow (jobId, polling, golden mechanics, rejection). It doesn't describe all parameters but the schema does; it's complete for the main workflow.

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

Parameters4/5

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

Schema coverage is 92%, so the schema already documents parameters. The description adds value by explaining the role of updateGolden and golden ('with updateGolden writes...', 'with golden deep-compares...') and the 'narration optional' nuance, enriching beyond 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?

States a specific verb+resource ('Record-only dry run to verify selectors/timing') and distinguishes from siblings like 'record' by explicitly being a dry run. The golden comparison behavior adds further specificity.

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?

Implies usage for verification and CI via golden comparison, and notes rejection when another job is running. Doesn't explicitly name alternatives or when-not-to-use, but the 'dry run' framing clearly separates it from 'record'.

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