Skip to main content
Glama

List referenced artifacts

list_references

List and resolve cross-references found in a source specification document, returning each referenced document's type, ID, title, and file path with paging support.

Instructions

Cross-references of one source document, resolved and paged. type is the source document's domain (one of adr, req, uc, tsk, qa, prb, gol, rsk, dec, sop, feat, vcr, sysrs) and id the source's own identifier. The tool scans the source's frontmatter-stripped body for reference tags (the shared reference-tag vocabulary in general.tools._references: the UUID tags GOL/PRB/QA/UC/REQ/RSK/DEC/ADR/VCR/SYSRS, each carrying a canonical uuid id, plus FEAT, carrying the full feat-NNN-slug id or the bare feat-NNN number; case-insensitive tag, space/tab/dash separator, anywhere in a line), dedupes repeated occurrences (first-occurrence order preserved), and resolves each unique reference to the referenced document in its own target domain. Returns a PagedResult of one ReferenceRow per unique reference: type, id, title (the referenced document's H1), and path (the referenced document's resolved absolute file path). A reference that cannot be resolved on disk is a row with null title/path and the target domain's not-found message in error -- it never raises. max_results/offset control paging (default page size 25, capped at 100); out-of-range values are clamped, not errored. An invalid id (path-injection attempt or wrong format for type) is a ValueError raised before any file access; a missing source document is the source domain's own XNotFoundError.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
typeYes
offsetNo
max_resultsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
totalYes
offsetYes
resultsYes
truncatedYes
error_countNo
max_resultsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.36.0

TDQS

A4.2/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden and does so exceptionally: it discloses that unresolvable references return null title/path plus an error message rather than raising, that paging values are clamped, that an invalid id raises ValueError before any file access, and that a missing source raises the domain's XNotFoundError. This is exactly the behavioral context an agent needs.

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?

Purpose is front-loaded in the first sentence, but the body is one dense run-on paragraph loaded with internal implementation detail ('frontmatter-stripped body', the internal module path general.tools._references, the full tag vocabulary) that does not help the agent decide or call. Some of that earns its place; the module reference and tag internals do not.

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?

An output schema exists, yet the description still sketches the returned ReferenceRow shape, and it fully covers inputs, resolution semantics, paging, and both failure modes. Nothing an agent needs to invoke this correctly is missing.

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

Parameters5/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: it defines `type` as the source document's domain (enumerating all values), `id` as the source's own identifier, and specifies that `max_results`/`offset` page results with a default of 25 and a cap of 100, with out-of-range values clamped. Every parameter gains meaning beyond the bare types in the schema.

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 opening clause states a specific verb+resource pair — cross-references of one source document, resolved and paged — which an agent can act on. It never names a sibling (e.g., find_related or get_reference_diagram) to differentiate itself from the other relationship-oriented tools, so it is clear but not sibling-disambiguated.

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?

Usage is implied by 'cross-references of one source document,' but there is no explicit when-to-use, when-not, or alternative selection guidance against sibling tools like find_related, find_similar_text, or get_reference_diagram. The heavy detail is about mechanics, not routing.

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