Batch rewrite pattern
Skill Tibsfox/gsd-skill-creator/project-claude/skills/batch-rewrite-pattern
Introduces a comprehensive agent-based framework for guided software development (GSD)
npx -y skills add Tibsfox/gsd-skill-creator --skill batch-rewrite-patternAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Cascade the same edit pattern across N files safely. Use when applying the same refactor to multiple files (e.g. swap import paths across 11 scripts, rename a symbol, migrate a call signature). Detects the common-shape-across-files situation and turns an N-file cascade into a planned audit → apply → verify workflow instead of N sequential manual edits.
SKILL.md
3.9 KB, as published. Nobody here has run it
Batch Rewrite Pattern
When the same edit needs to land in N files, the worst shape is N sequential manual passes. Each pass collects its own errors; the hook system retriggers; context fills with repetitive diffs. This skill captures the better shape.
Triggers
Activate when any of these apply:
- Renaming a symbol across the tree
- Migrating a function signature (add/remove/reorder args)
- Swapping an import path across modules
- Converting between two patterns (callbacks ↔ promises, v1 ↔ v2 API)
- Any edit where you can describe the transformation as "in every file matching pattern X, replace Y with Z"
Typical count trigger: ≥ 4 files warrant the batch shape.
Workflow
-
Characterize the transformation in one paragraph:
- What's the before pattern? (regex or literal)
- What's the after pattern?
- Are there variants? (single pattern vs family of patterns)
- Any files that should be exempt?
-
Enumerate candidates with Grep/Glob:
Grep pattern=BEFORE output=files_with_matches -
Dry-run the rewrite against 1-2 candidates first. Verify:
- The transformation is correct
- Surrounding context isn't disturbed
- No collateral damage
-
Apply in a batch — prefer a single Bash
sed/perlinvocation or a small rewrite script over N sequential Edit calls:for f in $(grep -l 'BEFORE' src/**/*.ts); do sed -i -e 's/BEFORE/AFTER/g' "$f" doneOr write a one-shot node script that reads each file, applies the transformation, writes back.
-
Verify with the test suite if one exists, or with a grep that the after-pattern is uniformly present and the before-pattern is gone.
-
Single commit covering the whole cascade, scope line listing files.
Anti-patterns to avoid
- Sequential manual Edit calls when the transformation is deterministic. Each Edit triggers hook re-reads and bloats context.
- Partial cascades — leaving some files on the old pattern because you got
interrupted halfway. Either all or none; use
git stashto revert if the cascade was wrong. - Branching transformations without a plan — when "most files" follow one pattern but a few need a variant, enumerate the variants first and handle each as its own batch.
Example — Config Adapter Cascade (v1.49 release-history work)
Situation: 11 scripts in tools/release-history/ each had a direct
pg.Client instantiation and hardcoded paths. Needed to convert all 11 to use
loadConfig() + openDb(cfg).
Right shape:
- Wrote the adapter (
db.mjs) once - Characterized the transform: replace
new pg.Client({...})block withawait openDb(cfg); replace hardcoded paths withcfg.*_abs - Applied to each file in one Bash loop or parallel sed invocation
- One commit
Wrong shape (what actually happened): 11 sequential Read-plus-Edit cycles, 35+ read-before-edit hook fires, recursive pattern-matching at each step.
The lesson: when you feel yourself about to do the same edit for the fourth time, stop and batch the rest.
Companion Tools
Grepwithoutput_mode: files_with_matchesto enumerate candidatesBashwithsed -ior a small rewrite script for the cascadeGrepagain to verify the before-pattern is gone and after-pattern is uniformly present
Related
file-operation-patterns— safe bulk file operationsdecision-framework-invoker— use when the batch is irreversible