Code Transfer
Transfer code between files with precise line-based control. Dual-mode operation: native tools (1-10 files) or execution mode (10+ files, 90% token savings).
Operation Modes
Basic Mode (Default)
Use Read, Edit, Bash scripts for 1-10 file operations. Works immediately, no setup required.
Execution Mode (10+ files)
from api.filesystem import batch_copy from api.code_analysis import find_functions
functions = find_functions('app.py', pattern='handle_.*') operations = [{ 'source_file': 'app.py', 'start_line': f['start_line'], 'end_line': f['end_line'], 'target_file': 'handlers.py', 'target_line': -1 } for f in functions] batch_copy(operations)
When to Use
-
"copy this code to [file]"
-
"move [function/class] to [file]"
-
"extract this to a new file"
-
"insert at line [number]"
-
"reorganize into separate files"
Core Operations
- Extract Source Code
Read(file_path="src/auth.py") # Full file Read(file_path="src/auth.py", offset=10, limit=20) # Line range Grep(pattern="def authenticate", -n=true, -A=10) # Find function
- Insert at Specific Line
Use line_insert.py script for line-based insertion:
python3 skills/code-transfer/scripts/line_insert.py <file> <line_number> <code> [--backup]
Examples:
Insert function at line 50
python3 skills/code-transfer/scripts/line_insert.py src/utils.py 50 "def helper():\n pass"
Insert with backup
python3 skills/code-transfer/scripts/line_insert.py src/utils.py 50 "code" --backup
Insert at beginning
python3 skills/code-transfer/scripts/line_insert.py src/new.py 1 "import os"
When to use:
-
User specifies exact line number
-
Inserting into new/empty files
-
Inserting at beginning/end without context
- Insert Relative to Content
Use Edit when insertion point is relative to existing code:
Edit( file_path="src/utils.py", old_string="def existing():\n pass", new_string="def existing():\n pass\n\ndef new():\n return True" )
Workflow Examples
Copy Function Between Files
-
Find: Grep(pattern="def validate_user", -n=true, -A=20)
-
Extract: Read(file_path="auth.py", offset=45, limit=15)
-
Check target: Read(file_path="validators.py")
-
Insert: Use line_insert.py or Edit based on context
Extract Class to New File
-
Locate: Grep(pattern="class DatabaseConnection", -n=true, -A=50)
-
Extract: Read(file_path="original.py", offset=100, limit=50)
-
Create: Write(file_path="database.py", content="<extracted>")
-
Update imports: Edit in original file
-
Remove old class: Edit with replacement
Insert at Specific Line
-
Validate: Read(file_path="main.py", offset=20, limit=10)
-
Insert: python3 skills/code-transfer/scripts/line_insert.py main.py 25 "logger.info('...')" --backup
-
Verify: Read(file_path="main.py", offset=23, limit=5)
Reorganize Into Modules
-
Analyze: Read(file_path="utils.py")
-
Identify groups: Grep(pattern="^def |^class ", -n=true)
-
Extract each category: Write new files
-
Update original: Re-export or redirect
Best Practices
Planning:
-
Understand dependencies (imports, references)
-
Identify exact start/end of code block
-
Check target file structure
-
Ensure necessary imports included
Preservation:
-
Include docstrings and comments
-
Transfer related functions together
-
Update imports in both files
-
Maintain formatting/indentation
Validation:
-
Verify insertion placement
-
Check syntax
-
Test imports
-
Suggest running tests
Backups:
-
Use --backup for significant changes
-
Critical file operations
-
Large deletions
Integration
-
code-refactor: Refactor after transferring
-
test-fixing: Run tests after reorganizing
-
feature-planning: Plan large reorganizations