codebase-exploration
GitHub指导 Agent 利用 Repowise 智能层探索和理解代码库。通过 get_overview、get_answer 等工具获取架构、调用关系及风险,替代传统文件读取,高效回答代码逻辑与结构问题。
Trigger Scenarios
Install
npx skills add repowise-dev/repowise --skill codebase-exploration -g -y
SKILL.md
Frontmatter
{
"name": "codebase-exploration",
"description": "Use when exploring, understanding, or answering questions about a codebase that has Repowise indexed (a .repowise\/ directory in the project root). Activates for \"how does X work\", \"explain the architecture\", \"where is Y implemented\", \"what does this module do\", or any task that needs an understanding of structure before diving into source files.\n",
"user-invocable": false
}
Codebase Exploration with Repowise
This project has a Repowise intelligence layer. For an exact identifier, string or file name, Grep, Glob and Read are faster. For how code works, who calls it, what a change breaks and why it is shaped this way, reach for the Repowise MCP tools: they return documentation, ownership, history, decisions, and graph structure that plain file reads don't, usually in one round-trip instead of many.
Which tool for which question
| You want… | Call |
|---|---|
| An exact identifier, string or file name | Grep, Glob and Read. |
| First orientation in an unfamiliar repo | get_overview(): architecture summary, key modules, entry points, git health, knowledge map. Skip it once you have the map. |
| How X works or flows end to end | get_answer(question="how does …"), one question per call: synthesised answer with citations + one confidence trust signal. Collapses the search → read → reason loop. |
| Callers before a rename or signature change | get_context(targets=["<symbol>"], include=["references"]): definition, imports and calls; a complete list is the whole edit set. |
| What breaks if X changes | get_risk(targets=["<file>"]). |
| Why X is shaped this way, before changing a pattern | get_why(query="why …", targets=["<file>"]). |
| Before finishing a multi-file change | get_change_risk(revspec="<base>..HEAD"), then get_health(targets=["<files you touched>"]). |
A fuzzy concept, or symbol ids and line bounds to feed get_symbol |
search_codebase(query="…"): hybrid search. mode="auto" routes an identifier to indexed symbol hits (symbol_id/line bounds → pipe into get_symbol), a path to file pages (→ get_context), and prose to semantic wiki search (each hit reports search_method: embedding vs bm25). Force a branch with mode=symbol|path|concept|hybrid; narrow symbols with symbol_kind. |
| A triage card for specific files/symbols | get_context(targets=[…]): title, summary, signatures, hotspot bit, top callers, decision titles, symbol_ids (a row without one is path::name). Batch many targets in one call. |
| The actual source of one symbol | get_symbol("path/to/file.py::Name"): exact bytes with line bounds. Cheaper than Read + offset math. Use a symbol_id from get_context. |
Recommended flow
- New area you don't know →
get_overview()once. - A specific question →
get_answer(question=…)first.- High confidence → answer it, cite the paths.
medium/lowconfidence → followbest_guesses[0].fileorfallback_targets[0]intoget_context, thenget_symbolfor bytes.
- A named symbol or a path you only need to find → Grep, Glob or Read. When
you need its callers, risk or history, pass it to
get_context,get_riskorget_whyinstead. - More files around a concept →
search_codebase, thenget_contexton the hits (batched), thenget_symbolonly for the bodies you actually need.
Read source directly for details the indexed context doesn't cover.
Trust signals — verify when
_meta.stale_warningis present (the index has diverged from HEAD), orconfidenceismedium/low, or- a result's
search_methodisbm25.
Otherwise the response is current — act on it.
Error handling
- "No repositories found. Run 'repowise init' first." → suggest
/repowise:init. Add--no-editor-setupif this repo is a scratch clone, a fixture, or a worktree, soinitwrites nothing outside.repowise/(no editor config, agent hooks or git hook). - MCP tools unavailable → prefer the matching CLI slash commands when the
plugin is installed (
/repowise:ask,/repowise:context,/repowise:symbol,/repowise:search) rather than grepping blind. get_answer/search_codebasecome back empty → the repo may have a template-rendered wiki. Fall back toget_contextwith explicit paths, and note that model-written pages (repowise generate, or/repowise:initwith an LLM provider) unlock richer docs + semantic search.- Tools fail to connect at all → the
repowisebinary may not be installed; suggest/repowise:init.
Version History
-
7ccd63f
Current 2026-11-03 00:02
新增精确标识符查询路由至 Grep/Glob/Read;优化任务分流策略以匹配生成的文档规范。
-
09471b8
2026-10-19 07:00
优化 get_answer 的信任信号机制,统一使用 confidence 替代 retrieval_quality,并增强答案与问题的词覆盖率匹配逻辑;更新缓存 schema。
-
8f69324
2026-09-22 12:16
修复MCP无索引提示中的主机特定工具名称(如Read/Grep),改为通用能力描述以提升跨客户端兼容性。
-
370793f
2026-08-19 23:15
新增 CLI 适配器作为斜杠命令,并添加 --no-editor-setup 选项以跳过全局 MCP/钩子注册。
- b5f4753 2026-07-25 05:12


