.skills/code-context/SKILL.md
Code context operations for symbol lookup, search, grep, call graph, and blast radius analysis. Use this skill before modifying code to understand structure, dependencies, and impact. Provides indexed, structural code intelligence that is faster and more precise than raw text search.
npx skillsauth add swissarmyhammer/swissarmyhammer code-contextInstall 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.
Structural code intelligence for AI coding agents. Provides indexed symbol lookup, call graph traversal, blast radius analysis, semantic search, and AST queries. Backed by tree-sitter parsing and optional live LSP integration.
get blastradius to understand what depends on the
file or symbol you are changing. Use get callgraph (inbound) to see who calls a
function before renaming or changing its signature.get symbol to jump to definitions, list symbols
to get a file overview, search symbol for fuzzy name searches.grep code for regex searches across indexed
chunks with language and file filters.search code for semantic similarity search when
you do not know the exact text.get status to verify indexing progress, lsp status to check language server availability, detect projects to discover
project types and build commands.Look up symbol locations and source text with multi-tier fuzzy matching.
{"op": "get symbol", "query": "MyStruct::new", "max_results": 5}
Use when you know the symbol name and want to jump to its definition with source
context. Supports qualified paths like module::Type::method.
Fuzzy search across all indexed symbols with optional kind filter.
{"op": "search symbol", "query": "handler", "kind": "function", "max_results": 10}
Use when you want to discover symbols by partial name. Filter by kind to narrow results: function, method, struct, class, interface, module, etc.
List all symbols in a specific file, sorted by start line.
{"op": "list symbols", "file_path": "src/main.rs"}
Use before reading a file to get a structural overview. This saves context by
letting you target specific symbols with get symbol instead of reading entire
files.
Regex search across stored code chunks with language and file filters.
{"op": "grep code", "pattern": "unsafe\\s*\\{", "language": ["rs"], "max_results": 20}
Use for exact pattern matching. Supports full regex syntax. Filter by language extensions or specific file paths to narrow scope.
Semantic similarity search across code chunks using embeddings.
{"op": "search code", "query": "authentication handler", "top_k": 5}
Use when you are looking for code by meaning rather than exact text. "authentication handler" will match login processing code even if the word "authentication" does not appear in the source.
Traverse call graph from a starting symbol.
{"op": "get callgraph", "symbol": "process_request", "direction": "inbound", "max_depth": 2}
Directions:
Analyze blast radius of changes to a file or symbol.
{"op": "get blastradius", "file_path": "src/server.rs", "max_hops": 3}
Returns the transitive set of files and symbols that could be affected by a change. Always run this before making changes to understand the full impact.
Optionally narrow to a specific symbol within the file:
{"op": "get blastradius", "file_path": "src/server.rs", "symbol": "handle_request", "max_hops": 2}
Find code in a file that is duplicated elsewhere in the codebase.
{"op": "find duplicates", "file_path": "src/handlers.rs", "min_similarity": 0.85}
Use when refactoring to identify copy-pasted code that should be consolidated.
Execute tree-sitter S-expression queries against parsed ASTs for structural search.
{"op": "query ast", "query": "(function_item name: (identifier) @name)", "language": "rust"}
Use for structural queries that regex cannot express, such as finding all functions with a specific parameter pattern or all structs implementing a trait.
Health report with file counts, indexing progress, chunk and edge counts.
{"op": "get status"}
Run this first if unsure whether indexing is complete. Shows how many files are indexed, pending, and total chunk/edge counts.
Show which languages are detected in the index, their LSP servers, and install status.
{"op": "lsp status"}
Use when live LSP operations return degraded results. If a server is missing, follow the install hint to fix it.
Detect project types in the workspace and return language-specific guidelines.
{"op": "detect projects"}
Returns project types, build commands, test commands, and coding guidelines. Call early in a session to understand the project before making changes.
list symbols on the target file to get an overviewget symbol to read the specific function or struct you plan to changeget blastradius on the file to understand what could breakget callgraph (inbound) on the symbol to see all callersdetect projects to learn the project type and conventionsget status to verify the index is populatedsearch symbol with broad queries to discover key typesget callgraph (outbound) on entry points to trace execution flowlist symbols on files of interest before reading themgrep code to find the error message or pattern in sourceget symbol to jump to the relevant functionget callgraph (inbound) to trace how execution reaches the bugget blastradius to verify your fix will not break other coderesearch
Create a single, well-researched kanban task. Use when the user wants to add a task, track an idea, or capture work without entering full plan mode.
testing
Drive kanban tasks from ready to done by looping implement → test → review until each task is clean. Supports single-task mode (one task id) and scoped-batch mode (all ready tasks in a tag/project/filter). Uses ralph to prevent stopping between iterations.
tools
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
testing
Run tests and analyze results. Use when the user wants to run the test suite or test specific functionality. Test runs produce verbose output — automatically delegates to a tester subagent.