Skip to main content
skill CX Codex

searching-sourcegraph — Claude Code skill: code search via Sourcegraph

Tells the agent which Sourcegraph MCP tool to reach for and in what order. Useful when you need to find an implementation or make sense of an unfamiliar system.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add cline/skills --skill searching-sourcegraph -a claude-code
Open on GitHub

What searching-sourcegraph does

The skill maps each kind of question to a tool. Exact symbol or pattern goes to keyword_search, a concept without known code goes to nls_search, and a "how does this work" question starts with deepsearch then deepsearch_read. Tracing usage is find_references; pulling the full implementation is go_to_definition followed by read_file.

Scoping gets its own section. The agent is told to narrow with repo:^github.com/ORG/REPO$, file:.*\.ts$ and lang:typescript, and widen only when results come back empty. There are situation-specific chains too. Given an error or stack trace, the skill extracts symbols and error codes first, finds the failure site, then walks the call chain. During debugging it advises checking diff_search and commit_search early, since regressions are common.

Five workflow files ship with it: implementing-feature.md, understanding-code.md, debugging-issue.md, fixing-bug.md, code-review.md. There is also a table of common mistakes and ready-made query patterns for React hooks, API routes and build configs. None of it fires without a Sourcegraph MCP server connected — the tools it names simply won't be available.

What it helps with

  • find an existing implementation before writing a new one
  • trace every place a function or class is used
  • get oriented in an unfamiliar codebase by asking how things work
  • locate a crash site from a stack trace and error code
  • check recent commits and diffs when a regression is suspected

Example prompts for the agent

  • Find every call site of parseToken in repo:^github.com/myorg/backend$ and show me the implementation.
  • How does auth work in this repo? Run deepsearch and read the key files it returns.
  • Here's the stack trace: TypeError: Cannot read property 'id' of undefined. Find the failure site and trace the call chain.

How to install searching-sourcegraph

1Skills CLI (Vercel)

npx skills add cline/skills --skill searching-sourcegraph -a claude-code

2Manually: put the files in place

~/.claude/skills/searching-sourcegraph/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/searching-sourcegraph/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about searching-sourcegraph

How do I install searching-sourcegraph in Claude?

Run npx skills add cline/skills --skill searching-sourcegraph -a claude-code. The skill file then lands at ~/.claude/skills/searching-sourcegraph/SKILL.md.

What does searching-sourcegraph do?

It tells the agent which Sourcegraph tool fits the task and sets the search order: scope down, find, read, follow references. It also ships five workflow files for common scenarios.

What do I need for the skill to work?

A connected Sourcegraph MCP server. Without it the tools the skill names, such as keyword_search and deepsearch, aren't available to the agent.

Source text

SKILL.md · Apache-2.0
---
name: searching-sourcegraph
description: Use when the user needs to search or navigate code with Sourcegraph MCP tools. Provides disciplined search workflows for finding implementations, understanding systems, debugging issues, fixing bugs, and reviewing code.
---

# Searching Sourcegraph

Search before you build. Existing patterns reduce tokens, ensure consistency, and surface tested solutions.

## Tool Selection Logic

**Start here:**

1. **Know the exact symbol or pattern?** → `keyword_search`
2. **Know the concept, not the code?** → `nls_search`
3. **Need to understand how/why?** → `deepsearch` → `deepsearch_read`
4. **Tracing a symbol's usage?** → `find_references`
5. **Need full implementation?** → `go_to_definition` → `read_file`
6. **Need to know what repos a user has worked on?** → `get_contributor_repos`

| Goal | Tool |
|------|------|
| Concepts/semantic search | `nls_search` |
| Exact code patterns | `keyword_search` |
| Trace usage | `find_references` |
| See implementation | `go_to_definition` |
| Initiate a deep search | `deepsearch` |
| Read deep search results | `deepsearch_read` |
| Read files | `read_file` |
| Browse structure | `list_files` |
| Find repos | `list_repos` |
| Search commits | `commit_search` |
| Track changes | `diff_search` |
| Compare versions | `compare_revisions` |
| Find repos a user has worked on | `get_contributor_repos` |

## 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":**
- Use `deepsearch` to initiate the search, then `deepsearch_read` to retrieve results
- Follow up with `read_file` on key files mentioned in the response

**When the user asks who worked on something or what repos a contributor has touched:**
- Use `get_contributor_repos` with one or more usernames to discover their active repositories
- Then scope subsequent searches to those repos

**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 troubleshooting an error, build failure, or runtime exception:**
- Extract exact symbols, error codes, or log lines from the stack trace or build output
- Search for the error site, then trace the full call chain with `find_references`
- Check recent changes with `diff_search` and `commit_search` early — regressions are common
- Identify all affected code paths and services before proposing a fix

**When fixing a bug:**
- Extract exact symbols from the error message or stack trace
- Search for the error site, then trace the full call chain with `find_references`
- Check recent changes with `diff_search` and `commit_search` early — regressions are common
- Find all affected code paths before writing the fix
- Read existing tests to understand intended behaviour

## Workflows

For detailed step-by-step workflows, see:
- `workflows/implementing-feature.md` — when building new features
- `workflows/understanding-code.md` — when exploring unfamiliar systems
- `workflows/debugging-issue.md` — when troubleshooting errors, build failures, stack traces, support issues, or runtime exceptions
- `workflows/fixing-bug.md` — when fixing bugs with extensive Sourcegraph search
- `workflows/code-review.md` — when reviewing a pull request or changeset

## 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 `keyword_search` over `nls_search` when 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 `deepsearch` + `deepsearch_read` for "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 `deepsearch` for simple "find all" queries — `keyword_search` is faster
- 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 `nls_search` for semantic matching |
| Not understanding context | Use `deepsearch_read` |
| Guessing patterns | Read implementations with `read_file` |

## Principles

- Start narrow, expand if needed
- Chain tools: search → read → find references → definition
- Check tests for usage examples
- Read before generating

© cline · Apache-2.0 · cline/skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set17

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor