
codebase-search
Route repo-navigation requests to one search packet before editing: exact-text, symbol/indexed, structural, config/content, hosted search, or graph/path trace. Use when the user asks where something is defined or referenced, which files own config/content surfaces, or what must be inspected before a change.
- Installs
- 392
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/akillness/jeo-skills --skill codebase-search- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads codebase-search automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Codebase Search
When to use this skill
- The main job is repo navigation before edits.
- The user needs to find definitions, call sites, entry points, config owners, tests, templates, content references, or likely impact surface.
- The repo is large enough that random file reading will waste time.
- The request is really "where does this live / what uses it / what should I inspect first?" even if the user never says "search".
- The repo may be app code, infra/config, content/templates, or game tooling/assets, and the first step is still discovery.
Do not use this skill as the main workflow when:
- The user already found the area and now needs root-cause diagnosis → use
debuggingorlog-analysis. - The user wants a behavior-preserving cleanup or migration plan → use
code-refactoring. - The user wants judgment on a concrete diff / PR → use
code-review. - The user wants a persistent whole-repo or mixed-corpus structure map → use
graphify.
Core idea
codebase-search should act like a packet router, not a giant search tutorial.
- Normalize the request into one primary packet.
- Narrow scope before dumping matches.
- Read only the winning files.
- Return a compact evidence map.
- Route out as soon as search is no longer the bottleneck.
Read these support docs before choosing the packet:
- references/intake-packets-and-route-outs.md
- references/search-modes.md
- references/evidence-map-template.md
- references/handoff-boundaries.md
Instructions
Step 1: Normalize the request
Convert the prompt into this intake shape first:
codebase_search_packet:
primary_packet: exact-text | symbol-indexed | structural | config-content | hosted-search | graph-path
repo_shape: app | infra | content | game | mixed | unknown
search_goal: locate | references | ownership | impact | archaeology | unknown
scope_hint: path | package | file-type | subsystem | repo-wide | unknown
route_after: stay-here | debugging | log-analysis | code-refactoring | code-review | graphify
Choose one primary packet for the run. If two seem plausible, pick the cheaper one that reduces uncertainty fastest.
Step 2: Choose the packet
| Packet | Use when | Best fits | Common tools / shapes |
|---|---|---|---|
exact-text | The user knows a string, env var, route, flag, class name spelling, error text, or file fragment | literal lookups, config keys, route paths, import names | rg, git grep, editor search |
symbol-indexed | The user needs definitions, references, or call sites | function/class/interface ownership, API tracing, monorepo navigation | LSP/workspace symbol, ctags, indexed repo search |
structural | Syntax shape matters more than literal text | missing cleanup, unsafe pattern inventories, migration prep | ast-grep, Semgrep, Comby, tree-sitter-style search |
config-content | The repo surface is config, content, templates, front matter, shortcodes, scenes, assets, or build scripts | Terraform/Kubernetes, Markdown/MDX sites, Hugo/Next content, game packaging/config | file discovery + exact-text + targeted scripts |
hosted-search | The repo is remote/browser-first or cross-repo lookup matters | PR archaeology, repo you do not have locally, shareable links | GitHub/GitLab hosted search |
graph-path | The request is really about dependency tracing or persistent structure | call graph, path tracing, architecture map, graph report | graphify, code graph/code map tools |
Packet rules:
- Prefer
exact-textwhen the user already has a concrete token. - Prefer
symbol-indexedfor “where is this defined / referenced?” - Prefer
structuralonly when regex would be too blunt. - Prefer
config-contentwhen the real surface is not classic source code. - Prefer
hosted-searchwhen local context is missing. - Prefer
graph-pathonly when ordinary search is no longer enough.
For an explicit Jevgrep request over scoped source documents, follow jevgrep for its separate remote-content/cost gate and bounded discovery. Exact-text, LSP/indexed, structural, and existing zvec routes remain default and authoritative; this optional route does not replace graph queries.
Step 3: Narrow scope before reading everything
Apply at least one narrowing move before reading files:
- limit by directory or package
- limit by file type
- separate authored files from generated/vendor folders
- start with entry points, loaders, config schemas, tests, examples, or build scripts
- in content/game repos, search metadata + template/asset surfaces before assuming code owns the answer
Useful heuristics by repo shape:
- app → start with entry point, router/handler, config loader, test
- infra → start with module/overlay/root config, variable/schema, deployment surface
- content → start with content folder, front matter key, partial/include/shortcode/template
- game → start with runtime code, engine config, scene/asset/build script, editor/visual graph references
Step 4: Read winners, not the whole match list
After the search packet returns matches:
- pick the most likely definition / ownership file
- pick 1–3 important consumers or references
- pick 1 config/test/example/build file when setup matters
- summarize the flow instead of pasting raw terminal output
Step 5: Return an evidence map
Default response shape:
## Search brief
- Goal: [what I was locating]
- Packet: exact-text | symbol-indexed | structural | config-content | hosted-search | graph-path
- Scope: [paths/file types/packages]
## Best entry points
- `path/to/file`: why it matters
- `path/to/other-file`: why it matters
## Key evidence
- `path:line` — what it shows
- `path:line` — how it connects
## Likely flow / ownership
- entry → consumer → config/test/content surface
## Next route-out
- stay in `codebase-search` or route to the next skill
Step 6: Use packet-specific heuristics
For bug-location requests
- start from the error string, route, flag, or recent change token
- locate the definition plus highest-signal consumers
- switch to
debuggingonce the likely failure path is mapped
For impact analysis
- definition first
- major consumers second
- tests/config/docs/content surfaces third
- separate must-update from maybe-affected
- route to
code-refactoringwhen the user is ready to change behavior-preserving structure
For config/content ownership
- locate loader/schema/template first
- then find runtime consumers or referenced pages/assets
- call out whether ownership sits in config, content metadata, templates, or code
For structural search
- explain the search shape in plain English
- prefer AST-aware tooling
- if forced to approximate with regex, label the confidence limit clearly
For archaeology requests
- start from entry points, docs, examples, tests, or build scripts
- avoid pretending you already understand the architecture after one search
- route to
graphifyif the user actually wants persistent structure mapping
Step 7: Route out aggressively
Switch when the next job is no longer search:
- Root cause, reproduction, hypotheses →
debugging - Raw log triage →
log-analysis - Behavior-preserving cleanup / codemod planning →
code-refactoring - Diff / PR judgment →
code-review - Persistent architecture graph or path tracing →
graphify
Examples
Example 1: Pre-change discovery
Prompt:
Find where auth is implemented and what files I should inspect before changing it.
Good response shape:
- choose
symbol-indexedorexact-text - identify entry points, config, and tests
- return a compact evidence map
- route to
code-refactoringordebuggingonly after the discovery step
Example 2: Config/content ownership
Prompt:
Which MDX pages still use the old pricing CTA shortcode, and where is the shared partial defined?
Good response shape:
- choose
config-content - search content metadata + shortcode/template surfaces
- identify source partial plus affected pages
- keep the answer discovery-first
Example 3: Structural query
Prompt:
Find all React effects missing cleanup. I do not want plain grep.
Good response shape:
- choose
structural - prefer AST-aware matching
- list highest-confidence hits
- label regex fallback limits if needed
Example 4: Game/infrastructure archaeology
Prompt:
Search this repo for where matchmaking region config is defined and what scenes or services consume it.
Good response shape:
- choose
config-contentorsymbol-indexedbased on repo shape - separate config ownership from runtime consumers
- call out code + asset/build surfaces if they both matter
Best practices
- Choose the smallest packet that can answer the question.
- Narrow scope before reading large match sets.
- Return an evidence map, not a terminal transcript.
- Cover config/content/game surfaces honestly; repo navigation is not only source-code lookup.
- Separate search from diagnosis, refactoring, review, and persistent graphing.
- Label confidence when structural intent is approximated with plain text search.
- For monorepos, group findings by package or subsystem.
References
references/intake-packets-and-route-outs.mdreferences/search-modes.mdreferences/evidence-map-template.mdreferences/handoff-boundaries.md- GitHub Code Search syntax docs: https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax
- Sourcegraph code search docs: https://sourcegraph.com/docs/code_search
- ast-grep introduction: https://ast-grep.github.io/guide/introduction.html
- ripgrep guide: https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md
FAQ
What does the codebase-search skill do?
Route repo-navigation requests to one search packet before editing: exact-text, symbol/indexed, structural, config/content, hosted search, or graph/path trace. Use when the user asks where something is defined or referenced, which files own config/content surfaces, or what must be inspected before a change.
How do I install codebase-search?
Run npx skills add https://github.com/akillness/jeo-skills --skill codebase-search in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/codebase-search/ (personal) or .claude/skills/codebase-search/ (project).
Which AI agents can use codebase-search?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is codebase-search safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains codebase-search?
It is published by akillness in akillness/jeo-skills. It has 392 recorded installs.
More from akillness/jeo-skills
rtk
akillness/jeo-skills
Install, initialize, verify, and troubleshoot RTK (Rust Token Killer) for AI coding agents. Use when you need to reduce shell-command token output, confirm that the correct rtk binary is installed, choose between Homebrew, install.sh, or Cargo installation, wire rtk init for Claude Code, Codex, Gemini CLI, Cursor, Copilot, Windsurf, Cline, or OpenCode, or use compact wrappers such as rtk git status, rtk read, rtk grep, rtk test, rtk lint, and rtk gain. Triggers on: rtk, rust token killer, token saver cli, rtk init, rtk gain, codex rtk, gemini rtk, opencode rtk, claude hook token reduction.
graphify
akillness/jeo-skills
Drive Graphify from its CLI to build, refresh, query, export, and serve a durable code/corpus knowledge graph. Use when the user wants .graphify/GRAPHREPORT.md, graph.json, graph.html, graphify update/summary/query/path/explain/tree, change-aware review context, git-hook or watch-based refresh, a stdio MCP graph server, or an install into jeo, jeopi, gjc, opencode, Claude, Codex, or Gemini. Also covers the honest structural fallback when native extraction is empty or misleading. Route simple locate/reference work to codebase-search, narrative knowledge-base work to llm-wiki, and project-memory handoff to opencontext. Triggers on: graphify, graphify update, graphify query, knowledge graph CLI, GRAPHREPORT.md, graph.json, codebase graph, graph refresh, graphify install, graphify serve, review context, affected flows.
data-analysis
akillness/jeo-skills
Analyze datasets to extract insights, identify patterns, and generate reports.
code-refactoring
akillness/jeo-skills
Turn a cleanup packet into one behavior-preserving refactor brief. Use when simplifying a messy function/component/service, freezing behavior before touching fragile legacy code, splitting a cleanup-heavy diff into reviewable slices, or planning a repeated migration / codemod without changing intended behavior. Route diagnosis to debugging, review judgment to code-review, validation-program design to testing-strategies, bottleneck-led tuning to performance-optimization, and pure symbol inventory to codebase-search.
technical-writing
akillness/jeo-skills
Write internal technical documentation for engineers and operators: technical specs, architecture docs, ADRs, runbooks, migration plans, and developer-facing implementation guides. Use when the main job is capturing a technical decision, system boundary, operating procedure, or rollout path for builders and maintainers. Triggers on: tech spec, design doc, architecture doc, ADR, runbook, migration guide, implementation guide, rollout doc, operational guide, and internal technical writing. End-user onboarding guides, tutorials, FAQs, and help-center flows belong here too. Route API portals to api-documentation, release notes to changelog-maintenance, decks to presentation-builder, and GTM messaging to marketing-automation.
web-accessibility
akillness/jeo-skills
Routing-first skill for web accessibility remediation and verification. Use when the main job is classifying which accessibility surface is failing — semantics, keyboard/focus, labels/announcements, visual perception/reflow, media alternatives, or routed-app navigation feedback — and turning vague audit, WCAG, axe/Lighthouse, or "make this accessible" requests into one concrete remediation packet. Broad UI critique for hierarchy, polish, and launch readiness belongs here too. Route component API architecture and system governance to design-system, and responsive layout strategy to responsive-design.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.