Skip to main content
Glama
cambroussard9

trail-factors

drift_onset

Determines when cardiac drift begins in a run, returning a gate that shows whether the onset is reportable or diagnostic-only.

Instructions

§6.9 WHEN in a run cardiac drift begins — a VIEW of §6.7, currently REFUSED.

Args:
    run: run_id, activity_id or Garmin file id. Empty means the latest run.

The result carries `gate`, which is computed from the live corpus. While
`gate.reportable` is false the curve is a DIAGNOSTIC and must not be quoted
as a finding — the same standing as tau (§6.3). Read `gate.reason`: it says
exactly what would make it start reporting.

Onset is confounded with run length and its earliest representable value is
§6.7's own 600 s minimum pair separation. Dew point travels with every
value because onset is uninterpretable without it.

Input Schema

NameRequiredDescriptionDefault
runNo
last_nNo
clusterNo
end_dateNo
run_typeNo
directionNo
segment_idNo
start_dateNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/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 disclose meaningful behavior: the gate is computed against a live corpus, unreportable results are diagnostic-only, onset is confounded with run length, the earliest representable value is bounded by a 600 s pair separation, and dew point travels with every value for interpretability. What it does not clarify is what 'REFUSED' operationally means for the caller (empty result, error, or a flagged row).

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 purpose is front-loaded, which is good, and every paragraph is about something real. But the section-number jargon and the 'currently REFUSED' framing consume space without adding actionable meaning, and the Args block documents only one of eight arguments despite the space it takes.

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 the description needn't enumerate return fields, yet the gate/reportable/reason interpretation it does provide is genuinely necessary context for a tool whose output can be non-reportable. Against that, seven undocumented parameters and an unresolved 'REFUSED' status leave an agent guessing about 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% across 8 parameters, and the description documents only 'run' (run_id/activity_id/Garmin file id, empty = latest). The remaining seven — last_n, cluster, end_date, run_type, direction, segment_id, start_date — are left entirely to a bare schema, so an agent cannot infer filtering or scope semantics from the text.

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 names a specific quantity (the time in a run at which cardiac drift begins) but buries it under internal section references (§6.9, §6.7, §6.3) that mean nothing to an agent without the source documentation. It never differentiates itself from drift-flavored siblings like matched_terrain_drift or segment_effort_drift, and the phrase 'currently REFUSED' is ambiguous about whether the tool answers at all or just marks results non-reportable.

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?

It gives real interpretive guidance — do not quote the curve as a finding while gate.reportable is false, and read gate.reason to learn what would change that. But it says nothing about when to reach for this tool versus the other drift siblings, and the 'Empty means the latest run' note only covers one parameter. Usage is implied rather than routed.

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