| name | safe-file-writing |
| description | Safe ways to edit/overwrite files in Hermes Agent. Avoids file corruption from write_file on large files and Excel file locks. |
| tags | ["file","write","patch","safe-editing"] |
Safe File Writing
⚠️ Never Use write_file for Large Files
When editing or overwriting scripts >400 lines, always use patch instead of write_file. write_file truncates long content silently, producing corrupt but compilable-looking files.
Safe Editing Patterns
Pattern 1: Patch Only (Preferred)
patch --path scripts/weekly_report.py \
--old "old line" \
--new "new line"
Pattern 2: Import and Run
When you need to generate output without risking the source file:
import sys
sys.path.insert(0, 'scripts')
from weekly_report import *
build_excel(wk_m, mo_m, fb_agg, wt, mt, 'output.xlsx')
Pattern 3: Backup First
If you absolutely must rewrite:
- Copy original first
- Write new content
- Verify compilation before deleting backup
Excel File Locks
.xlsx files locked by Excel → openpyxl raises PermissionError.
Fix: Write to a new filename like xxx_v19_new.xlsx, never overwrite the open file.