一键导入
reachability
Multi-hop graph navigation — shortest paths, reachable sets, k-hop neighborhoods, cross-references.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Multi-hop graph navigation — shortest paths, reachable sets, k-hop neighborhoods, cross-references.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Build, reload, and maintain the Mycelium symbol index — the prerequisite for every other Skill.
One-shot architecture tracing — get entry points, call graph neighborhood, and source snippets for any natural-language question about how code works.
Look up symbols, kinds, ancestors, descendants, siblings — the foundation tools any agent reaches for first.
Navigate the call graph — callers, callees, call trees, entry points, dead and isolated symbols.
Navigate the import graph — direct imports, import trees, importers (who pulls this in).
Rank symbols by importance — PageRank, betweenness, fan-in/out, hub detection, top-file diagnostics.
| name | reachability |
| description | Multi-hop graph navigation — shortest paths, reachable sets, k-hop neighborhoods, cross-references. |
| allowed-tools | ["mcp__mycelium__get_reachable","mcp__mycelium__get_reachable_to","mcp__mycelium__get_k_hop_neighbors","mcp__mycelium__get_two_hop_neighbors","mcp__mycelium__get_shortest_path","mcp__mycelium__get_symbol_neighborhood","mcp__mycelium__get_cross_refs","mcp__mycelium__get_outgoing_refs","mcp__mycelium__get_dependency_depth","mcp__mycelium__get_reachable_set","mcp__mycelium__get_reaches_into","mcp__mycelium__get_singly_referenced","mcp__mycelium__get_mutual_reachability","mcp__mycelium__get_common_reachable"] |
| category | analysis |
| icon | 🔗 |
| marketplace_examples | [{"query":"Can handle_login reach find_by_email?","tool":"mcp__mycelium__get_shortest_path"},{"query":"What is reachable from the main entrypoint?","tool":"mcp__mycelium__get_reachable"},{"query":"What symbols are within 2 hops of AuthService?","tool":"mcp__mycelium__get_two_hop_neighbors"}] |
reachability — multi-hop navigation across edge kindsThis Skill is the multi-hop layer. call-graph and import-graph cover direct relationships and trees on a single edge kind; this Skill answers the harder questions: shortest paths between two symbols, all symbols reachable from a starting set, k-hop neighborhoods.
Includes get_shortest_path — one of the top-3 most useful tools per the v0.1.1 external evaluation.
Use when:
Do NOT use when:
call-graph or import-graph (cheaper).centrality.| Developer question | Tool |
|---|---|
| "Can handle_login reach find_by_email?" | mcp__mycelium__get_shortest_path |
| "What is reachable from the main module entry point?" | mcp__mycelium__get_reachable |
| "Find the shortest dependency path from A to B" | mcp__mycelium__get_shortest_path |
| "What symbols are within 2 hops of AuthService?" | mcp__mycelium__get_two_hop_neighbors |
| "Find all cross-module references to UserRepository" | mcp__mycelium__get_cross_refs |
get_shortest_path — concrete call/ref chain between two symbols ⭐The single highest-leverage tool in this Skill. Returns the actual symbol-to-symbol chain, not just a reachability flag.
mcp__mycelium__get_shortest_path({
"from": "src/api/handler.rs>handle_login",
"to": "src/db.rs>users>find_by_email",
"edge_kind": "calls"
})
→ { "path": ["src/api/handler.rs>handle_login", "src/auth/session.rs>AuthService>login", "src/db.rs>users>find_by_email"], "length": 3 }
Returns { "path": null } if no path exists.
get_reachable — forward reachable set"If I start here and follow edge_kind edges, where can I get?"
mcp__mycelium__get_reachable({
"path": "src/main.rs>main",
"edge_kind": "calls",
"max_depth": 10
})
get_reachable_to — backward reachable set"Which symbols can reach this one by following edge_kind edges?" Complement of get_reachable.
get_k_hop_neighbors / get_two_hop_neighborsBounded-depth neighborhoods. get_two_hop_neighbors is a fast path for k=2. Both return symbols at exactly k hops away (not within k).
get_symbol_neighborhood — a dense local viewReturns the symbol's direct neighbors across all four edge kinds (calls, imports, extends, implements), in/out, with counts. Useful for "give me a one-call snapshot of this symbol's surroundings".
get_cross_refs — all incoming references (any edge kind)mcp__mycelium__get_cross_refs({ "path": "src/auth/session.rs>AuthService>login" })
→ { "callers": [...], "importers": [...], "subclasses": [...], "implementors": [...] }
Tied for top-10 most useful. One call replaces four separate get_<edge>_to calls.
get_outgoing_refs — all outgoing references (any edge kind)Symmetric counterpart of get_cross_refs.
get_dependency_depth — distance from leavesReturns the longest path from the given symbol down to a leaf (no outgoing edge_kind edges). Useful as a complexity proxy.
get_reachable_set — reach from a multi-symbol seed"What's collectively reachable from any of these starting points" — accepts up to 20 paths, deduplicates the union.
get_reaches_into — which paths reach into the given subtreeCounterpart of get_reachable_set but path-prefix-scoped: "which symbols reach into anything under src/auth/?"
get_singly_referenced — symbols with exactly one incoming edgeUseful for identifying tightly-coupled callers — symbols whose sole consumer is one specific other symbol.
get_shortest_path with the appropriate edge_kind.get_reachable with depth bound.get_cross_refs (incoming) + get_outgoing_refs (outgoing).get_symbol_neighborhood.mycelium get-shortest-path --from "A" --to "B" --edge-kind calls --format=json
mycelium get-reachable "src/main.rs>main" --edge-kind calls --max-depth 10
mycelium get-cross-refs "src/auth/session.rs>AuthService>login" --format=json
Per RFC-0090. tests/parity.test.json has one case per capability against a small fixture graph that exercises all four edge kinds.
call-graph, import-graph, inheritance (planned) — for single-edge-kind queries.centrality (planned) — when the user wants importance scores, not connectivity.batch-ops (planned) — for batch_reachable_from / batch_reachable_to.