claude/skills/lookup/SKILL.md
Code intelligence router — decides which tool to use when you need to understand a symbol, type, API, or code relationship. Language-agnostic: works for Rust, Python, TypeScript, Go, Ruby, Java, and any language with LSP support. Prevents wasteful brute-force lookup anti-patterns: cargo doc + grep, grepping dependency caches (node_modules, site-packages, .cargo/registry, go/pkg/mod, .m2), go doc + grep, python help() + grep, and multi-step find chains. Use this skill BEFORE reaching for bash when the question is "what does X do?", "what's the signature of Y?", "who calls Z?", or "how do I use this API?". Routes to the right tool: LSP for types and cross-refs, ast-grep for structural patterns, Context7 for external docs, gh CLI for GitHub code search. If you catch yourself about to grep a dependency cache or generate docs just to search them — stop and use this instead.
npx skillsauth add paulnsorensen/dotfiles lookupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Code intelligence routing. Ask the right tool, not bash.
When you need to understand a symbol, type, or API, your instinct might be to
grep for it, run cargo doc, or read files in node_modules. Don't. You have
four purpose-built tools that are faster, cheaper, and don't pollute your context.
This skill tells you which one to use.
Ask yourself two questions:
Then follow the table:
| What I need | Local code | External dependency |
|---|---|---|
| Type/signature of a symbol | LSP hover | Context7 or gh gh search code |
| Go to definition | LSP goToDefinition | Context7 query-docs |
| Who calls this function? | LSP findReferences | gh gh search code |
| Who implements this trait/interface? | cheese-flow:cheez-search (callers/structural) | gh gh search code |
| All usages of a type | LSP findReferences | gh gh search code |
| Method list on a struct/class | LSP documentSymbol | Context7 query-docs |
| What does this function do? | LSP hover + Read the body | Context7 or WebFetch raw source |
| Find structural patterns | cheese-flow:cheez-search (tilth tree-sitter) | N/A — use gh search code text search |
| Error type / return type | LSP hover | Context7 query-docs |
| Find files by name/pattern | cheese-flow:cheez-search (glob: filter) | N/A |
| Find files by content | cheese-flow:cheez-search (kind=content) | gh gh search code |
| List directory contents | ls via scout (eza tree view + git status) | gh gh repo view owner/repo |
LSP (built-in tool, zero setup):
hover — type signature, docs, return typegoToDefinition — jump to where it's definedfindReferences — all usages in the projectdocumentSymbol — list all symbols in a filecheese-flow:cheez-search (tilth MCP, AST + text):
kind=symbol (default) — find definitions and usages by namekind=content — string/comment search across the codebasekind=callers — find who invokes a functionglob:*.ts filter — restrict to file patternsFile finding (cheez-search):
cheez-search with a glob: filter to find files by name/extensionls via scout (eza)find — blocked by hook. Use cheez-search instead.Context7 (MCP, for external libraries):
resolve-library-id → query-docs — version-specific docs + examplesgh CLI (GitHub code search):
gh search code '<query>' --language <lang> — find implementations across public reposgh repo view owner/repo — inspect repo README and structureThese are the brute-force patterns this skill exists to prevent:
# WRONG — Rust
cargo doc -p some-crate --no-deps 2>&1; grep -r "fn method" target/doc/
# WRONG — Go
go doc some/package | grep "func Method"
# WRONG — Python
python3 -c "help(some_module)" 2>&1 | grep "method_name"
pydoc some.module | grep "def method"
# WRONG — Ruby
ri SomeClass | grep "method_name"
Instead: Context7 query-docs for the library, or gh search code to search GitHub.
# WRONG — Rust
grep -r "fn env" ~/.cargo/registry/src/*/portable-pty-*/
# WRONG — JavaScript/TypeScript
grep -r "interface Props" node_modules/react/
# WRONG — Python
grep -r "def validate" .venv/lib/python3.*/site-packages/pydantic/
# WRONG — Go
grep -r "func New" ~/go/pkg/mod/github.com/some/pkg@*/
# WRONG — Java
grep -r "public void" ~/.m2/repository/org/some/artifact/
# WRONG — Ruby
grep -r "def method" vendor/bundle/ruby/*/gems/some-gem-*/
Instead: LSP hover on the symbol where you use it, or Context7 for the docs.
# WRONG — O(n) scanning for what's an O(1) lookup
find . -name "*.rs" | xargs grep "trait CommandBuilder"
grep -rn "def validate" --include="*.py" | grep -v test
find . -path "*/some_crate*" -exec grep "fn method" {} \;
Instead: LSP findReferences or cheese-flow:cheez-search for symbol/structural lookup.
# WRONG — compiling just to read error messages for type info
cargo check 2>&1 | grep "expected"
tsc --noEmit 2>&1 | grep "Type '"
mypy src/ 2>&1 | grep "has type"
Instead: LSP hover on the expression — it shows the inferred type.
# WRONG — loading 500 lines to find one function
cat src/lib.rs | grep -A 20 "fn new"
Instead: LSP documentSymbol to list all symbols, then hover on the one you need.
Or LSP goToDefinition on the symbol. Or cheese-flow:cheez-read for hash-anchored
section reads.
Not every project has all tools active:
| Situation | Fallback |
|---|---|
| No LSP running | cheese-flow:cheez-search (tilth tree-sitter) |
| Context7 doesn't have the library | gh search code → WebFetch raw source |
| External crate, no MCP available | WebSearch for official docs (via /fetch skill) |
| tilth MCP unavailable | Grep (last resort) |
The hierarchy is: LSP > cheez-search > Grep. Only fall to the next level
when the better tool genuinely isn't available — not because it's easier to type grep.
Unlike /fetch, this skill runs inline — not in a subagent. Two reasons:
The tools this skill routes TO may fork on their own (e.g., /fetch forks for
Context7/gh lookups). That's fine — the routing decision stays inline,
the heavy fetching forks as needed.
hover answers 80% of type questions in one callhover or goToDefinition may fail, retry after a momenttools
Reconstruct what a past coding-agent session was doing so you can resume it — goal, files touched, last verified state, and the next step — by querying the session logs. Use when the user says "what was I working on", "recover that session", "reconstruct where I left off", "resume my last session", "what did that session change", "rebuild context from logs", or invokes /work-recovery. Report-only — it never scores or judges. Do NOT use for usage scoring (that is /skill-improver, /tool-efficiency, /prompt-analytics) or one-off interactive log queries (that is /session-analytics).
development
Curate this repo's hallouminate wiki (.hallouminate/wiki/, the repo:dotfiles:wiki corpus) — add or update architecture pages, per-harness docs, and gotchas. Use when the user says "update the wiki", "document this in the wiki", "refresh the harness docs", "add a wiki page", "curate the wiki", "the wiki is stale", or invokes /wiki-curator. Also use at session end to write back a non-obvious decision or gotcha worth preserving. Grounds the existing wiki first, follows one-topic-per-file conventions, verifies every external doc URL before writing, and reindexes. Do NOT use for general code search (that is cheez-search) or for editing AGENTS.md command reference.
tools
Audit how a tool, command, or MCP server is actually used across coding-agent sessions and produce calibrated recommendations — tool-vs-task fit, error forensics, fix recommendations, permission friction, MCP health, and token economics. Use when the user says "tool efficiency", "am I using X efficiently", "audit tool usage", "why does X keep failing", "how do I fix this error", "what should I change", "permission friction", "is this MCP worth it", "tool error rate", "fix recommendations", or invokes /tool-efficiency. Do NOT use for auditing a skill or agent definition (that is /skill-improver) or for one-off interactive log queries (that is /session-analytics).
tools
Analyze how prompts and skill routing behave across coding-agent sessions and produce calibrated recommendations — prompt-pattern analysis, routing accuracy, and knowledge gaps. Use when the user says "analyze my prompts", "prompt patterns", "is routing working", "which skill should have fired", "knowledge gaps", "what do I keep asking", or invokes /prompt-analytics. Do NOT use for auditing a single skill/agent definition (that is /skill-improver), tool/MCP efficiency (that is /tool-efficiency), or one-off interactive log queries (that is /session-analytics).