# Serena Refactor

> This skill should be used when the user asks to "rename function", "refactor code", "rename symbol across codebase", "change function signature", "restructure code safely", or mentions Serena's rename_symbol or replace_symbol_body tools.

- Skill: `anilcancakir/serena-refactor` (Agent Skill)
- Install (CLI): `npx skillmds@latest add anilcancakir/serena-refactor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/anilcancakir/serena-refactor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: anilcancakir (https://skillmd.com/u/anilcancakir)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/anilcancakir/serena-refactor

---


# Serena Safe Refactoring

## Cross-Codebase Rename

```
rename_symbol(old_name="calcTax", new_name="calculate_tax")
```
- Updates ALL references automatically
- Works across files
- Handles imports/exports

## Replace Function Body

```
replace_symbol_body(symbol_name="process_payment", new_body="...")
```
- Preserves function signature
- Safer than text replacement
- Maintains formatting

## Pre-Refactoring Checklist

1. **Check impact**:
   ```
   find_referencing_symbols("function_to_change")
   ```
   Review all affected locations before changing.

2. **Verify tests exist**:
   ```
   find_symbol("test_function_to_change")
   ```

3. **Run tests after**:
   ```bash
   pytest tests/test_module.py -v
   ```

## Common Patterns

### Rename Function
```
find_referencing_symbols("old_name")  # Check impact
rename_symbol(old_name="old_name", new_name="new_name")
# Run tests
```

### Replace Implementation
```
find_symbol("function_name", include_body=true)  # See current
replace_symbol_body("function_name", new_body="...")
# Run tests
```

## Safety Notes

- Always check references before renaming
- Run tests after each refactoring step
- Document patterns in Serena memory for future reference

