OpenSpace resilient-spreadsheet-workflow

Resilient multi-step workflow for spreadsheet processing when execute_code_sandbox fails, using shell_agent exploration, file-based scripts, and verification steps

install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/resilient-spreadsheet-workflow" ~/.claude/skills/hkuds-openspace-resilient-spreadsheet-workflow && rm -rf "$T"
manifest: gdpval_bench/skills/resilient-spreadsheet-workflow/SKILL.md
source content

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:

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

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:

# 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

SymptomDiagnostic CommandLikely 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