Skip to main content
Glama

stale

Find nodes untouched since a given ISO date, optionally filtered by type or status, to track outdated project knowledge.

Instructions

Nodes untouched since before_iso. types/statuses omitted (None) use the default non-terminal question/decision/milestone set; an explicit [] matches nothing (not reinterpreted as 'omitted').

Input Schema

NameRequiredDescriptionDefault
typesNo
statusesNo
before_isoYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

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 disclose non-obvious defaulting behavior (omitted types/statuses fall back to the non-terminal set; explicit [] matches nothing). However, it never confirms the read-only, non-mutating nature of the operation, nor any limits on result size. Useful behavioral detail, but incomplete coverage 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.

Conciseness4/5

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

Two sentences, front-loaded with the core predicate, then the parameter caveat. The parenthetical '(None)' is slightly awkward notation but costs little. Nothing extraneous; the density is appropriate for a small filtering 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?

An output schema exists, so the return shape needn't be described. Against three parameters at 0% schema coverage, the description handles the defaulting semantics but leaves the statuses value space and the timestamp format undocumented, which is a noticeable gap for a tool whose whole purpose is a precise filter. Adequate but not complete.

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%, so the description must compensate, and it does partially: it explains the None-vs-empty-array distinction for types/statuses, which is a real trap an agent could fall into. It does not, however, enumerate the valid statuses values (the schema leaves them as untyped strings) or state the expected format of before_iso, leaving two gaps the schema does not fill.

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 the resource and the filter predicate precisely: 'Nodes untouched since before_iso', which pins down exactly what this tool returns. It is a noun phrase rather than a verb phrase, but the semantics are unambiguous and distinguishable from siblings like orphans or dangling_edges, which use different predicates. No explicit sibling cross-reference, so not 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 Guidelines2/5

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

There is no statement of when to reach for this tool versus orphans, decisions_without_rationale, or open_questions, all of which are sibling analysis tools that could plausibly overlap. The only guidance offered concerns parameter defaulting behavior, not tool selection. An agent gets no routing help from the text.

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