Serena code intelligence — LSP-powered symbol navigation, diagnostics, and targeted code surgery. Activate before complex refactors, cross-file analysis, or when graph tools need symbol-level depth.
Scanned 8/31/2026
Install via CLI
openskills install datit309/supergraph---
name: serena
description: Serena code intelligence — LSP-powered symbol navigation, diagnostics, and targeted code surgery. Activate before complex refactors, cross-file analysis, or when graph tools need symbol-level depth.
---
# /supergraph:serena
Activate Serena MCP for LSP-powered code intelligence: symbol navigation, type diagnostics, and safe code surgery.
**CRITICAL:** Call `initial_instructions` first when starting any Serena work — it loads the Serena Instructions Manual with project-specific context.
## When to Use
- Before complex refactors: rename across codebase, API signature changes
- When blast radius is unclear and graph tools lack symbol-level depth
- Before review: verify all call sites of changed symbols are updated
- During fix: triage type errors before running test suite
- After architectural changes: verify no orphaned references remain
- Large-scale refactors: safe_delete_symbol, rename_symbol across entire project
## Setup
### 1. Load instructions (MANDATORY first step)
```
mcp__plugin_serena_serena__initial_instructions()
# or
mcp__serena__initial_instructions()
```
### 2. Activate project
```
mcp__plugin_serena_serena__activate_project()
```
### 3. Get project overview
```
mcp__plugin_serena_serena__get_symbols_overview()
```
Returns top-level symbols, classes, functions — fast structural map of the codebase.
## Tool Reference
### Navigation
| Tool | Use case |
|------|----------|
| `find_symbol` | Locate a symbol by name across codebase |
| `find_declaration` | Jump to where a symbol is declared |
| `find_implementations` | Find all implementations of an interface / abstract class |
| `find_referencing_symbols` | Find all callers and usages of a symbol |
### Setup / Lifecycle
| Tool | Use case |
|------|----------|
| `activate_project` | Register project with Serena — requires `mcp__plugin_serena_serena__` namespace |
| `get_current_config` | Read Serena's current project configuration |
| `open_dashboard` | Open the Serena dashboard UI |
| `execute_shell_command` | Run shell commands (use with caution — confirm before destructive ops) |
### Diagnostics
| Tool | Use case |
|------|----------|
| `get_diagnostics_for_file` | IDE-level type errors, lint warnings for a specific file |
| `get_symbols_overview` | Project structure overview — top-level symbols map |
### Code Surgery (prefer over raw text edits)
| Tool | Use case |
|------|----------|
| `replace_symbol_body` | Replace function/method body — exact, no regex risk |
| `insert_after_symbol` | Insert code after a symbol definition |
| `insert_before_symbol` | Insert code before a symbol definition |
| `rename_symbol` | Safe rename across entire codebase |
| `safe_delete_symbol` | Delete symbol, verify no remaining references |
### File Operations
| Tool | Use case |
|------|----------|
| `find_file` | Find files by name pattern |
| `list_dir` | List directory contents |
| `read_file` | Read file content |
| `search_for_pattern` | Regex search across files |
| `replace_content` | Replace text content in file |
| `create_text_file` | Create a new text file |
### Memory (cross-session context)
| Tool | Use case |
|------|----------|
| `write_memory` | Save analysis findings for future sessions |
| `read_memory` | Recall prior analysis |
| `list_memories` | List all saved memories |
| `edit_memory` | Update an existing memory |
| `rename_memory` | Rename an existing memory entry |
| `delete_memory` | Remove stale memory |
## Memory Workflow
Use Serena memory to persist analysis state across sessions — avoids re-deriving complex blast radius mappings:
```
# Save findings after analysis:
mcp__serena__write_memory(title="auth-refactor-callers", content="find_referencing_symbols(login) = [A, B, C]")
# Recall in next session:
mcp__serena__read_memory(title="auth-refactor-callers")
```
## Integration Points in Other Skills
Serena is invoked as optional hooks inside other supergraph skills:
| Skill | Hook | Tools used |
|-------|------|------------|
| `scan` | Step 2b/3b | `activate_project`, `get_symbols_overview` |
| `plan` | Step 3b | `find_referencing_symbols`, `find_implementations`, `write_memory` |
| `analyze` | Step 2b | `find_referencing_symbols`, `find_implementations` |
| `tdd` | After RED, after GREEN, refactor | `get_diagnostics_for_file`, `replace_symbol_body`, `rename_symbol` |
| `execute` | Code surgery, post-execution | `replace_symbol_body`, `rename_symbol`, `insert_after_symbol`, `find_referencing_symbols` |
| `fix` | Pre-loop + each iteration | `get_diagnostics_for_file`, `replace_symbol_body`, `rename_symbol` |
| `verify` | Step 3b | `get_diagnostics_for_file` |
| `review` | Step 3b | `find_referencing_symbols`, `find_implementations`, `get_diagnostics_for_file`, `write_memory` |
| `integration` | Post-test | `find_referencing_symbols`, `get_diagnostics_for_file` |
| `architecture` | Step 2 | `get_symbols_overview` |
| `database-migrations` | Impact check | `find_referencing_symbols` |
| `webapp-testing` | Component impact | `find_referencing_symbols` |
| `flutter-dart-code-review` | MCP-Integrated Review | `get_diagnostics_for_file`, `find_referencing_symbols`, `find_implementations` |
## MCP Tool Name Variants
Two variants may be present depending on project setup:
```
# Plugin variant (full feature set — file ops + symbol nav):
mcp__plugin_serena_serena__<tool>
# Direct variant (symbol navigation focus):
mcp__serena__<tool>
```
Use whichever responds. If both are available: prefer `mcp__plugin_serena_serena__` for file operations, `mcp__serena__` for symbol navigation.
## Fallback
If Serena MCP is not available:
- Log: "Serena unavailable, skipping symbol intelligence step"
- Do NOT block workflow — all Serena steps are optional enhancements
- Fall back to graph MCP tools + Read/Bash/grep for the same purpose
## Rules
- Always call `initial_instructions` before any other Serena tool
- Prefer `replace_symbol_body` and `rename_symbol` over raw text edits for code changes
- Use `safe_delete_symbol` instead of manual deletion — it verifies no remaining references
- Save complex analysis to Serena memory when it may be needed across sessions
- Never use `execute_shell_command` for destructive operations without user confirmation
No comments yet. Be the first to comment!