AgentSkillsCN

serena-pattern-editor

基于模式的代码编辑——借助 Serena 工具,精准搜索特定模式并批量应用代码转换。

SKILL.md
--- frontmatter
name: serena-pattern-editor
description: Pattern-based code editing using Serena tools - searches for patterns and applies bulk transformations
trigger: auto
domain: tooling
tools:
  serena_search_for_pattern: true
  serena_replace_content: true
  serena_replace_symbol_body: true

Serena Pattern Editor

Automated pattern-based editing for bulk code transformations and migrations.

When to Apply

  • Migrating APIs or libraries
  • Updating deprecated patterns
  • Enforcing coding standards
  • Bulk refactoring operations

Workflow

Phase 1: Pattern Discovery

  1. Use serena_search_for_pattern to find all occurrences
  2. Analyze pattern variations
  3. Identify edge cases

Phase 2: Pattern Definition

  1. Define precise regex pattern
  2. Test on subset of matches
  3. Refine pattern as needed

Phase 3: Transformation

  1. Use serena_replace_content with regex mode
  2. Apply wildcards for large replacements
  3. Verify each change

Phase 4: Validation

  1. Run tests
  2. Check for compilation errors
  3. Review changes in context

Best Practices

  1. Use regex mode with wildcards for efficiency
  2. Test pattern on single file first
  3. Use allow_multiple_occurrences carefully
  4. Always verify after bulk changes

Pattern Examples

Migration Pattern

regex
// Old API
oldFunction\((.*?)\)

// New API
newFunction($1, { option: true })

Deprecation Pattern

regex
// Find deprecated usage
@deprecated.*\n.*function

// Replace with warning
// TODO: Migrate to new API\n$0

Safety Guidelines

  • Always preview changes before applying
  • Use version control for rollback
  • Run full test suite after changes
  • Document pattern changes

Example Usage

typescript
// Migrate from old API to new API
const workflow = [
  'serena_search_for_pattern("oldApi\\.call")',
  'serena_replace_content("oldApi\\.call\\((.*?)\\)", "newApi.call($1)", "regex")',
];

Context

  • Learned from repeated migration patterns
  • Optimized for large-scale transformations
  • Confidence: High (based on 5+ observed usages)