Add no-heredoc instructions to prevent terminal file corruption

This commit is contained in:
garrettsiegel
2026-02-03 12:30:46 -05:00
parent e32291ee9f
commit ec917d7ec1

View File

@@ -0,0 +1,77 @@
---
description: 'Prevents terminal heredoc file corruption in VS Code Copilot by enforcing use of file editing tools instead of shell redirections'
applyTo: '**'
---
# MANDATORY: File Operation Override
This instruction applies to ALL agents and ALL file operations. It takes precedence over any other learned behavior.
## The Problem
Terminal heredoc operations are BROKEN in VS Code's Copilot integration. They cause:
- File corruption from tab characters triggering shell completion
- Mangled content from quote/backtick escaping failures
- Truncated files from exit code 130 interruptions
- Garbage output from special character interpretation
## The Rule
**BEFORE writing ANY terminal command that creates or modifies a file, STOP.**
Ask yourself: "Am I about to use `cat`, `echo`, `printf`, `tee`, or `>>`/`>` to write content to a file?"
If YES → **DO NOT EXECUTE.** Use file editing tools instead.
## Forbidden Patterns
```bash
# ALL OF THESE CORRUPT FILES - NEVER USE THEM
cat > file << EOF
cat > file << 'EOF'
cat > file <<EOF
cat > file <<'EOF'
cat > file <<-EOF
cat >> file << EOF
echo "multi
line" > file
printf '%s\n' "line1" "line2" > file
tee file << EOF
tee file << 'EOF'
```
## Required Approach
Instead of terminal commands for file content:
- **New files** → Use the file creation/editing tool provided by your environment
- **Modify files** → Use the file editing tool provided by your environment
- **Delete files** → Use the file deletion tool or `rm` command
## Terminal IS Allowed For
- `npm install`, `pip install`, `cargo add` (package management)
- `npm run build`, `make`, `cargo build` (builds)
- `npm test`, `pytest`, `go test` (testing)
- `git add`, `git commit`, `git push` (version control)
- `node script.js`, `python app.py` (running existing code)
- `ls`, `cd`, `mkdir`, `pwd`, `rm` (filesystem navigation)
- `curl`, `wget` (downloading, but not piping to files with content manipulation)
## Terminal is FORBIDDEN For
- ANY file creation with content
- ANY file modification with content
- ANY heredoc syntax (`<<`)
- ANY multi-line string redirection
## Enforcement
This is not a suggestion. This is a hard technical requirement due to VS Code terminal integration bugs. Ignoring this instruction will result in corrupted files that the user must manually fix.
When you need to create or edit a file:
1. Stop before typing any terminal command
2. Use the appropriate file editing tool
3. The tool will handle the content correctly without corruption