用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/tomes --skill tsa-graph命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
> Use when this capability is needed.
Use when writing kernel, account, or note MASM code that reads from or writes to the advice provider (advice stack / advice map) — validate advice data.
Use when writing a Rust test that exercises a failure path or a MASM test that expects a `panic` / `assert` — assert on the specific expected error variant or error code.
基于 SOC 职业分类
正在显示 SKILL.md
| name | tsa-graph |
| description | | Use when this capability is needed. |
This skill exposes the graph-focused tools that answer "who is connected to what" — the questions agents waste the most tokens on when they fall back to grep.
Pick the right tool by question shape:
| Question | Tool |
|---|---|
| Need search + snippets + callers/callees together? | search action=chain |
| What does FUNCTION call? | nav action=callees |
| What calls FUNCTION? | nav action=callers |
| Where is SYMBOL defined? | search action=symbol |
| What references SYMBOL anywhere? | nav action=xref |
| Path from CALLER to CALLEE? | nav action=call_path |
| Resolve "Path" in file X (project or stdlib?) | nav action=resolve |
| Need architecture diagram output? | viz action=uml |
Don't use when:
structure action=readPick the matching tool, call once. Read the response. Done.
Example: "what calls score_file?"
nav action=callers function_name="score_file" language="python" limit=20
Returns: callers: [{name, file, line, callee_resolution, callee_resolved_file}, ...].
The callee_resolution field tells you local / project / stdlib /
unknown so you can filter out noise.
When a question needs several graph hops plus source snippets, prefer the chain surface:
search action=chain query="search('score_file').explore(max_files=3).callers(depth=1).callees(depth=1)"
Fan out 3 in parallel:
nav action=callers (who depends on this — blast radius)nav action=callees (what this depends on — what may need updating)search action=symbol with the symbol name (find aliases / shadows)Then if you need a specific reachability path:
nav action=call_path from_function="X" to_function="Y" max_depth=10
Each callee entry now carries:
name: "Path"
file: ".../health_scorer.py"
line: 366
callee_resolution: stdlib | local | project | third_party | dynamic | unknown
callee_resolved_file: "" | "<file the callee lives in>"
callee_symbol_id: null | <int FK to ast_symbol_rows>
Filter rules of thumb:
resolution=stdlib → ignore for change-impact (won't be in this repo)resolution=local|project with non-null callee_symbol_id → trustworthy edgeresolution=unknown → may need re-index: uv run tree-sitter-analyzer --ast-cache --ast-cache-mode index --ast-cache-forceuv run tree-sitter-analyzer --callees <FUNC> --output-format toon
uv run tree-sitter-analyzer --callers <FUNC> --output-format toon
uv run tree-sitter-analyzer --symbol-search <NAME> --output-format toon
uv run tree-sitter-analyzer --codegraph-xref <SYMBOL> --output-format toon
uv run tree-sitter-analyzer --call-path --call-path-source X --call-path-target Y
uv run tree-sitter-analyzer --uml class --output-format toon
grep -rn "def X" tree_sitter_analyzer/ — use search action=symbol (10x faster, precise)nav action=call_pathcallee_resolution — unknown entries are noise, filter themfunction: <queried name>
callee_count | caller_count: <int>
callees | callers: [
{name, file, line, language, callee_resolution, callee_resolved_file}
]
verdict: INFO # graph queries are observational, not actionable
Source: aimasteracc/tree-sitter-analyzer — distributed by TomeVault.