‹ 首页

code-refactor

@mhattingpete · 收录于 1 周前 · 上游提交 4 个月前

Perform bulk code refactoring operations like renaming variables/functions across files, replacing patterns, and updating API calls. Use when users request renaming identifiers, replacing deprecated code patterns, updating method calls, or making consistent changes across multiple locations.

适合你,如果需要在多个文件中统一修改代码

/ 下载安装
code-refactor.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add mhattingpete/claude-skills-marketplace/code-refactor
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- mhattingpete/claude-skills-marketplace/code-refactor
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify mhattingpete/claude-skills-marketplace/code-refactor
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
644GitHub stars
~716上下文体积 · 单文件
镜像托管

怎么用

技能原文 SKILL.md作者撰写 · Apache-2.0 · 3fa16a9

Code Refactor

Systematic code refactoring across files. Auto-switches to execution mode for 10+ files (90% token savings).

Mode Selection
  • 1-9 files: Use native tools (Grep + Edit with replace_all)
  • 10+ files: Automatically use code-execution skill

Execution example (50 files):

from api.code_transform import rename_identifier
result = rename_identifier('.', 'oldName', 'newName', '**/*.py')
# Returns: {'files_modified': 50, 'total_replacements': 247}
# ~500 tokens vs ~25,000 tokens traditional
When to Use
  • "rename [identifier] to [new_name]"
  • "replace all [pattern] with [replacement]"
  • "refactor to use [new_pattern]"
  • "update all calls to [function/API]"
  • "convert [old_pattern] to [new_pattern]"
Core Workflow (Native Mode)
1. Find All Occurrences
Grep(pattern="getUserData", output_mode="files_with_matches")     # Find files
Grep(pattern="getUserData", output_mode="content", -n=true, -B=2, -A=2)  # Verify with context
2. Replace All Instances
Edit(
  file_path="src/api.js",
  old_string="getUserData",
  new_string="fetchUserData",
  replace_all=true
)
3. Verify Changes
Grep(pattern="getUserData", output_mode="files_with_matches")  # Should return none
Workflow Examples
Rename Function
  1. Find: Grep(pattern="getUserData", output_mode="files_with_matches")
  2. Count: "Found 15 occurrences in 5 files"
  3. Replace in each file with replace_all=true
  4. Verify: Re-run Grep
  5. Suggest: Run tests
Replace Deprecated Pattern
  1. Find: Grep(pattern="\\bvar\\s+\\w+", output_mode="content", -n=true)
  2. Analyze: Check if reassigned (let) or constant (const)
  3. Replace: Edit(old_string="var count = 0", new_string="let count = 0")
  4. Verify: npm run lint
Update API Calls
  1. Find: Grep(pattern="/api/auth/login", output_mode="content", -n=true)
  2. Replace: Edit(old_string="'/api/auth/login'", new_string="'/api/v2/authentication/login'", replace_all=true)
  3. Test: Recommend integration tests
Best Practices

Planning:

  • Find all instances first
  • Review context of each match
  • Inform user of scope
  • Consider edge cases (strings, comments)

Safe Process:

  1. Search → Find all
  2. Analyze → Verify appropriate
  3. Inform → Tell user scope
  4. Execute → Make changes
  5. Verify → Confirm applied
  6. Test → Suggest running tests

Edge Cases:

  • Strings/comments: Ask if should update
  • Exported APIs: Warn of breaking changes
  • Case sensitivity: Be explicit
Tool Reference

Edit with replace_all:

  • replace_all=true: Replace all occurrences
  • replace_all=false: Replace only first (or fail if multiple)
  • Must match EXACTLY (whitespace, quotes)

Grep patterns:

  • -n=true: Show line numbers
  • -B=N, -A=N: Context lines
  • -i=true: Case-insensitive
  • type="py": Filter by file type
Integration
  • test-fixing: Fix broken tests after refactoring
  • code-transfer: Move refactored code
  • feature-planning: Plan large refactorings
按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。