mirror of
https://github.com/github/awesome-copilot.git
synced 2026-02-20 02:15:12 +00:00
Add no-heredoc instructions to prevent terminal file corruption
This commit is contained in:
77
instructions/no-heredoc.instructions.md
Normal file
77
instructions/no-heredoc.instructions.md
Normal 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
|
||||
Reference in New Issue
Block a user