From trace-mcp
Activates trace-mcp apply_codemod for any bulk mechanical change (regex replace, signature updates, import fixes) applied 2+ times across one or many files, instead of repeated Edit calls.
How this skill is triggered — by the user, by Claude, or both
Slash command
/trace-mcp:trace-mcp-codemodThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`apply_codemod` is the correct tool for any repeated mechanical change. Using `Edit` for the same pattern twice or more is a waste of tokens and is error-prone.
apply_codemod is the correct tool for any repeated mechanical change. Using Edit for the same pattern twice or more is a waste of tokens and is error-prone.
If you are about to make the same kind of change 2 or more times — whether in one file or across many — stop and use apply_codemod. This includes:
async/await to a set of functionsNo exceptions. "It's just three edits" is still a violation — use apply_codemod.
apply_codemod({
pattern: "oldFunction\\(",
replacement: "newFunction(",
file_pattern: "src/**/*.ts",
dry_run: true // default
})
Review the preview: matched files, context lines, and replacement correctness. Look for false positives.
Use filter_content to only touch files that also contain a second marker:
apply_codemod({
pattern: "extractNodes\\(",
replacement: "extractNodes(ctx, ",
file_pattern: "src/**/*.ts",
filter_content: "import.*extractNodes",
dry_run: true
})
For patterns that cross line boundaries, enable multiline mode:
apply_codemod({
pattern: "function\\s+foo\\([^)]*\\)\\s*\\{",
replacement: "async function foo() {",
multiline: true,
dry_run: true
})
apply_codemod({ ..., dry_run: false })
If more than 20 files are affected, add confirm_large: true.
register_edit is not needed for codemods — apply_codemod handles reindexing internally.check_quality_gates with scope: "changed".For changes that span packages or require version awareness (e.g. upgrading a dependency), use plan_batch_change first:
plan_batch_change({
package: "lodash",
from_version: "4.17.0",
to_version: "5.0.0"
})
This returns an impact report with all affected files and import references. Combine it with apply_codemod for the actual rewrite.
Edit with replace_all for renames — use apply_rename (see trace-mcp-refactoring).Edit calls with the same old_string pattern shape — use apply_codemod.confirm_large: true on changes >20 files.npx claudepluginhub nikolai-vysotskyi/trace-mcp --plugin trace-mcpDecomposes large-scale changes into independent units and spawns parallel agents in isolated worktrees. Use for migrations, refactors, codemods, and changes touching 10+ files.
Edits code via hash-anchored tilth MCP edits, replacing sed/awk/perl/patch and shell redirects. Supports surgical edits and ast-grep structural codemods spanning many files.
Safe refactoring workflow using trace-mcp — assess risk, find candidates, check impact, and rename symbols across all files without missing import sites or cross-file references.