# Safe File Writing

> Safe ways to edit/overwrite files in Hermes Agent. Avoids file corruption from write_file on large files and Excel file locks.

- Skill: `crimsonblazezero/safe-file-writing` (Agent Skill)
- Install (CLI): `npx skillmds@latest add crimsonblazezero/safe-file-writing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/crimsonblazezero/safe-file-writing/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: crimsonblazezero (https://skillmd.com/u/crimsonblazezero)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/crimsonblazezero/safe-file-writing

---


# 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)

```bash
# Only modify the exact lines you need to change
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:

```python
# Create a small wrapper script
import sys
sys.path.insert(0, 'scripts')
from weekly_report import *

# Use existing functions directly
build_excel(wk_m, mo_m, fb_agg, wt, mt, 'output.xlsx')
```

### Pattern 3: Backup First

If you absolutely must rewrite:
1. Copy original first
2. Write new content
3. 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.

