---
name: fallback-file-ops-fc4409471c8e
description: Use run_shell as fallback when execute_code_sandbox or shell_agent fail on filesystem operations
---

# Fallback File Operations

## Purpose

When `execute_code_sandbox` or `shell_agent` fail with 'unknown error' on filesystem operations, fall back to `run_shell` with explicit `mkdir` and file write commands. This hybrid approach is more reliable for creating complex project structures.

## When to Apply

- `execute_code_sandbox` returns 'unknown error' on file/directory creation
- `shell_agent` fails to write files or create nested directories
- You need to create complex project structures with multiple levels

## Procedure

### Step 1: Detect Tool Failure

 Monitor for these failure patterns:
- Error message contains "unknown error"
- File operations silently fail (file not created)
- Directory creation returns success but directory doesn't exist

### Step 2: Switch to run_shell

When failures occur, immediately switch to `run_shell` for filesystem operations:

```bash
# Create directory structure explicitly
run_shell: mkdir -p /path/to/nested/directory

# Write files using shell redirection or echo
run_shell: echo "content" > /path/to/file.txt

# Or use cat with heredoc for multi-line files
run_shell: cat > /path/to/file.txt << 'EOF'
line 1
line 2
EOF
```

### Step 3: Verify Creation

After each operation, verify the file/directory was created:

```bash
run_shell: ls -la /path/to/created/item
run_shell: test -f /path/to/file && echo "File exists"
run_shell: test -d /path/to/dir && echo "Directory exists"
```

### Step 4: Continue with Hybrid Approach

- Use `run_shell` for all filesystem operations (mkdir, write, copy, move)
- Continue using `execute_code_sandbox` or `shell_agent` for code execution, compilation, or other non-filesystem tasks
- Document which tool handles which operation for clarity

## Example: Creating Project Structure

```yaml
# Failed attempt with execute_code_sandbox
execute_code_sandbox: create directory src/components

# Fallback with run_shell
run_shell: mkdir -p src/components
run_shell: mkdir -p src/utils
run_shell: mkdir -p tests/unit
run_shell: echo "// Component file" > src/components/Button.tsx
run_shell: echo "// Utility file" > src/utils/helpers.ts
```

## Best Practices

1. **Be explicit**: Always use full paths or confirm working directory
2. **Create parent directories**: Use `mkdir -p` for nested structures
3. **Verify before proceeding**: Check files exist before dependent operations
4. **Log tool switches**: Note when you fall back to run_shell for debugging
5. **Batch operations**: Group related file operations in consecutive run_shell calls

## Common Pitfalls

- Don't assume filesystem state after tool failure
- Don't mix tools for the same file operation (pick one and stick with it)
- Don't skip verification steps when using fallback

---
Source attribution: AG064
Original project: https://github.com/AG064/OpenSpace/blob/ff671ef61ed6587c49bd54c81cdc751c0b99e363/gdpval_bench/skills/fallback-file-ops/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Dave AI.

## Upstream license notice

MIT License

Copyright (c) 2026 ✨Data Intelligence Lab@HKU✨

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Dave AI resource metadata

Creator / publisher: AG064
Original project: https://github.com/AG064/OpenSpace/blob/ff671ef61ed6587c49bd54c81cdc751c0b99e363/gdpval_bench/skills/fallback-file-ops/SKILL.md
Attribution basis: Source repository record

Fields of work: Development & Engineering
Roles: Backend Developer, DevOps / SRE, Full-Stack Developer
Specialties: DevOps
Tools: Run_Shell
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: e97aab15c0b935ceeed997386f420fde79194437bad97c39d83ab77adc57a3d9
