Quién llama a esto y qué se rompe si lo cambio
El grafo de llamadas alrededor de un símbolo, y el radio de impacto de un diff — sin leer un solo archivo entero.
Prompt#
¿Quién llama a ResolveAgentCmd, y qué se rompe si lo cambio?
Qué hace el Chair#
Consulta el índice de símbolos del propio workspace: primero los llamadores, después el alcance de los archivos que vas a tocar.
Llamadas MCP#
trace_path({ "symbol": "ResolveAgentCmd", "direction": "callers", "depth": 2 })
Después, el radio de impacto del cambio:
impact({ "paths": ["client/internal/config/config.go"] })
O contra un rango de la rama en vez del árbol de trabajo:
impact({ "git_range": "main...HEAD" })
Y lee solo el cuerpo que de verdad necesitas:
code_snippet({ "symbol": "ResolveAgentCmd", "max_lines": 120 })
Equivalentes en CLI: orch symbols trace <name>, orch symbols impact,
orch symbols snippet <name>, orch symbols arch.
Respuesta esperada#
trace_path devuelve {root, nodes, edges}, con un confidence por arista. impact
devuelve {paths, touched, callers, edges} — touched: [] cuando el diff no alcanza
nada indexado. architecture devuelve {dirs, edges}, un mapa por directorio que vale
leer antes de decidir dónde va un cambio.
Trampas#
- Lee el confidence.
1.0significa que el resolutor casó un import o el archivo mismo;0.7casó un tipo receptor;0.4es el tokenizador genérico casando unName(pelado contra símbolos del mismo lenguaje. Una arista0.4es una pista, no un hecho. - Lo no indexado da error, no un resultado vacío. Los lenguajes para los que orch no tiene parser no aportan ninguna arista.
- El grafo solo ve símbolos con firma. Constantes, nombres de tabla, flags de
esquema, códigos de feature y todo lo que vive dentro de una cadena son invisibles
para
trace_path— para eso, grep. Es el único caso en que leer archivos sigue ganando. impactsin argumentos usa tugit diff --name-onlydel árbol de trabajo. Si pasaspaths,git_rangese ignora.depthestá topado en 5 y por defecto es 2. La profundidad es donde estas consultas se ponen caras; ampliála una vez, no por costumbre.- Aquí el código sin etiquetar sí se ve. A diferencia de
search_shared_symbols, que responde solo con símbolosorch:export, las herramientas de grafo también leen definiciones locales — así que un helper privado que nadie exportó igual aparece como llamador. - Pasa
sessionen cualquiera de estas cuando quieras que el ahorro de bytes se contabilice bajo tu asiento enusage_status.