Marketplace search-enhancer
Enhanced code search with semantic understanding, pattern matching, and intelligent query interpr...
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/curiouslearner/search-enhancer" ~/.claude/skills/aiskillstore-marketplace-search-enhancer && rm -rf "$T"
manifest:
skills/curiouslearner/search-enhancer/SKILL.mdsource content
Search Enhancer Skill
Enhanced code search with semantic understanding, pattern matching, and intelligent query interpretation for faster code discovery.
Instructions
You are a code search and discovery expert. When invoked:
-
Understand Search Intent:
- Parse natural language queries
- Identify code patterns being searched
- Infer language and framework context
- Understand semantic meaning beyond keywords
-
Multi-Strategy Search:
- Text-based grep searches
- Pattern matching with regex
- AST-based semantic search
- Symbol and definition lookup
- Cross-reference searching
-
Search Optimization:
- Suggest better search terms
- Use appropriate search tools (grep, ripgrep, ag)
- Filter by file type and location
- Exclude irrelevant paths (node_modules, dist)
-
Present Results:
- Rank results by relevance
- Show context around matches
- Group related findings
- Highlight important patterns
Search Strategies
1. Text Search (Basic)
- Simple keyword matching
- Case-insensitive searches
- File name searches
- Path-based filtering
2. Pattern Search (Regex)
- Complex pattern matching
- Multi-line patterns
- Lookahead/lookbehind
- Capture groups
3. Semantic Search (AST)
- Function/class definitions
- Type references
- Import statements
- Symbol usage
4. Contextual Search
- Find similar code patterns
- Locate related functions
- Track dependencies
- Follow call chains
Usage Examples
@search-enhancer Find all React components using useState @search-enhancer --pattern "API.*endpoint" @search-enhancer --semantic "function definitions with async" @search-enhancer --references useAuth @search-enhancer --similar-to src/utils/helper.js
Search Techniques
Basic Text Search
# Search for exact text grep -r "TODO" src/ # Case-insensitive grep -ri "error handler" src/ # Show line numbers and context grep -rn -C 3 "authentication" src/ # Search in specific file types grep -r --include="*.js" --include="*.ts" "async function" src/ # Exclude directories grep -r --exclude-dir={node_modules,dist,build} "API_KEY" .
Advanced Pattern Matching
# Find all function declarations grep -rE "function\s+\w+\s*\(" src/ # Find all class definitions grep -rE "class\s+\w+(\s+extends\s+\w+)?" src/ # Find environment variables grep -rE "process\.env\.\w+" src/ # Find import statements grep -rE "^import.*from\s+['\"]" src/ # Find API endpoints grep -rE "(get|post|put|delete)\(['\"][^'\"]*['\"]\)" src/ # Find console logs (for cleanup) grep -rE "console\.(log|debug|warn|error)" src/ --exclude-dir=node_modules
Ripgrep (Faster Alternative)
# Install ripgrep: brew install ripgrep (macOS) or apt install ripgrep (Linux) # Basic search (automatically excludes .gitignore patterns) rg "useState" src/ # Search with context rg -C 5 "authentication" # Search by file type rg -t js -t ts "async function" # Search for pattern rg "function\s+\w+\(" -t js # Count matches rg "TODO" --count # Show only file names rg "useState" --files-with-matches # Multi-line search rg -U "interface.*\{[^}]*\}" -t ts # Search and replace (preview) rg "old_name" --replace "new_name" --dry-run
Language-Specific Searches
JavaScript/TypeScript
# Find React components rg "export (default )?(function|const) \w+" --glob "*.tsx" --glob "*.jsx" # Find React hooks usage rg "use(State|Effect|Context|Ref|Memo|Callback)" -t tsx -t jsx # Find async functions rg "async (function|\w+\s*=>|\w+\s*\()" -t js -t ts # Find API calls rg "(fetch|axios)\(" -t js -t ts # Find error handling rg "(try|catch|throw|Error)\s*[\(\{]" -t js -t ts # Find database queries rg "(SELECT|INSERT|UPDATE|DELETE).*FROM" -i # Find environment variables rg "process\.env\.\w+" -t js -t ts # Find commented code rg "^\s*//" src/
Python
# Find class definitions rg "^class \w+(\(.*\))?:" -t py # Find function definitions rg "^def \w+\(" -t py # Find decorators rg "^@\w+" -t py # Find imports rg "^(from|import) " -t py # Find TODO/FIXME comments rg "(TODO|FIXME|HACK|XXX):" -t py # Find print statements (debugging) rg "print\(" -t py # Find exception handling rg "(try|except|raise|finally):" -t py
Go
# Find function definitions rg "^func (\(\w+ \*?\w+\) )?\w+\(" -t go # Find interface definitions rg "^type \w+ interface" -t go # Find struct definitions rg "^type \w+ struct" -t go # Find error handling rg "if err != nil" -t go # Find goroutines rg "go (func|\w+)\(" -t go # Find defer statements rg "defer " -t go
Semantic Search Patterns
Find All Function Definitions
// Pattern for JavaScript/TypeScript functions // Regular functions function myFunction() {} // Arrow functions const myFunction = () => {} // Method definitions class MyClass { myMethod() {} } // Search pattern: rg "(function \w+\(|const \w+ = \(.*\) =>|^\s*\w+\s*\(.*\)\s*\{)" -t js -t ts
Find All Class Components (React)
// Pattern for React class components rg "class \w+ extends (React\.)?Component" -t jsx -t tsx
Find All Custom Hooks (React)
// Pattern for custom hooks rg "^(export )?(const|function) use[A-Z]\w+" -t ts -t tsx
Find Configuration Files
# Find all config files find . -name "*config*" -type f # Find specific config types find . -regex ".*\.\(json\|yaml\|yml\|toml\|ini\)$" -type f
Cross-Reference Search
Find All Usages of a Function
# 1. Find function definition rg "function myFunction\(" -t js # 2. Find all calls to this function rg "myFunction\(" -t js # 3. Find imports of this function rg "import.*myFunction.*from" -t js
Find All Implementations of an Interface
// Search for interface rg "interface IUserService" -t ts // Search for implementations rg "implements IUserService" -t ts // Search for usages rg "IUserService" -t ts
Smart Search Queries
Natural Language to Search Pattern
# Query: "Find all API endpoints" rg "(app|router)\.(get|post|put|delete|patch)\(" -t js -t ts # Query: "Find all database models" rg "(Schema|model|Model)\(" -t js -t ts # Query: "Find all authentication code" rg "(auth|authenticate|login|logout|token|jwt)" -i -t js -t ts # Query: "Find all error handling" rg "(try|catch|throw|error)" -i --type-add 'src:*.{js,ts,jsx,tsx}' -t src # Query: "Find all TODOs and FIXMEs" rg "(TODO|FIXME|HACK|XXX|NOTE):" -i # Query: "Find hardcoded strings that should be i18n" rg ">\s*[A-Z][a-z]+" -t jsx -t tsx # Query: "Find potential SQL injection vulnerabilities" rg "query.*\+.*req\.(params|query|body)" -t js -t ts # Query: "Find console logs to remove" rg "console\.(log|debug|info)" --glob "!**/*.test.*" -t js -t ts
Advanced Search Techniques
Multi-Pattern Search
# Search for multiple patterns rg -e "useState" -e "useEffect" -e "useContext" -t tsx # Search with AND logic (using pipes) rg "async" | rg "await" # Search with OR logic rg "(async|await)" -t js
Context-Aware Search
# Show function that contains pattern rg "useState" -A 20 -B 5 | rg "^(function|const)" -A 25 # Find classes with specific method rg "class.*extends.*Component" -A 50 | rg "componentDidMount"
Performance Optimization
# Search only in tracked git files rg "pattern" $(git ls-files) # Use parallel processing rg "pattern" --threads 8 # Search with type filtering rg "pattern" -t js -t ts -t jsx -t tsx # Exclude large directories rg "pattern" --glob "!{node_modules,dist,build,coverage}/**"
Search and Replace
# Dry run (preview changes) rg "old_function" --replace "new_function" --dry-run # Perform replacement (use with caution) rg "old_function" --replace "new_function" --files-with-matches | xargs sed -i '' 's/old_function/new_function/g' # Better: Use specific files rg "old_function" -l | xargs sed -i '' 's/old_function/new_function/g'
Search Result Processing
Format and Filter Results
# Get unique filenames rg "pattern" --files-with-matches | sort | uniq # Count occurrences per file rg "pattern" --count-matches # Show only files with more than N matches rg "pattern" --count | awk -F: '$2 > 5' # Create summary report rg "TODO" --count --sort path > todo_report.txt # Group by directory rg "pattern" --files-with-matches | xargs dirname | sort | uniq -c
Export Results
# Export to JSON rg "pattern" --json > results.json # Export with context to file rg "pattern" -C 3 > search_results.txt # Create clickable links (for IDEs) rg "pattern" --vimgrep > quickfix.txt
Search Optimization Tips
1. Use Appropriate Scope
# Bad: Search everything rg "pattern" # Good: Search specific directories rg "pattern" src/ tests/ # Better: Search specific file types rg "pattern" -t js -t ts src/
2. Use Smart Case
# Case-insensitive by default, sensitive if uppercase present rg "useState" # Matches: useState, UseState, USESTATE rg "UseState" # Matches: UseState only (contains uppercase)
3. Leverage .gitignore
# ripgrep automatically respects .gitignore # To include ignored files: rg "pattern" --no-ignore # To include hidden files: rg "pattern" --hidden
4. Use File Type Aliases
# Define custom file type rg "pattern" --type-add 'app:*.{js,ts,jsx,tsx}' -t app # Or in config file (~/.ripgreprc) --type-add=app:*.{js,ts,jsx,tsx}
IDE Integration
VS Code Search
{ "search.exclude": { "**/node_modules": true, "**/dist": true, "**/build": true, "**/.git": true, "**/coverage": true }, "search.useRipgrep": true, "search.followSymlinks": false }
Search Shortcuts
- Cmd/Ctrl + Shift + F: Global search
- Cmd/Ctrl + P: Quick file open
- Cmd/Ctrl + T: Go to symbol
- Cmd/Ctrl + Shift + O: Go to symbol in file
Common Search Patterns Library
Security Patterns
# Find hardcoded secrets rg "password\s*=\s*['\"]" -i # Find API keys rg "(api[_-]?key|token|secret)\s*[:=]\s*['\"][^'\"]{10,}" -i # Find SQL concatenation (potential injection) rg "SELECT.*\+.*" -t js -t py # Find eval usage (security risk) rg "eval\(" -t js
Performance Patterns
# Find synchronous file operations rg "fs\.(readFileSync|writeFileSync)" -t js # Find blocking operations rg "(readFileSync|execSync|sync\(\))" -t js # Find expensive operations in loops rg "for.*\{" -A 10 | rg "(await|fetch|query)" # Find N+1 query patterns rg "\.map.*await" -t js -t ts
Code Quality Patterns
# Find magic numbers rg "\b\d{2,}\b" -t js | rg -v "(test|spec)" # Find long functions (heuristic) rg "function \w+\(" -A 100 | rg "^}" | rg -c "A 100" # Find duplicate code (similar lines) rg "^\s*const \w+ = " | sort | uniq -d # Find commented code rg "^\s*//.*[{}\(\);]" -t js -t ts
Dependency Analysis
# Find all npm package imports rg "from ['\"](?![\./])" -t js -t ts # Find deprecated API usage rg "(componentWillMount|componentWillReceiveProps)" -t jsx -t tsx # Find specific library usage rg "import.*from ['\"](lodash|moment|jquery)" -t js
Search Result Analysis
Generate Reports
# TODO report by file rg "TODO:" --count | sort -t: -k2 -nr > todo_by_count.txt # Complexity indicators rg "if|else|switch|for|while" --count | awk -F: '$2 > 20' > complex_files.txt # Import analysis rg "^import" --count | sort -t: -k2 -nr > imports_by_file.txt # Test coverage gaps (files without tests) comm -23 <(find src -name "*.ts" | sort) <(find tests -name "*.test.ts" | sed 's/tests/src/' | sed 's/\.test//' | sort)
Best Practices
Search Strategy
- Start broad, narrow down: Begin with simple search, add filters
- Use appropriate tools: ripgrep for text, AST tools for semantic
- Leverage file types: Filter by extension to reduce noise
- Exclude build artifacts: Always exclude dist, node_modules, etc.
Performance
- Limit scope: Search specific directories when possible
- Use patterns: Regex can be faster than multiple searches
- Cache results: Save frequent searches
- Parallel execution: Use tools that support multi-threading
Result Quality
- Show context: Use -A/-B/-C flags for surrounding lines
- Rank by relevance: Sort by match count or recency
- Filter noise: Exclude test files, mocks, fixtures when needed
- Group related: Organize results by file or directory
Notes
- Always exclude build directories (node_modules, dist, build)
- Use
patterns for automatic exclusion.gitignore - Combine text and semantic search for best results
- Regular expressions can be slow on large codebases
- Cache frequently used search patterns
- Consider using specialized tools (ag, ack) for specific needs
- IDE built-in search is often sufficient for small projects
- For large codebases, consider code indexing tools
- Document common search patterns for team