AgentSkillsCN

serena-refactor

当用户请求“重命名函数”、“重构代码”、“在整个代码库中重命名符号”、“更改函数签名”、“安全地重构代码”,或提及 Serena 的 rename_symbol 或 replace_symbol_body 工具时,可使用此技能。

SKILL.md
--- frontmatter
name: serena-refactor
description: |
  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.

Serena Safe Refactoring

Cross-Codebase Rename

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

Replace Function Body

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

Pre-Refactoring Checklist

  1. Check impact:

    code
    find_referencing_symbols("function_to_change")
    

    Review all affected locations before changing.

  2. Verify tests exist:

    code
    find_symbol("test_function_to_change")
    
  3. Run tests after:

    bash
    pytest tests/test_module.py -v
    

Common Patterns

Rename Function

code
find_referencing_symbols("old_name")  # Check impact
rename_symbol(old_name="old_name", new_name="new_name")
# Run tests

Replace Implementation

code
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