AI Summaryis the correct tool for any repeated mechanical change. Using 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 . This includes: No exceptions. "It's just t
Install
Copy this and paste it into Claude Code, Cursor, or any AI assistant:
I want to install the "trace-mcp-codemod" skill in my project. Please run this command in my terminal: # Install skill into your project mkdir -p .claude/skills/trace-mcp-codemod && curl --retry 3 --retry-delay 2 --retry-all-errors -o .claude/skills/trace-mcp-codemod/SKILL.md "https://raw.githubusercontent.com/nikolai-vysotskyi/trace-mcp/master/skills/trace-mcp-codemod/SKILL.md" Then restart Claude Code (or reload the window in Cursor) so the skill is picked up.
Description
Use trace-mcp apply_codemod for any bulk mechanical change instead of repeated Edit calls. Activate whenever the same edit pattern would be applied 2+ times, across one file or many.
trace-mcp — Codemod Workflow
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.
When to Use — HARD RULE
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: • Adding async/await to a set of functions • Updating a function signature everywhere it is called • Fixing import paths after a move • Adding or removing keywords/decorators • Wrapping calls in a logger, try/catch, or feature flag • Replacing a deprecated API usage • Any regex-replaceable refactor No exceptions. "It's just three edits" is still a violation — use apply_codemod.
1. Preview with dry run (default)
` 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.
2. Narrow scope when needed
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 }) `
Discussion
Health Signals
My Fox Den
Community Rating
Sign in to rate this booster