searching-sourcegraph
4
总安装量
2
周安装量
#51846
全站排名
安装命令
npx skills add https://github.com/ajaynz/sourcegraph-skill --skill searching-sourcegraph
Agent 安装分布
amp
2
cursor
2
claude-code
2
opencode
1
github-copilot
1
antigravity
1
Skill 文档
Searching Sourcegraph
Search before you build. Existing patterns reduce tokens, ensure consistency, and surface tested solutions.
Tool Selection Logic
Start here:
- Know the exact symbol or pattern? â
sg_keyword_search - Know the concept, not the code? â
sg_nls_search - Need to understand how/why? â
sg_deepsearch_read - Tracing a symbol’s usage? â
sg_find_references - Need full implementation? â
sg_go_to_definitionâsg_read_file
| Goal | Tool |
|---|---|
| Concepts/semantic search | sg_nls_search |
| Exact code patterns | sg_keyword_search |
| Trace usage | sg_find_references |
| See implementation | sg_go_to_definition |
| Understand systems | sg_deepsearch_read |
| Read files | sg_read_file |
| Browse structure | sg_list_files |
| Find repos | sg_list_repos |
| Search commits | sg_commit_search |
| Track changes | sg_diff_search |
| Compare versions | sg_compare_revisions |
Scoping (Always Do This)
repo:^github.com/ORG/REPO$ # Exact repo (preferred)
repo:github.com/ORG/ # All repos in org
file:.*\.ts$ # TypeScript only
file:src/api/ # Specific directory
file:.*\.test\.ts$ -file:__mocks__ # Tests, exclude mocks
Start narrow. Expand only if results are empty.
Combine filters: repo:^github.com/myorg/backend$ file:src/handlers lang:typescript
Context-Aware Behaviour
When the user provides a file path or error message:
- Extract symbols, function names, or error codes
- Search for those exact terms first
- Trace references if the error involves a known symbol
When the user asks “how does X work”:
- Prefer
sg_deepsearch_readfor architectural understanding - Follow up with
sg_read_fileon key files mentioned in the response
When the user is implementing a new feature:
- Search for similar existing implementations first
- Read tests for usage examples
- Check for shared utilities before creating new ones
When debugging:
- Search for the exact error string
- Trace the symbol where the error is thrown
- Check recent changes with
sg_diff_search
Workflows
For detailed step-by-step workflows, see:
workflows/implementing-feature.mdâ when building new featuresworkflows/understanding-code.mdâ when exploring unfamiliar systemsworkflows/debugging-issue.mdâ when tracking down bugs
Efficiency Rules
Minimise tool calls:
- Chain searches logically: search â read â references â definition
- Don’t re-search for the same pattern; use results from prior calls
- Prefer
sg_keyword_searchoversg_nls_searchwhen you have exact terms (faster, more precise)
Batch your understanding:
- Read 2-3 related files before synthesising, rather than reading one and asking questions
- Use
sg_deepsearch_readfor “how does X work” instead of multiple keyword searches
Avoid common token waste:
- Don’t search all repos when you know the target repo
- Don’t use
sg_deepsearch_readfor simple “find all” queries - Don’t re-read files you’ve already seen in this conversation
Query Patterns
| Intent | Query |
|---|---|
| React hooks | file:.*\.tsx$ use[A-Z].*= \( |
| API routes | file:src/api app\.(get|post|put|delete) |
| Error handling | catch.*Error|\.catch\( |
| Type definitions | file:types/ export (interface|type) |
| Test setup | file:.*\.test\. beforeEach|beforeAll |
| Config files | file:(webpack|vite|rollup)\.config |
| CI/CD | file:\.github/workflows deploy |
For more patterns, see query-patterns.md.
Output Formatting
Search results:
- Present as a brief summary, not raw tool output
- Highlight the most relevant file and line
- Include a code snippet only if it directly answers the question
Code explanations:
- Start with a one-sentence summary
- Use the codebase’s own terminology
- Reference specific files and functions
Recommendations:
- Present as numbered steps if actionable
- Link to specific patterns found in the codebase
- Note any existing utilities that should be reused
Common Mistakes
| Mistake | Fix |
|---|---|
| Searching all repos | Add repo:^github.com/org/repo$ |
| Too many results | Add file: pattern or keywords |
| Missing relevant code | Try sg_nls_search for semantic matching |
| Not understanding context | Use sg_deepsearch_read |
| Guessing patterns | Read implementations with sg_read_file |
Principles
- Start narrow, expand if needed
- Chain tools: search â read â find references â definition
- Check tests for usage examples
- Read before generating