trace
[LLM-mediated] This tool returns a routing envelope, not computed results. For user-facing tracing, invoke the /upg-trace skill instead of calling this tool directly. Trace approach: path of arrival to "walk a meaningful path through existing graph". Returns the Trace record + invocation params in the family-resemblance envelope. The LLM uses `anchor` + `path` to compose `query()` calls and emits `{ trail: [{ depth, entity_id, edge_type_in }], reached: entity_id[] }`. `path` is type-shorthand: `["persona","job","feature"]` walks persona→job→feature using the canonical edge per pair (via `resolve_edge_for_pair`). Optional `edges_override` selects non-canonical edges per hop; `null` per element means "use canonical".
Arguments
anchorstringrequiredRequired. entity_id where the traversal starts.
patharrayrequiredRequired. UPGEntityType[] type-shorthand path. Each step walks via the canonical edge for the source→target pair.
edges_overridearrayoptionalOptional. Per-hop edge override array. Length must match path length; element null means "use canonical edge for this pair".
Returns
JSON envelope: { approach_id, scope, generated_at, approach, params, trail, reached, error?, halted_at_depth?, execution_mode: "execution_v0_4_0" }
Examples
Live call against the Notion example graph.
Input
{
"anchor": "ec3d5479-4947-4bd9-9e77-b5ee01beb851",
"path": [
"opportunity_drives_solution"
]
}Output
{
"approach_id": "trace",
"scope": "ec3d5479-4947-4bd9-9e77-b5ee01beb851",
"generated_at": "2026-05-29T20:13:19.988Z",
"approach": {
"id": "trace",
"label": "Trace",
"description": "The path of arrival to \"walk a meaningful path through existing graph\". Trace engages an anchor entity and follows a path expressed as a UPGEntityType[] shorthand. Example: `[\"persona\", \"job\", \"feature\"]` walks persona→job→feature using the canonical edge for each pair (resolved via `resolve_edge_for_pair`). An optional `edges_override` array selects non-canonical edges per hop when a pair has multiple resolutions. Cartographic sense: you are tracing a route across charted terrain; anchor is the departure, path is the heading sequence, the canonical edges are the roads. No DSL invented; the shorthand IS the path expression.",
"question_answered": "walk a meaningful path through existing graph",
"signature_hint": "({ anchor: entity_id, path: UPGEntityType[], edges_override?: (string | null)[] }) → { trail: [{ depth, entity_id, edge_type_in }], reached: entity_id[] }",
"framework_id_examples": [
"opportunity-solution-tree",
"strategic-cascade",
"metrics-tree",
"user-journey-map",
"impact-map",
"dependency-map"
]
},
"params": {
"anchor": "ec3d5479-4947-4bd9-9e77-b5ee01beb851",
"path": [
… (truncated)