Batch Rewrite Pattern
SkillFiles & storageCascade 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Batch Rewrite Pattern skill
What this skill tells your AI
The instructions your AI receives, as published by tibsfox/gsd-skill-creator in project-claude/skills/batch-rewrite-pattern/SKILL.md and read by ahel’s review.
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
Signals
- GitHub stars
- 69
- Forks
- 9
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
batch-rewrite-pattern- Source
- github.com/tibsfox/gsd-skill-creator