go-navigator-read
Use Go Navigator MCP to explore Go code semantically (packages, symbols, definitions/references, context, metrics, deps) and return file/line/snippets; do not modify code.
When & Why to Use This Skill
Go Navigator (READ) is a specialized Claude skill designed for deep semantic exploration of Go (Golang) codebases. It empowers developers to navigate complex projects by analyzing packages, symbols, and dependencies without altering the source code. By leveraging semantic tools rather than simple text searches, it provides precise insights into code definitions, references, and architectural structures, significantly enhancing developer productivity and code comprehension.
Use Cases
- New Repository Onboarding: Quickly map out the structure, packages, and project schema of an unfamiliar Go codebase to understand its architecture.
- Symbol Tracing and Impact Analysis: Locate exact definitions and all references of functions or types across the project to evaluate the impact of potential changes.
- Interface and Implementation Mapping: Identify all types that implement a specific interface, making it easier to navigate polymorphic logic and decoupled code.
- Code Quality and Maintenance: Generate complexity reports and identify dead code to prioritize refactoring efforts and improve overall project health.
- Dependency Visualization: Explore package dependency graphs and metrics to understand the internal relationships and external requirements of a module.
| name | go-navigator-read |
|---|---|
| description | Use Go Navigator MCP to explore Go code semantically (packages, symbols, definitions/references, context, metrics, deps) and return file/line/snippets; do not modify code. |
Go Navigator (READ) — semantic navigation only
Scope rules
- READ-ONLY: never call renameSymbol or rewriteAst (or any tool that changes files).
- Prefer semantic tools over raw text search.
Defaults
- Use "dir": "." unless the user specifies another root.
- For any "package" field, use the exact import path returned by listPackages (go list style).
Recommended workflows
Orientation in a new repo
- listPackages { "dir": "." }
- getProjectSchema { "dir": ".", "depth": "standard" } (optional)
- getMetricsSummary { "dir": ".", "package": "" } (optional)
- getDependencyGraph { "dir": ".", "package": "" } (optional)
Understand a symbol
- getDefinitions { "dir": ".", "ident": "" }
- getReferences { "dir": ".", "ident": "" }
- getSymbolContext { "dir": ".", "ident": "", "kind": "<func|type|...>" } (preferred)
- getFunctionSource / getStructInfo / getFileInfo for deeper inspection
Interfaces & implementations
- listInterfaces { "dir": ".", "package": "" }
- getImplementations { "dir": ".", "name": "" }
Complexity, dead code, summary
- getComplexityReport { "dir": ".", "package": "" }
- getDeadCodeReport { "dir": ".", "package": "", "limit": 10 }
- getMetricsSummary { "dir": ".", "package": "" }
Large result sets
- Use limit/offset pagination where supported (getDefinitions/getReferences).
- Return the most relevant files first.
Output format
- Always include file paths + line numbers.
- Include minimal snippets (1–5 lines) unless asked for full bodies.
- Summarize findings and propose next tool calls (still read-only).