OpenSpace sandbox-failure-recovery

Recover from execute_code_sandbox failures by writing code to file and executing via run_shell

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/sandbox-failure-recovery" ~/.claude/skills/hkuds-openspace-sandbox-failure-recovery && rm -rf "$T"
manifest: gdpval_bench/skills/sandbox-failure-recovery/SKILL.md
source content

Sandbox Failure Recovery Workflow

When

execute_code_sandbox
fails (often due to infrastructure issues, timeouts, or complex dependencies), use this recovery pattern to achieve identical results by writing the code to a file and executing it directly.

When to Use This Skill

  • execute_code_sandbox
    returns an error or times out
  • The task involves spreadsheet generation (Excel, CSV) or file output
  • You have working Python code that needs to be executed
  • The sandbox environment appears unstable

Step-by-Step Instructions

Step 1: Preserve the Failed Code

When

execute_code_sandbox
fails, capture the Python code that was attempted. If the code was generated but not saved, reconstruct it from the execution attempt.

Step 2: Write Code to File

Use

write_file
to save the Python script to a
.py
file:

write_file with:
- path: "script_name.py" (e.g., "generate_report.py", "process_data.py")
- content: <the full Python code>

Example:

# Content for write_file
import pandas as pd
from openpyxl import Workbook

# Your spreadsheet generation logic here
df = pd.DataFrame({'Revenue': [100, 200, 300]})
df.to_excel('output.xlsx', index=False)

Step 3: Execute via run_shell

Run the saved script using

run_shell
with Python 3:

run_shell with:
- command: "python3 script_name.py"
- timeout: 60 (or higher for complex operations)

Step 4: Verify Output

Check that the expected output files were created:

list_dir with:
- path: "."

Or read the generated file to confirm correctness:

read_file with:
- file_path: "output.xlsx"
- filetype: "xlsx"

Complete Example

Scenario: Generate an Excel P&L report after sandbox failure.

# Step 1: Write the Python script
write_file:
  path: "generate_pnl_report.py"
  content: |
    import pandas as pd
    from openpyxl import Workbook
    
    # Create revenue data
    data = {
        'Tour Stop': ['London', 'Paris', 'Berlin'],
        'Revenue': [50000, 45000, 38000],
        'Withholding Tax': [5000, 4500, 3800],
        'Expenses': [12000, 11000, 9500]
    }
    df = pd.DataFrame(data)
    df['Net Income'] = df['Revenue'] - df['Withholding Tax'] - df['Expenses']
    
    # Export to Excel
    df.to_excel('pnl_report.xlsx', index=False)
    print("Report generated successfully")

# Step 2: Execute the script
run_shell:
  command: "python3 generate_pnl_report.py"
  timeout: 60

# Step 3: Verify
list_dir:
  path: "."

Best Practices

  1. Use descriptive filenames - Name files after their purpose (e.g.,

    generate_report.py
    ,
    process_spreadsheet.py
    )

  2. Set appropriate timeouts - Complex operations may need 60+ seconds

  3. Include error handling in your Python code - Add try/except blocks to capture and report issues:

    try:
        # Your code here
    except Exception as e:
        print(f"Error: {e}")
        raise
    
  4. Clean up temporary files - After successful execution, you may remove the

    .py
    file if not needed

  5. Check dependencies - Ensure required packages (pandas, openpyxl, etc.) are available in the shell environment

Why This Works

  • run_shell
    executes in a more stable environment than the sandbox
  • File-based execution avoids sandbox memory/resource constraints
  • The Python interpreter in the shell has full access to installed packages
  • Output files are written directly to the workspace

<THIS_SKILL_EVOLVED>