name: batch-refactor-with-sub-agents
description: Use a sub-agent (like generalist) to perform repetitive code transformations across multiple files in a single turn.
When to Use
- Renaming symbols or updating function signatures across many files.
- Migrating code from one pattern to another (e.g., manual error handling to a common helper).
- Replacing literals with centralized constants across the codebase.
- Performing any repetitive "find-and-replace" task that would otherwise require many sequential
replacecalls.
Procedure
- Define the transformation: Identify the exact "before" and "after" patterns. Create a representative code snippet for the sub-agent to follow.
- Locate targets: Use
grep_searchto find all absolute file paths and line numbers that need modification. - Draft a precise prompt: Call the
generalist(or similar) tool with a prompt that includes:- Goal: Clear statement of the refactoring objective.
- Scope: A bulleted list of absolute file paths to modify.
- Example: A code block showing the
old_stringvsnew_stringtransformation. - Constraints: Instructions to preserve specific logic (e.g., "preserve original closure logic while changing the call site").
- Verification: Instructions to run
cargo check --all-targetsor specific tests after finishing.
- Delegate: Execute the sub-agent call.
- Review and Cleanup: Sub-agents may introduce minor issues like
unused_importwarnings. Perform a final sweep withcargo clippyand fix manually or via a second batch call.
Pitfalls and Fixes
- symptom: Sub-agent misses some files or applies incorrect logic.
- likely cause: Prompt was too vague or the transformation was too complex for a single turn.
- fix: Break the task into smaller, more homogeneous batches (e.g., "refactor all files in directory A first").
- symptom:
cargo checkfails after the sub-agent finishes. - likely cause: Sub-agent clobbered a symbol or messed up indentation/syntax.
- fix: Read the modified files and use targeted
replacecalls to fix the syntax errors.
Verification
- Run
cargo check --all-targetsto confirm zero compilation errors. - Run
cargo clippy --all-targetsto find and fix anyunused_importor style warnings introduced by the refactor. - Run relevant integration tests for the modified files.