---
name: resilient-spreadsheet-workflow-8e99628afa79
description: Resilient multi-step workflow for spreadsheet processing when execute_code_sandbox fails, using shell_agent exploration, file-based scripts, and verification steps
---

# Resilient Spreadsheet Workflow

This skill provides a robust workflow for processing spreadsheet files (CSV, XLSX) when `execute_code_sandbox` encounters failures. It uses a combination of tools to ensure reliable execution and clear error diagnosis.

## When to Use

- Processing spreadsheet files when `execute_code_sandbox` returns unknown errors
- Need to debug why spreadsheet operations fail
- Require reliable file I/O with verification at each step

## Step-by-Step Workflow

### Step 1: Initial Exploration with shell_agent

Start by using `shell_agent` to explore the file structure and understand what files exist:

```
Use shell_agent to:
- List files in the working directory
- Identify spreadsheet files (CSV, XLSX)
- Examine file sizes and basic structure
```

**Example task for shell_agent:**
```
Explore the current directory to find all spreadsheet files (CSV, XLSX). 
List their sizes and identify which files need processing.
```

### Step 2: Write Processing Script with write_file

Create a standalone script file rather than executing inline code:

```python
# Use write_file to create a script like "process_sheet.py"
content = """
import pandas as pd
import sys

try:
    df = pd.read_csv('input.csv')  # or pd.read_excel for XLSX
    # Perform your processing
    result = df.describe()
    result.to_csv('output.csv', index=False)
    print("Processing complete")
except Exception as e:
    print(f"Error: {e}", file=sys.stderr)
    sys.exit(1)
"""

write_file(path="process_sheet.py", content=content)
```

### Step 3: Execute with run_shell and Error Redirection

Execute the script with stderr redirected to stdout for complete error capture:

```bash
run_shell command="python process_sheet.py 2>&1"
```

The `2>&1` redirection ensures both stdout and stderr are captured together, making error messages visible.

### Step 4: Isolate Errors with Verification Commands

If Step 3 fails, add targeted verification commands to diagnose the actual problem:

```bash
# Check if Python is available
run_shell command="which python 2>&1"

# Check if pandas is installed
run_shell command="python -c 'import pandas' 2>&1"

# Verify input file exists and is readable
run_shell command="ls -la input.csv 2>&1"

# Check file encoding/content
run_shell command="file input.csv 2>&1"
run_shell command="head -5 input.csv 2>&1"
```

### Step 5: Verify Output Before Reading

Before reading results with `read_file`, verify the output file exists:

```
list_dir(path=".")
# Confirm output file appears in the listing
# Then proceed to read_file
```

## Complete Example

```
1. shell_agent(task="Find and describe all CSV/XLSX files in current directory")
2. write_file(path="analyze_data.py", content="<processing script>")
3. run_shell(command="python analyze_data.py 2>&1")
4. If error: run_shell(command="python -c 'import pandas; print(pandas.__version__)' 2>&1")
5. list_dir(path=".")  # Verify output exists
6. read_file(filetype="csv", file_path="output.csv")
```

## Common Error Patterns

| Symptom | Diagnostic Command | Likely Cause |
|---------|-------------------|--------------|
| Module not found | `python -c 'import pandas'` | Missing dependency |
| File not found | `ls -la <filename>` | Wrong path or name |
| Permission denied | `ls -la <filename>` | File permissions |
| Encoding error | `file <filename>` | Wrong file format |

## Best Practices

1. **Always use 2>&1** with run_shell for shell commands to capture full error output
2. **Verify before reading** - use list_dir to confirm file existence before read_file
3. **Break into small steps** - separate exploration, script writing, execution, and verification
4. **Use shell_agent for unknowns** - when directory structure or file types are unclear
5. **Write scripts to files** - more reliable than inline code execution for complex operations

---
Source attribution: xyliu-cs
Original project: https://github.com/xyliu-cs/OpenSpace-GDPval/blob/af1b40a42167d09c30b3a63000aa14ace4c1e229/gdpval_bench/skills/resilient-spreadsheet-workflow/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: xyliu-cs
Original project: https://github.com/xyliu-cs/OpenSpace-GDPval/blob/af1b40a42167d09c30b3a63000aa14ace4c1e229/gdpval_bench/skills/resilient-spreadsheet-workflow/SKILL.md
Attribution basis: Source repository record

Fields of work: Data & Analytics, Development & Engineering, Marketing
Roles: Backend Developer, Data Analyst, Growth Marketer
Specialties: API, Backend
Tools: List_Dir, Read_File, Run_Shell, Shell_Agent, Write_File
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: 1712cc192b062bdba9ac5c547107b6d87fd853875a1140415ae8263ab6c59844
